【待评审】拓展ipmi及cli接口支持BIOS兼容性配置导入

背景

针对现有流程中厂商定制频繁(涉及DIMM、DRAM、NVMe、TPM、OS、Flash、SATA等,多为字符串修改且不影响功能)但需经华为BIOS重新发版导致的周期长、成本高痛点,客户诉求BMC侧新增BIOS兼容性配置文件导入与传递接口。该功能旨在让客户直接上传定制化配置,绕过冗长的BIOS版本迭代流程,从而缩短兼容性验证周期,降低研发与交付成本,快速响应市场需求。

关联ISSUE

暂无

整体方案

  1. 扩展ipmi接口命令字用于与BIOS交互传递配置文件内容。

  2. 新增Cli接口用于BIOS配置文件的导入、保存。

评审点

扩展IPMI 接口,用于传递 BIOS 兼容性配置文件。

详细描述

评审点1: IPMI 新增File Selector类型,30h表示获取BIOS兼容性配置文件

命令名称: Read File From BMC
命令说明: BIOS从BMC读取批量配置数据(BT超长帧)。
命令权限: ReadOnly
是否锁定之后可以访问:
是否有敏感数据:
命令样式:

● 请求:ipmitool raw 0x30 0x92 0xdb 0x07 0x00 0x0a 0x00 < file_selector > < operation > < offset > < lens >
● 响应:

命令请求参数:

字节顺序 域取值说明
NetFn 30h
Cmd 92h
1:3 Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。
4 SubCmd,固定为 0Ah
5 BIOS ID:预留给多host场景,单host场景固定填0
6 File Selector
00h-Display.ini
01h-Options.ini
2Ah-silkconfig.json
2Bh-new_secureboot.json
2Fh-电源信息查询,PsuInfo.json
30h-bios配置文件,biosconfig.json
other-Reserved
备注:File Selector分配表参见表14-8的文件编码。
7 Operation:
00h Read Prepare
01h Read Data
03h Read Finish
(8:11) Offset to Read,LSB First
数据段相对于File开始位置的偏移。
说明:本字段可选,仅当Operation为Read Data时需要提供本字段。
(12) Read Length
说明:本字段可选,仅当Operation为Read Data时需要提供本字段。

命令响应参数:

字节顺序 域取值说明
1 Completion Code
00h Command Completed Normally
80h Operation In Progress
当Prepare数据好没准备好时需要返回该错误码。
此时发起端应该再次发起Prepare操作,直到返回00h完成码为止。
D5h Invalid Status
2:4 Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。
5 7:1-Reserved
1 - No More Data Flag
00h Still have data
01h No More Data
6 当Operation为Read Data时:File data最后1个字节为本段数据5:N-1的累加和。当Operation为Read Finish时:只有1个字节,返回本文件的累加和。约束条件为:总的IPMI命令长度不能超过254字节,也就是n不大于247(不包含checksum校验)

命令示例:
样例1:读取BIOS配置文件内容

1、Read Prepare

● 请求:ipmitool raw 0x30 0x92 0xdb 0x07 0x00 0x0a 0x00 0x30 0x00

● 响应:db 07 00 00 07(data len) 00 00 00

2、Read Data

● 请求:ipmitool raw 0x30 0x92 0xdb 0x07 0x00 0x0a 0x00 0x30 0x01 0x00 0x00 0x00 0x00 0x07

● 响应:db 07 00 00

3、Read Finish

● 请求:ipmitool raw 0x30 0x92 0xdb 0x07 0x00 0x0a 0x00 0x30 0x03

● 响应:db 07 00 00

评审点2:新增 -t maintenance系统命令dataitem类别

使用说明:
Usage:iBMC:/->ipmcset -t maintenance
-d
biosconfig Importing BIOS configuration file

命令格式:
iBMC:/->ipmcset -t maintenance -d biosconfig -v
Usage: ipmcset -t maintenance -d biosconfig -v
Filepath e.g.:/tmp/biosconfig.json

回显内容:
成功回显:
iBMC:/->ipmcset -t maintenance -d biosconfig -v /tmp/ customconfig.json
Importing configuration successfully.
Reset OS for the BIOS config to take effect.

失败回显:
iBMC:/->ipmcset -t maintenance -d biosconfig -v /tmp/ customconfig.json
Failed to importing the configuration.

评审结论

评审点1:通过

同意IPMI 新增File Selector类型,30h表示获取BIOS兼容性配置文件

评审点2:通过

同意 新增 -t maintenance系统命令dataitem类别

遗留问题

(可选)列出评审会议现场无法直接给出明确结论的事务,会后确认清楚之后要在此处录入明确的结论,如不涉及,则可以写无或删除此部分。参考格式如下:(提交议题时删除此引导说明)
1、需要确认XXX
结论: