【已评审】支持按区域复位NPU模组IPMI接口评审

背景

新产品NPU模组,当带内异常的时候,需要支持带外通过IPMI命令复位NPU。

支持区分全域和计算单元。前置评审: https://discuss.openubmc.cn/t/topic/1642

关联ISSUE

https://gitcode.com/openUBMC/general_hardware/issues/134

决策点

新增设备设置类命令Set Component Parameters,使能支持按全域、计算单元复位NPU模组

同时新增配套设备获取类命令Get Component Parameters

详细描述

1、Set Component Parameters

IPMI命令字: NetFn: 0x30, Cmd: 0x93 ,SubCmd: 0x8F

变化类型:新增接口

持久化类型: 不涉及

优先级:Default

操作权限:BasicSetting

请求说明:

字节顺序 域内容
NetFn 30h
Cmd 93h
1:3 Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。
4 Sub command,子命令 = 8Fh
5:8 Component Type, LS Byte first
[31]:设备类型标识符类型
0-设备类型标识符参考DMTF规范文档DSP0249中PLDM Entity ID Code tables的定义
1- 设备类型标识符参考表 设备类型(Component Type)定义
[16:30]:reserved
[0:15]:设备类型标识符
9 Group Id,组编号。0xFF表示无效值。
若设备编号在产品上不全局唯一,则必须根据产品规划填充此字段,后台根据组编号和设备编号进行索引;
若设备编号在产品上全局唯一,则此字段填充无效值,后台只根据设备编号进行索引;
若设备编号全局唯一但填充有效值或设备编号不全局唯一但填充无效值,则命令返回C9h。
10:11 Component Id,LS Byte first
设备编号,若设备支持丝印编号,则与丝印编号保持一致;若设备不支持丝印编号,则填逻辑编号
12:13 Parameter Selector,LS Byte first,参见Component Parameters表
14 [7:1]:reserved
[0]:级联标志
0=是最后一帧数据
1=后面还有数据
15:16 Write Offset,LS Byte first
写入的数据偏移,从0开始,当数据较长需要多次写入时,一定要从头到尾按顺序写入,不能乱序。
17 Length
本次写入长度N
18:17+N Parameter Data,参见Component Parameters表

响应说明:

字节顺序 域内容
1 Completion Code
2:4 Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。

Component Parameters表:

Parameter Selector 功能描述 Parameter Data-Get Parameter Data-Set
0xC000 复位NPU模组 不涉及 仅支持Component Type=0x8000005C

请求:
Group Id:0xFF
Component Id:NPU模组槽位号
Write Offset:0x0000
Length:1
Data:
• data1-复位区域类型
0xFF = 全域
0x00 = 保留
0x01 = 计算单元

响应:

2、Get Component Parameters

IPMI命令字: NetFn: 0x30, Cmd: 0x93 ,SubCmd: 0x90

变化类型:新增接口

持久化类型: 不涉及

优先级:Default

操作权限:ReadOnly

请求说明:

字节顺序 域内容
NetFn 30h
CMD 93h
1:3 Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。
4 Sub command,子命令 = 90h
5:8 Component Type, LS Byte first
[31]:设备类型标识符类型
0-设备类型标识符参考DMTF规范文档DSP0249中PLDM Entity ID Code tables的定义
1- 设备类型标识符参考openUBMC IPMI命令说明中的Component Type定义
[16:30]:reserved
[0:15]:设备类型标识符
9 Group Id,组编号。0xFF表示无效值。
若设备编号在产品上不全局唯一,则必须根据产品规划填充此字段,后台根据组编号和设备编号进行索引;
若设备编号在产品上全局唯一,则此字段填充无效值,后台只根据设备编号进行索引;
若设备编号全局唯一但填充有效值或设备编号不全局唯一但填充无效值,则命令返回C9h。
10:11 Component Id,LS Byte first
设备编号,若设备支持丝印编号,则与丝印编号保持一致;若设备不支持丝印编号,则填逻辑编号
12:13 Parameter Selector,LS Byte first,参见Component Parameters表
14:15 Read Offset,LS Byte first
读取的数据偏移,从0开始
16 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]:End of list
0=last data
1=middle data
6:N Data,实际返回的数据长度<=读取长度
具体数据参见Component Parameters表

评审结论

1、同意新增IPMI命令Set Component Parameters,用于设置设备参数。此命令支持按区域复位NPU模组。
命令说明:
NetFn : 0x30
Cmd : 0x93
SubCmd: 0x8F
请求和响应参数见详细描述。
对于按区域复位NPU模组功能,Parameter Selector为0xC000,Component Type为0x8000005C,其余参数见详细描述。

2、同意新增IPMI命令Get Component Parameters,用于获取设备参数。
命令说明:
NetFn : 0x30
Cmd : 0x93
SubCmd: 0x90
请求和响应参数见详细描述。

遗留问题

1、Reserved字段预留四个字节,第一个bit考虑是否用于区分PLDM或内部的Component

结论:Reserved字段预留两个字节,设备类型索引方法字段用于区分PLDM或内部的Component
2、不要有Component Type一列

结论:Component Parameters表中不加入Component Type一列
3、Set Component Action和Set Component Info两条命令合并

结论:Set Component Action和Set Component Info合并为Set Component Parameters命令

DELL服务器的命令行工具通过group Index/group name/object name来确定操作对象

RACADM Command Line Reference Guide