背景
需要支持krun固件的升级功能:
krun固件版本号依赖ipmi命令上报,需要新增ipmi命令
关联ISSUE
整体方案
新增一条ipmi命令来支持krun固件版本号上报
评审点
是否新增ipmi命令来获取krun固件版本号
详细描述
Set命令
IPMI命令字:NetFn:0x30 Cmd:0x92
名称:Set System Parameters
变化类型:新增IPMI命令
应用场景:设置系统参数
操作权限:BasicSetting
可执行角色等级:Operator
| 字节顺序 | 域内容 |
|---|---|
| NetFn | 30h |
| Cmd | 92h |
| 1:3 | Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。 |
| 4 | Sub command,子命令=6Dh |
| 5 | Parameter Selector,见表 System Parameters |
| 6 | [7:1]:reserved [0]:级联标志 0=是最后一帧数据 1=后面还有数据 |
| 7:8 | Write Offset,LS Byte first 写入的数据偏移,从0开始,当数据较长需要多次写入时,一定要从头到尾按顺序写入,不能乱序 |
| 9 | Length,本次写入长度N |
| 10:N+9 | Parameter Data,根据 Parameter Selector参数的不同这里填充的数据不同 |
响应说明:
| 字节顺序 | 域内容 |
|---|---|
| 1 | Completion Code |
| 2:4 | Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。 |
Get命令
IPMI命令字:NetFn:0x30 Cmd:0x92
名称:Get System Parameters
变化类型:新增IPMI命令
应用场景:获取系统参数
操作权限:ReadOnly
可执行角色等级:User
| 字节顺序 | 域内容 |
|---|---|
| NetFn | 30h |
| Cmd | 92h |
| 1:3 | Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。 |
| 4 | Sub command,子命令=6Eh |
| 5 | Parameter Selector,见表 System Parameters |
| 6:7 | Read Offset,LS Byte first 读取的数据偏移,从0开始 |
| 8 | Length, 本次读取长度(最大为240个字节) |
响应说明:
| 字节顺序 | 域内容 |
|---|---|
| 1 | Completion Code |
| 2:4 | Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。 |
| 5 | End of List,表示当前数据是否结束。当参数数据比较长的时候,可能需要分多次读取,通过此字段可以判断数据是否读完。 [7:1]:reserved [0]:级联标志 0=是最后一帧数据 1=后面还有数据 |
| 6:N | Data,实际返回的数据长度<=读取长度。根据请求中的 Parameter Selector不同返回不同的值。见表 System Parameters |
System Parameters
| Parameter Selector | 功能描述 | Parameter Data-Get | Parameter Data-Set |
|---|---|---|---|
| 0 | krun(openEuler实现的一种开源架构)固件版本 | data1:N - Firmware Version,ASCII编码,N不超过32 | data1:N - Firmware Version,ASCII编码,N不超过32 |
评审结论
同意新增查询和配置系统信息的ipmi命令,具体如下
- NetFn:0x30
- Cmd:0x92
- Sub command:0x6D、0x6E
请求、响应格式定义如详细描述
遗留问题
- 已有命令是否可以扩展
- Set Device Info:已禁止扩展
- Set Component Parameters:需要新增Component Type,会新增涉及一些不必要的功能(告警、fru等),不建议在此命令扩展
- Set System Information:数据格式定义不清晰,难以扩展
- 已有命令(Set System Information)是否能回收
- 历史代码中找不到对应实现,无法了解背景,无法评估影响
- 新增命令只限定给krun使用,范围太小,需要考虑扩展
- 已扩大命令覆盖范围
- 尽快在社区登记命令字
- 已登记