CSR配置字典之CpuBoard类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | CpuBoard类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建CpuBoard类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
CpuBoard 类
属性 | 值 |
---|---|
类名称 | CpuBoard |
功能描述 | 基础板管理对象(BCU),提供CPU板卡的基本信息管理、版本管理、CPLD自检和接口展示功能 |
所属SIG组 | board |
所属组件 | cpuboard |
责任人 | 单板管理组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
Slot | U8 | - | U8 | - | 槽位号 | bmc接口展示 | 1 | 硬件提供 | 硬件 |
UID | String | - | String | - | 单板UID vendor(00000001)+单板类型(02)+单板编码(0302031825) | 不应该固化,应该关联对应单板的UID,工具自动关联到单板对象 | "00000001020302031825" | 固定配置,根据具体单板 | 软件 |
Name | String | - | String | - | 固件名称 | bmc接口展示 | "BC83AMDA" | 单板名称 | 软件 |
Manufacturer | String | - | String | - | 固件厂商 | bmc接口展示 | "Huawei" | 硬件提供 | 软件 |
Type | String | - | String | - | 组件类型 | bmc接口展示 | "BCU" | 组件类型 | 硬件 |
Description | String | - | String | - | 单板描述 | bmc接口展示 | "CpuBoard" | 单板描述 | 硬件 |
PartNumber | Mixed | - | String | FruData_CpuBoard | 部件编号,支持bmc接口写入 | bmc接口展示 | "<=/FruData_CpuBoard.BoardPartNumber" | 部件编号 | 硬件 |
LogicUnit | U32 | 0 | U32 | - | 逻辑位号 | bmc接口展示 | 6288 | 硬件提供 | 硬件 |
PcbID | String | - | U8 | Accessor_PcbID | PcbID | PcbVersion属性会使用 | "#/Accessor_PcbID.Value" | 硬件提供 | 硬件 |
BmcStartFlag | String | - | U8 | Accessor_BmcStartFlag | bmc启动会向这个Smc写1,用于bmc启动,基础板点灯 | bmc启动,基础板点灯 | "#/Accessor_BmcStartFlag.Value" | 硬件提供 | 硬件 |
SRVersion | String | - | String | - | csr版本,建议使用${DataVersion}引用 | bmc接口展示 | "1.43" | sr版本 | 软件 |
BoardID | U16 | - | U16 | - | 单板id | bmc接口展示 | 65535 | csr配置 | 软件 |
BoardType | String | - | String | - | 单板类型 | bmc接口展示 | "CpuBoard" | csr配置 | 软件 |
DeviceName | String | - | String | - | 板卡丝印信息,单板描述+槽位号 | bmc接口展示 | "CpuBoard${Slot}" | csr配置 | 软件 |
Position | String | - | String | - | 单板位置,组件类型+槽位号 | bmc接口展示 | "BCU${Slot}" | csr配置 | 软件 |
NodeId | String | - | String | - | 资源ID,单板位置 + 板卡丝印信息 | bmc接口展示 | "BCU${Slot}CpuBoard${Slot}" | csr配置 | 软件 |
FruID | Mixed | - | U8 | Fru_CpuBoard | 单板FRUID | bmc接口展示 | "<=/Fru_CpuBoard.FruId" | csr配置 | 软件 |
CpldTestReg | String | - | U32 | Accessor_CpldTest | cpld自检关联寄存器 | cpld自检 | "#/Accessor_CpldTest.Value" | 硬件提供 | 硬件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
LogicVersion | String | "" | String | - | cpld版本号,只会多片cpld版本展示 | bmc接口展示 | "" | bmc内部设置 | 软件 |
PcbVersion | String | "" | String | - | Pcb版本,bmc获取到Pcbid就会进行转换 | bmc接口展示 | "" | PcbID转换 | 软件 |
LogicVersionID | String | - | U8 | Accessor_LogicVersionID | cpld版本号关联寄存器 | bmc获取cpld版本号 | "#/Accessor_LogicVersionID.Value" | 硬件提供 | 硬件 |
CPLD2VersionID | String | - | U8 | Accessor_Cpld2VersionID | 第二片cpld版本号获取 | bmc接口展示 | "#/Accessor_Cpld2VersionID.Value" | 硬件提供 | 硬件 |
MultiLogicUnit | Object | - | Object | - | 按实际单板有的cpld片数配置,只有单片则配置一个 | bmc接口展示 | {"CPLD1": 17, "CPLD2": 18} | 硬件提供 | 硬件 |
MultiLogicVersion | Object | - | Object | - | 更新cpld版本号 | bmc接口展示 | NA | bmc内部设置 | 硬件 |
MCUVersion | String | "" | String | - | MCU的版本信息,不需要配置,自动获取 | bmc接口展示 | "" | bmc内部设置 | 软件 |
Number | U8 | - | U8 | - | 根据整机配置更新逻辑编号,目前仅背板使用,使用SlotConfigs配置属性 | 根据整机配置更新逻辑编号 | 1 | bmc内部设置 | 软件 |
RefSMCChip | String | - | U8[] | Smc_CpuBrdSMC | RunningStatus使用 | 见RunningStatus描述 | "#/Smc_CpuBrdSMC" | CSR配置 | 硬件 |
CpldStatus | U8 | 0 | U8 | - | cpld自检状态 | cpld自检告警使用 | 0 | cpld自检状态 | 软件 |
PowerWatts | U32 | - | U32 | - | 单板功率,仅风扇版使用 | bmc接口展示 | NA | 硬件提供 | 硬件 |
RunningStatus | U8 | - | U8 | - | bmc启动后例测60s检测mcu和cpld关联信息是否获取正常 | 状态监控 | NA | bmc内部设置 | 软件 |
RefComponent | String | - | String | - | 当前未使用 | 预留 | NA | csr配置 | 软件 |
RefFru | String | - | String | - | 当前未使用 | 预留 | NA | csr配置 | 软件 |
Platform | U8 | - | U8 | - | 当前未使用 | 预留 | NA | csr配置 | 软件 |
BIOSVersion | String | - | String | - | 当前未使用 | 预留 | NA | bmc内部设置 | 软件 |
RefMCUChip | String | - | U8[] | Chip_MCU1 | RunningStatus使用 | 状态监控 | "#/Chip_MCU1" | CSR配置 | 硬件 |
Container | String | - | String | - | 更新硬盘背板的起始槽位号 | bmc接口展示 | "${Container}" | csr配置 | 软件 |
CpldTestNum | U8 | 1 | U8 | - | cpld单次例测自检次数 | cpld自检 | 2 | csr配置 | 软件 |
🔗 动态关联机制
语法规范
使用 <=/xxx
, #/xxx
和变量替换语法实现动态关联:
yaml
# FRU数据关联
PartNumber: "<=/FruData_CpuBoard.BoardPartNumber"
FruID: "<=/Fru_CpuBoard.FruId"
# 硬件寄存器关联
PcbID: "#/Accessor_PcbID.Value"
BmcStartFlag: "#/Accessor_BmcStartFlag.Value"
CpldTestReg: "#/Accessor_CpldTest.Value"
LogicVersionID: "#/Accessor_LogicVersionID.Value"
CPLD2VersionID: "#/Accessor_Cpld2VersionID.Value"
# 芯片对象关联
RefSMCChip: "#/Smc_CpuBrdSMC"
RefMCUChip: "#/Chip_MCU1"
# 变量替换
DeviceName: "CpuBoard${Slot}"
Position: "BCU${Slot}"
NodeId: "BCU${Slot}CpuBoard${Slot}"
Container: "${Container}"
关联说明
- FRU关联: 从FRU数据中获取部件号和FRU ID
- 硬件寄存器: 关联各种硬件寄存器获取版本和状态信息
- 芯片对象: 关联SMC和MCU芯片用于状态监控
- 变量替换: 使用槽位等变量实现动态配置
📂 分类标准
硬件属性
- 定义:与硬件物理特性和硬件接口直接相关的参数
- 特点:通常由硬件提供或与硬件寄存器关联
- 示例:
Slot
,Type
,Description
,PartNumber
,LogicUnit
,PcbID
,BmcStartFlag
,CpldTestReg
,LogicVersionID
,CPLD2VersionID
,MultiLogicUnit
,MultiLogicVersion
,RefSMCChip
,PowerWatts
,RefMCUChip
软件属性
- 定义:用于软件逻辑控制和信息管理的参数
- 特点:由CSR配置或BMC内部逻辑管理
- 示例:
UID
,Name
,Manufacturer
,LogicVersion
,PcbVersion
,SRVersion
,MCUVersion
,BoardID
,BoardType
,Number
,DeviceName
,Position
,NodeId
,FruID
,CpldStatus
,RunningStatus
,RefComponent
,RefFru
,Platform
,BIOSVersion
,Container
,CpldTestNum
📝 配置示例
标准CPU板卡配置
json
{
"CpuBoard": {
"Slot": 1,
"UID": "00000001020302031825",
"Name": "BC83AMDA",
"Manufacturer": "Huawei",
"Type": "BCU",
"Description": "CpuBoard",
"PartNumber": "<=/FruData_CpuBoard.BoardPartNumber",
"LogicVersion": "",
"LogicUnit": 6288,
"PcbID": "#/Accessor_PcbID.Value",
"BmcStartFlag": "#/Accessor_BmcStartFlag.Value",
"PcbVersion": "",
"SRVersion": "1.43",
"BoardID": 65535,
"BoardType": "CpuBoard",
"DeviceName": "CpuBoard1",
"Position": "BCU1",
"NodeId": "BCU1CpuBoard1",
"RefSMCChip": "#/Smc_CpuBrdSMC",
"FruID": "<=/Fru_CpuBoard.FruId",
"CpldTestReg": "#/Accessor_CpldTest.Value",
"CpldStatus": 0,
"CpldTestNum": 2
}
}
多CPLD版本配置
json
{
"CpuBoard": {
"Slot": 1,
"UID": "00000001020302031825",
"Name": "BC83AMDA",
"Manufacturer": "Huawei",
"Type": "BCU",
"Description": "CpuBoard",
"PartNumber": "<=/FruData_CpuBoard.BoardPartNumber",
"LogicVersion": "",
"LogicUnit": 6288,
"PcbID": "#/Accessor_PcbID.Value",
"BmcStartFlag": "#/Accessor_BmcStartFlag.Value",
"PcbVersion": "",
"LogicVersionID": "#/Accessor_LogicVersionID.Value",
"CPLD2VersionID": "#/Accessor_Cpld2VersionID.Value",
"MultiLogicUnit": {
"CPLD1": 17,
"CPLD2": 18
},
"SRVersion": "${DataVersion}",
"BoardID": 65535,
"BoardType": "CpuBoard",
"DeviceName": "CpuBoard${Slot}",
"Position": "BCU${Slot}",
"NodeId": "BCU${Slot}CpuBoard${Slot}",
"RefSMCChip": "#/Smc_CpuBrdSMC",
"RefMCUChip": "#/Chip_MCU1",
"FruID": "<=/Fru_CpuBoard.FruId",
"CpldTestReg": "#/Accessor_CpldTest.Value",
"CpldStatus": 0,
"CpldTestNum": 2
}
}
风扇版CPU板卡配置
json
{
"CpuBoard": {
"Slot": 1,
"UID": "00000001020302031825",
"Name": "BC83AMDA",
"Manufacturer": "Huawei",
"Type": "BCU",
"Description": "CpuBoard",
"PartNumber": "<=/FruData_CpuBoard.BoardPartNumber",
"LogicVersion": "",
"LogicUnit": 6288,
"PcbID": "#/Accessor_PcbID.Value",
"BmcStartFlag": "#/Accessor_BmcStartFlag.Value",
"PcbVersion": "",
"SRVersion": "1.43",
"BoardID": 65535,
"BoardType": "CpuBoard",
"DeviceName": "CpuBoard1",
"Position": "BCU1",
"NodeId": "BCU1CpuBoard1",
"RefSMCChip": "#/Smc_CpuBrdSMC",
"FruID": "<=/Fru_CpuBoard.FruId",
"CpldTestReg": "#/Accessor_CpldTest.Value",
"CpldStatus": 0,
"PowerWatts": 150,
"CpldTestNum": 2
}
}
背板CPU板卡配置
json
{
"CpuBoard": {
"Slot": 1,
"UID": "00000001020302031825",
"Name": "BC83AMDA",
"Manufacturer": "Huawei",
"Type": "BCU",
"Description": "CpuBoard",
"PartNumber": "<=/FruData_CpuBoard.BoardPartNumber",
"LogicVersion": "",
"LogicUnit": 6288,
"PcbID": "#/Accessor_PcbID.Value",
"BmcStartFlag": "#/Accessor_BmcStartFlag.Value",
"PcbVersion": "",
"SRVersion": "1.43",
"BoardID": 65535,
"BoardType": "CpuBoard",
"Number": 1,
"DeviceName": "CpuBoard${Slot}",
"Position": "BCU${Slot}",
"NodeId": "BCU${Slot}CpuBoard${Slot}",
"RefSMCChip": "#/Smc_CpuBrdSMC",
"FruID": "<=/Fru_CpuBoard.FruId",
"CpldTestReg": "#/Accessor_CpldTest.Value",
"CpldStatus": 0,
"Container": "${Container}",
"CpldTestNum": 2
}
}
🔧 使用指南
配置步骤
- 设置基本信息:配置Slot、UID、Name、Manufacturer等基本属性
- 关联FRU数据:通过PartNumber和FruID关联FRU信息
- 关联硬件寄存器:配置PcbID、BmcStartFlag、CpldTestReg等硬件关联
- 设置版本信息:配置SRVersion、LogicVersionID等版本相关属性
- 配置标识信息:设置DeviceName、Position、NodeId等标识属性
- 关联芯片对象:配置RefSMCChip、RefMCUChip等芯片关联
- 配置CPLD自检:设置CpldTestReg、CpldTestNum等自检参数
- 特殊功能配置:根据需要配置PowerWatts、Container等特殊属性
注意事项
- UID唯一性:UID应该关联对应单板的实际UID,不应该固化
- 槽位变量:建议使用${Slot}变量实现动态槽位配置
- FRU关联:PartNumber和FruID需要关联有效的FRU对象
- 硬件寄存器:所有#/Accessor_xxx关联需要确保对应的Accessor对象存在
- 版本管理:SRVersion建议使用${DataVersion}引用
- CPLD配置:多CPLD场景需要配置MultiLogicUnit和对应的版本ID
- 自检参数:CpldTestNum应根据实际需求设置自检次数
性能建议
- 合理设置自检:CpldTestNum不宜过大,避免影响启动性能
- 优化版本获取:合理配置LogicVersionID和CPLD2VersionID
- 状态监控:合理配置RefSMCChip和RefMCUChip用于状态监控
- 功率管理:风扇版本需要正确配置PowerWatts
故障排查
- 版本获取失败:检查LogicVersionID和CPLD2VersionID关联的寄存器
- 自检失败:检查CpldTestReg关联和CpldTestNum设置
- 状态监控异常:检查RefSMCChip和RefMCUChip关联
- FRU信息错误:检查PartNumber和FruID关联的FRU对象
- 启动标志异常:检查BmcStartFlag关联的寄存器
- PCB版本错误:检查PcbID关联和转换逻辑
版本管理
- CPLD版本:通过LogicVersionID和CPLD2VersionID获取
- MCU版本:MCUVersion由BMC内部自动获取
- PCB版本:PcbVersion由PcbID自动转换
- SR版本:SRVersion建议使用${DataVersion}动态引用
- 多版本管理:MultiLogicVersion用于管理多片CPLD版本
接口展示
- 基本信息:Name、Manufacturer、Type、Description等
- 版本信息:LogicVersion、MCUVersion、PcbVersion、SRVersion等
- 标识信息:DeviceName、Position、NodeId等
- 硬件信息:Slot、LogicUnit、BoardID、BoardType等
- 状态信息:CpldStatus、RunningStatus等