【已评审】BMC增加软复位原因资源协作接口【2.0】

关联issue

背景

上次评审了关于BMC的软复位原因增加了资源协作接口(见下述关联评审),但是对于应用管理框架对于BMC的运行异常导致的BMC复位,由于整体框架依赖关系的原因无法进行记录。
针对上述问题,重新制定了方案,并且基于当前方案进行进行重新评审。

关联评审

评审点

在 MacaService 资源协作接口下新增接口,用于处理带有复位原因的BMC复位。
path: /bmc/kepler/MacaService
interface: bmc.kepler.SystemControl

评审点1:增加属性 ResetCause

属性1 属性2 属性3
属性名称 ResetCause ResetTimestamp PerId
属性类型 y u s
属性读写 ro 私有属性,不涉及 私有属性,不涉及
属性权限 ReadOnly 私有属性,不涉及 私有属性,不涉及
属性广播 false 私有属性,不涉及 私有属性,不涉及
属性持久化 复位持久化(掉电以后是AC启动,因此复位持久化即可) 复位持久化 复位持久化
属性说明 BMC软复位原因标识,具体的原因枚举如下表1 BMC复位操作的时间戳 持久化主键,无实际意义

评审点2:新增加方法 ForceResetWithCause

说明
方法名称 ForceResetWithCause
方法权限 BasicSetting
请求签名 yy
请求参数 ResetType:uint8 类型,表征当前重启类型,取值有:
 0:表示下次从正常系统启动
 1:表示下次从最小系统启动
ResetCause:uint8 类型,表征当前重启原因标识,具体的原因标识枚举如下表1
响应签名
响应参数
方法说明 强制复位BMC(增强)接口,需要带有复位原因

评审点3:新增加方法 GracefulResetWithCause

说明
方法名称 GracefulResetWithCause
方法权限 BasicSetting
请求签名 yy
请求参数 ResetType:uint8 类型,表征当前重启类型,取值有:
 0:表示下次从正常系统启动
 1:表示下次从最小系统启动
ResetCause:uint8 类型,表征当前重启原因标识,具体的原因标识枚举如下表1
响应签名 i
响应参数 OutData:int32 类型,表征当前平滑重启的处理结果
方法说明 平滑复位BMC(增强)接口,需要带有复位原因
备注:如果平滑重启前处理失败,则对应的BMC复位不会进行

表1:BMC复位原因标识

复位原因标识组 复位原因标识 复位原因说明
00h ~ 0Fh 命令复位
00h BMC重启操作复位
01h BMC镜像倒换操作复位
02h BMC固件升级复位
03h BMC恢复出厂设置复位
04h BMC资产报废复位
05h BMC固件校验根证书更新复位
10h ~ 1Fh 主动复位
10h BMC自愈复位
11h BMC硬件自检修复复位
12h BMC管理外设硬件初始化复位
20h ~ 2Fh 硬件操作复位
20h 按钮复位
FFh FFh 未知原因复位

评审结论

通过,具体评审结论如下:

  • 评审点1:通过,同意在资源协作接口 bmc.kepler.SystemControl 新增属性 ResetCause,签名为 y,复位持久化,不发送变更通知事件;同意新增私有属性 ResetTimestampPerId
  • 评审点2:通过,同意在资源协作接口 bmc.kepler.SystemControl 新增方法 ForceResetWithCause,请求签名: yy,权限为 BasicSetting,响应签名:无
  • 评审点3: 通过,同意在资源协作接口 bmc.kepler.SystemControl 新增方法 GracefulResetWithCause ,请求签名: yy ,权限为 BasicSetting ,响应签名: i

评审遗留问题:对于BMC的复位原因标识,后续随着硬件的演进如果需要扩展,则如何进行处理
— 答复 by pengqiang-gs
当前在复位原因标识中增加了复位类型的标识段,以及每段有对应的原因标识预留位,后续在硬件的演进过程中,可以针对上述的预留位进行取值扩展。