背景
某项目新增板卡类型 - TPM 安全部件,插在Riser的PCIe slot上,需要BMC支持板卡管理(CSR,MCU升级与版本显示等)
关联ISSUE
暂无
整体方案
复用已有对象模型SecurityModule,在该对象下复用bmc.kepler.Systems.Board和bmc.kepler.Systems.Board.Unit资源协作接口,支持TPM板卡管理。web在SecurityModule下显示CSR,MCU等信息。webrest接口/UI/Rest/System/Boards/SecurityModule新增属性,提供web显示TPM卡的板卡信息。cli接口 /cli/v1/_/version 新增属性和回显字段支持查询显示TPM卡的版本号信息。
评审点
1、新增SecurityModule资源协作接口模型,包括板卡的名称、UID、厂商、PcbID、PartNumber等信息
2、webrest接口 /UI/Rest/System/Boards/SecurityModule新增属性,包括板卡的名称、UID、厂商、PcbID、PartNumber等信息,用于webui显示
3、cli接口 /cli/v1/_/version 新增属性,包括SecurityModule的名称、UID、CSR和MCU版本等信息,支持ipmcget -d v回显TPM卡的版本信息
详细描述
评审点1:新增资源协作接口: SecurityModule资源协作接口模型,包括卡的名称、UID、厂商、PcbID、PartNumber等信息
path: /bmc/kepler/Systems/${SystemId}/SecurityModule/${Id}
interface(新增):
复用已有接口:bmc.kepler.Systems.Board
复用已有接口:bmc.kepler.Systems.Board.Unit
评审点2:webrest接口 /UI/Rest/System/Boards/SecurityModule新增属性,包括板卡的名称、UID、厂商、PcbID、PartNumber等信息,用于webui显示
uri :/UI/Rest/System/Boards/SecurityModule
变化类型 :新增属性
操作类型 : GET
应用场景 :TPM卡信息集合
请求参数 :见下表
详细描述
| 属性名称 | 取值类型 | 说明 | 取值范围 | 默认值 | 是否允许为null | 约束 |
|---|---|---|---|---|---|---|
| SecurityModule [{ | - | - | ||||
| Name | string | 名称 | - | 空字符串 | 否 | |
| Position | string | 位置 | - | 空字符串 | 否 | |
| UID | string | UID | - | 空字符串 | 否 | |
| Description | string | 单板描述 | - | 空字符串 | 否 | |
| BoardManufacturer | string | 板卡厂商 | - | 空字符串 | 否 | |
| PartNumber | string | 部件编码 | - | 空字符串 | 否 | |
| PCBVersion | string | PCB版本号 | - | 空字符串 | 否 | |
| SerialNumber | string | 序列号 | - | 空字符串 | 否 | |
| SRVersion | string | 硬件自描述版本 | - | 空字符串 | 否 | |
| MCUVersion | string | MCU固件版本 | - | 空字符串 | 否 | |
| } | ||||||
| … … ] |
Rsp示例:
[
{
"SelfTestResult": "xxx",
"ProtocolType": "xxx",
"ProtocolVersion": "xxx",
"Manufacturer": "xxx",
"FirmwareVersion": "xxx",
# 以下为新增
"ComponentUniqueID": {UID},
"Name": {Name},
"Description": {Description},
"Position": {Position},
"BoardManufacturer": {BoardManufacturer},
"PartNumber": {PartNumber},
"PCBVersion": {PCBVersion},
"SerialNumber": {SerialNumber},
"HWSRVersion": {SRVersion},
"McuVersion": {McuVersion}
}
]
评审点3:cli接口 /cli/v1/_/version 新增属性,包括SecurityModule的名称、UID、CSR和MCU版本等信息,支持ipmcget -d v回显TPM卡的版本信息
uri :/cli/v1/_/version
变化类型 :新增属性
操作类型 : GET
应用场景 :TPM卡信息集合
请求参数 :见下表
详细描述
| 属性名称 | 取值类型 | 说明 | 取值范围 | 默认值 | 是否允许为null | 约束 |
|---|---|---|---|---|---|---|
| Name | string | 名称 | - | 空字符串 | 否 | |
| UID | string | UID | - | 空字符串 | 否 | |
| SlotId | string | 槽位 | - | 空字符串 | 否 | |
| PCBVersion | string | PCB版本号 | - | 空字符串 | 否 | |
| SRVersion | string | 硬件自描述版本 | - | 空字符串 | 否 | |
| MCUVersion | string | MCU固件版本 | - | 空字符串 | 否 |
回显效果
......
---------------- FAN Board INFO ----------------
FanBoard1 BoardName: xxxxxxx
FanBoard1 BoardID: xxxxxxx
FanBoard1 CUID: xxxxxxx
FanBoard1 PCB: .A
FanBoard1 CPLD Version: (xx)xxx
FanBoard1 CSR: xxxxxxx
------------------- NIC INFO -------------------
NIC 1 (xxxxxx) BoardID: xxxxxxx
NIC 1 (xxxxxx) CUID: xxxxxxx
NIC 1 (xxxxxx) PCB: .A
NIC 1 (xxxxxx) CSR: xxxxxxx
------------- Security Module INFO -------------
# 以下字段增加前缀SecurityModule{Slot}
SecurityModule{Slot} Specification Type: xxxxxxx
SecurityModule{Slot} Specification Version: xxxxxxx
SecurityModule{Slot} Manufacturer Name: xxxxxxx
SecurityModule{Slot} Manufacturer Version: xxxxxxx
# 以下为新增字段
SecurityModule{Slot} BoardName: {Name}
SecurityModule{Slot} CUID: {UID}
SecurityModule{Slot} PCB: {PCBVersion}
SecurityModule{Slot} CSR: {SRVersion}
SecurityModule{Slot} MCU: {MCUVersion}
是否准备好AI预审
是
评审结论
1、同意新增SecurityModule资源协作接口模型
path: /bmc/kepler/Systems/${SystemId}/SecurityModule/${Id}
interface(新增):
复用已有接口:bmc.kepler.Systems.Board
复用已有接口:bmc.kepler.Systems.Board.Unit
2、同意webrest接口 /UI/Rest/System/Boards/SecurityModule新增属性,包括板卡的名称、UID、厂商、PcbID、PartNumber等信息,用于webui显示,详见评审点2
3、同意cli接口 /cli/v1/_/version 新增属性,包括SecurityModule的名称、UID、CSR和MCU版本等信息,支持ipmcget -d v回显TPM卡的版本信息,详见评审点3
遗留问题
1、TPM板卡是否在同一环境上插多张?确认
结论:已确认,只会插一张;且webrest和cli的原有接口已为数组传递,与资源协作接口一致,支持多张
2、cli接口回显补全
结论:已补充