背景
issue:暂无
软件防回退是BMC侧通过配置编码来阻止低版本升级包升级的功能,在满足防回退条件下,较早版本的升级包在升级时会被BMC识别,提示“过旧的升级包”并会中断升级流程。实行防回退主要是为了BMC、Bios、CPLD等版本能够配套使用,新特性不丢失。
当前缺少特定场景下(例如搭配特定板卡需要防回退,不搭配特定板卡无需防回退)的固件升级防回退能力。
1、新增私有对象,可根据实际场景配置在特定板卡CSR中,用于承载升级的FW类型和限制可以升级的最小revision。可精准匹配升级的FW,并将该对象的属性与hpm的upgrade.cfg中的revision比较,如果hpm比这个小,则不允许升级,达到选择性防回退的效果。
决策点(必填,一句话描述待决策点)
firmware_mgmt组件新增私有对象FirmwareLimit,用于承载升级的FW类型和限制可以升级的最小revision,达到选择性防回退的效果
详细描述(必填,描述待评审接口的详细内容)
1、新增私有对象FirmwareLimit
变化类型:新增私有对象
应用场景:用于承载升级的FW类型和限制可以升级的最小revision,达到选择性防回退的效果
持久化类型: 掉电持久化
操作权限:ReadOnly
详细描述:
| 属性名称 | 变化类型 | 签名 | 读写&权限 | 持久化 | 变化通知 | 接口说明 | 接口约束 |
|---|---|---|---|---|---|---|---|
| ComponentID | 新增属性 | y | 只读 R:ReadOnly | 掉电持久化 | false | 组件ID,用于区分组件,且用作持久化主键 | 与FirmwareComponentInfo的ComponentID属性对应组件ID保持一致 |
| ComponentIDEx | 新增属性 | u | 只读 R:ReadOnly | 掉电持久化 | false | 用于区分细分组件,且用作持久化主键 | 与FirmwareComponentInfo的ComponentIDEx属性对应组件ID保持一致,默认值0xFFFFFFFF |
| Name | 新增属性 | s | 只读 R:ReadOnly | 掉电持久化 | false | 固件名 | 与FirmwareComponentInfo的Name属性含义保持一致 |
| RevisionNumber | 新增属性 | y | 只读 R:ReadOnly | 掉电持久化 | false | 限制可以升级的最小的revision,且用作持久化主键 | 跟hpm的upgrade.cfg中的revision比较,如果hpm比这个小,则不允许升级 |
会议结论
同意新增私有对象FirmwareLimit及属性,含义如下:
| 属性名称 | 变化类型 | 签名 | 读写&权限 | 持久化 | 变化通知 | 接口说明 | 接口约束 |
|---|---|---|---|---|---|---|---|
| ComponentID | 新增属性 | y | 只读 R:ReadOnly | 掉电持久化 | false | 组件ID,用于区分组件,且用作持久化主键 | 与FirmwareComponentInfo的ComponentID属性对应组件ID保持一致 |
| ComponentIDEx | 新增属性 | u | 只读 R:ReadOnly | 掉电持久化 | false | 用于区分细分组件,且用作持久化主键 | 与FirmwareComponentInfo的ComponentIDEx属性对应组件ID保持一致,默认值0xFFFFFFFF |
| Name | 新增属性 | s | 只读 R:ReadOnly | 掉电持久化 | false | 固件名 | 与FirmwareComponentInfo的Name属性含义保持一致 |
| RevisionNumber | 新增属性 | y | 只读 R:ReadOnly | 掉电持久化 | false | 限制可以升级的最小的revision,且用作持久化主键 | 跟hpm的upgrade.cfg中的revision比较,如果hpm比这个小,则不允许升级 |
遗留问题
无