【已评审】ipmi命令支持Krun固件版本号上报

背景

需要支持krun固件的升级功能:
krun固件版本号依赖ipmi命令上报,需要新增ipmi命令

关联ISSUE

支持krun固件管理

整体方案

新增一条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

请求、响应格式定义如详细描述

遗留问题

  1. 已有命令是否可以扩展
  • Set Device Info:已禁止扩展
  • Set Component Parameters:需要新增Component Type,会新增涉及一些不必要的功能(告警、fru等),不建议在此命令扩展
  • Set System Information:数据格式定义不清晰,难以扩展
  1. 已有命令(Set System Information)是否能回收
  • 历史代码中找不到对应实现,无法了解背景,无法评估影响
  1. 新增命令只限定给krun使用,范围太小,需要考虑扩展
  • 已扩大命令覆盖范围
  1. 尽快在社区登记命令字
  • 已登记

https://gitee.com/openEuler/krun