背景
新产品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命令