【已评审】支持升级自愈特性资源协作接口评审

评审点一:固件自愈相关资源协作接口评审:

说明:固件管理统一管控固件的自愈与升级流程,但是器件自检是做在其他组件,固件管理需要提供资源协作接口支持其他组件注册自愈对象,由固件管理组件统一管理自愈、升级等任务;整体方案如下:

为支持通过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
  1. 两个评审点上的结构高度一致,可以采用一个表格进行说明,将新增加的属性说明各自的应用场景和影响范围限制
  2. 背景中还是要讲清楚 固件自愈升级恢复 两种不同的场景