Upgrade Component
更新时间: 2025/06/26
在Gitcode上查看源码

06h-ipmitool升级组件(Upgrade-Component)

修订记录

openUBMC版本号修订日期修订内容
25.062025/06/26初稿,新增命令详情

基本信息

功能说明

升级组件。

权限

BasicSetting

命令信息

请求信息

字节顺序域取值说明
NetFn30h
CMD91h
1:3Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。
4Sub command,子命令=06h
5Operation type:
55h finish upgrade
AA initiate upgrade
CCh SMM initiate upgrade
CDh 设置升级完成后BMC重启标志(在升级前设置为手动重启BMC,升级进度达到100%后设置为自动重启BMC,解决因为网管无法获取100%进度问题)
V2和V3版本实现区别:V2版本,返回值只有“Completion Code”,V3版本返回值含有IANA值、Upgrade progress。
CEh 强制升级BIOS,会对业务系统下电、全空间升级BIOS固件
DDh设置先下电再升级标志(先下发DDh操作类型再下发升级命令,开始升级时若必须先下电,则先下电再升级,解决带内无法下电升级BIOS问题)
00h get upgrade status 危险:
当 Operation type 为 CEh 时,会将BIOS的定制配置擦除,导致BIOS的定制功能失效,请谨慎操作。
6*FRU ID
针对byte5为DDh时,因为升级前需要先安全下电,但是考虑到安全下电超时时间可能为永久而导致无法下电且升级失败,所以byte5为DDh时,如果命令中未携带byte6、byte7(考虑兼容),则默认5分钟超时强制下电。
byte5=DDh时,本字节表示用户设置的升级前下电超时时间低字节,单位秒。
7*Reserved,统一填0
byte5=DDh时,本字节表示用户设置的升级前下电超时时间高字节,单位秒。 说明:
目前BMC未对Component ID处理,目前看后续也不会使用该字段,考虑到目前该字段命令定义与实现不一致且 BMC v1和 BMC v2实现不一致,避免后续被误用,故将该字段暂定为预留。
8*Flag
[7]:级联标志
0=是最后一帧数据
1=后面还有数据
[6:0]: Offset,文件名的数据偏移,从0开始
当文件名较长需要多次传输时,一定要从头到尾按顺序传输,不能乱序。
9*Length
[7]:生效方式
0=手动生效,升级固件(如BMC、CSR)后需手动进行重启生效
1=自动生效,升级固件(如BMC、CSR)后自动重启生效
[6:0]: Length,本帧数据长度,单帧请求时长度大小不能超过16个字节
10:N*Filename:绝对路径名,单帧请求时长度大小不能超过16个字节
注:*号部分只有在获取80历史数据的时候才需要填充。

响应信息

字节顺序域取值说明
1Completion Code
0x80正在升级中
0x81预留
0x82文件不存在
0x83文件错误
0x84内存不足
0x85文件传输失败 (SM)
0x86升级空间不足 (SM)
0x87文件名冲突
0x88系统非下电状态下不支持升级 (场景:全flash升级BIOS、9230升级BIOS、9032升级CPLD)
0x89固件版本不匹配
0x8B同一计算框内有硬分区上电,无法升级(场景:8100/9032非4P时升级CPLD)
0x8C升级文件不匹配(BoardID不匹配)
0x8D ME状态出错,不支持升级BIOS
0x8E未知错误
0xA8 BMC协处理器升级失败(仅Hi1712有效)
2:4Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。
5Upgrade progress.
[7]-status
0h=Upgrade in progress.
1h=Upgrade completed,表示升级完成或无升级任务。
[6:0]-Upgrade progress percentage
(6)Upgrade mode.
1h=prepare
2h=process
3h=complete
other: reserve
(7)upgrade compnent(1) if operation type=00h,扩展为4个字节,这是最低字节
(8:9)sub error code LSB if operation type=00h
(10)upgrade compnent(2) if operation type=00h,扩展为4个字节
(11)upgrade compnent(3) if operation type=00h,扩展为4个字节
(12)upgrade compnent(4) if operation type=00h,扩展为4个字节,这是最高字节

命令样例

获取升级状态

请求:

ipmicmd -k "0f 00 30 91 db 07 00 06 00" smi 0

响应:

0f 31 00 91 00 db 07 00 e4 03 11 00 00 00 00 00

返回到索引