【已评审】新增升级前预检查IPMI命令

背景

很多固件的升级会影响业务运行,客户在升级前会进行很多准备工作,且升级次数是有限的。
如果固件升级是,因为升级条件不具备、升级通道故障等导致升级失败,会导致客户升级前准备工作浪费,对客户的影响较大。
如果BMC提供升级前的检查接口,客户在升级准备工作前就可以做一下勘探,勘探到升级前检查有失败时,优先处理失败,这样就可以有效减少实际升级失败的影响。

整体方案

评审点1:新增OEM IPMI命令,用于启动固件预升级检查

详细描述

命令名称: Pre-update Check
命令说明: 启动固件预升级检查
命令权限: BasicSetting
是否锁定之后可以访问:
是否有敏感数据:
命令样式:

  • 请求: ipmitool raw 0x30 0x93 <ManufacturerID> 0x99 <fru_id><component_id> <component_id_ex> <reserved>
  • 响应:<ManufacturerID>

命令请求参数:

字节顺序 域取值说明
NetFn 30h
Cmd 93h
1:3 Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。
4 99h
5 FruId
6 ComponentID,固件ID
7:10 ComponentIDEx,固件扩展ID,FruId、ComponentID和ComponentIDEx全f时可以触发所有固件预检查
11:12 预留字段,填0

命令响应参数:

字节顺序 域取值说明
1 Completion Code
2:4 Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。

命令示例:
样例:开始触发升级前预检查

  • 请求:ipmitool raw 0x30 0x93 0xdb 0x07 0x00 0x99 0x01 0x05 0xff 0xff 0xff 0xff 0x00 0x00
  • 响应:0xdb 0x07 0x00

评审点2:新增OEM IPMI命令,获取固件预升级检查结果

命令名称: Get Pre-update Check Result
命令说明: 获取升级前预检查结果
命令权限: ReadOnly
是否锁定之后可以访问:
是否有敏感数据:
命令样式:

  • 请求:ipmitool raw 0x30 0x93 <ManufacturerID> 0x9A <fru_id><component_id> <component_id_ex> <reserved>
  • 响应:<ManufacturerID> <ManufacturerID> <Result>

命令请求参数:

字节顺序 域取值说明
NetFn 30h
Cmd 93h
1:3 Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。
4 9Ah
5 FruId
6 ComponentID,固件ID
7:10 ComponentIDEx,固件扩展ID
11:12 预留字段,填0

命令响应参数:

字节顺序 域取值说明
1 Completion Code
2:4 Manufacturer ID
5 固件升级前预检查结果:0 - 固件可升级 1 - 固件当前不可升级 2 - 固件在检查中

命令示例:

  • 请求:ipmitool raw 0x30 0x93 0xdb 0x07 0x00 0x9A 0x01 0x05 0xff 0xff 0xff 0xff 0x00 0x00
  • 响应:0xdb 0x07 0x00 0x00

评审结论

已线下审核:

  1. 同意新增OEM IPMI命令(Pre-update Check),用于启动固件预升级检查,命令详细信息见评审点1。
  2. 同意新增OEM IPMI命令(Get Pre-update Check Result),用于获取固件预升级检查结果,命令详细信息见评审点2。