评审点一:固件自愈相关资源协作接口评审:
说明:固件管理统一管控固件的自愈与升级流程,但是器件自检是做在其他组件,固件管理需要提供资源协作接口支持其他组件注册自愈对象,由固件管理组件统一管理自愈、升级等任务;整体方案如下:
为支持通过CSR配置固件是否支持自愈,需要在FirmwareComponentInfo私有对象新增属性承载
属性名称 | 签名 | 是否持久化 | 默认值 | 更新类别 | 描述 |
---|---|---|---|---|---|
ComponentID | U8 | 否 | 无 | 不变 | 用于区分组件 |
ComponentIDEx | U32 | 否 | 0xffffffff | 不变 | 用于区分细分组件 |
Name | s | 否 | 无 | 不变 | 固件名 |
RevisionNumber | U8 | 否 | 无 | 不变 | SR配置的Revision值,0代表无防回退 |
RevisionNumber4User | U8 | 是 | 无 | 不变 | 用户定义的Revision值,0代表无防回退 |
FirmwareRestoreSupported | Boolean | 否 | true | 新增 | 是否支持固件自愈 |
为支持子组件注册自愈任务到firmware_mgmt以及对自愈对象做管理,需要新增资源协作接口:
path: /bmc/kepler/UpdateService/FirmwareRestore
interface : bmc.kepler.UpdateService.FirmwareRestore
properties&methods:
InitiateRestoreAction:用于注册固件修复任务
类型 | 属性/方法名称 | 权限 | 请求签名 | 请求参数说明 | 响应签名 | 响应参数说明 |
---|---|---|---|---|---|---|
method | InitiateRestoreAction | BasicSetting | yua{ss} | y:ComponentID 固件ID u:ComponentIDEx 固件扩展ID a{ss}:AdditionalOptions 其他扩展选项,便于后续扩展 | 无 | 无 |
评审点二:升级异常恢复机制私有对象评审:
说明:针对升级过程中有AC、BMC强制复位等异常场景导致固件升级失败未完成,支持BMC启动后恢复升级
为支持通过CSR配置固件是否支持升级异常恢复机制, ,需要在FirmwareComponentInfo私有对象新增属性承载
属性名称 | 签名 | 是否持久化 | 默认值 | 更新类别 | 描述 |
---|---|---|---|---|---|
ComponentID | U8 | 否 | 无 | 不变 | 用于区分组件 |
ComponentIDEx | U32 | 否 | 0xffffffff | 不变 | 用于区分细分组件 |
Name | s | 否 | 无 | 不变 | 固件名 |
RevisionNumber | U8 | 否 | 无 | 不变 | SR配置的Revision值,0代表无防回退 |
RevisionNumber4User | U8 | 是 | 无 | 不变 | 用户定义的Revision值,0代表无防回退 |
FirmwareRestoreSupported | Boolean | 否 | true | 不变 | 是否支持固件修复 |
UpgradeResumeSupported | Boolean | 否 | true | 新增 | 是否支持恢复升级 |
说明:固件修复与恢复升级是不同的流程,固件修复是固件自检异常后针对器件的修复机制,恢复升级是升级中断后对上次外完成流程的恢复机制,二者相互独立
评审结论
- 评审点1:通过,同意新增固件初始化修复动作,方法名称为
InitiateRestoreAction
- 评审点2:通过,同意新增固件修复标识
FirmwareRestoreSupported
和固件自愈支持标识UpgradeResumeSupported
,默认值均为true