CSR配置字典之CpuBoard类
更新时间:2025/7/22
在Gitcode上查看源码

📋 文档信息

项目内容
文档标题CpuBoard类配置字典
版本v1.0
创建日期2025-01-27
最后更新2025-01-27
维护状态✅ 活跃维护

📋 变更历史记录

文档变更记录

版本发布日期变更类型变更内容影响范围维护人员
v1.02025-01-27初始版本创建CpuBoard类配置字典全新文档系统管理员

🎯 类概览

CpuBoard 类

属性
类名称CpuBoard
功能描述基础板管理对象(BCU),提供CPU板卡的基本信息管理、版本管理、CPLD自检和接口展示功能
所属SIG组board
所属组件cpuboard
责任人单板管理组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SlotU8-U8-槽位号bmc接口展示1硬件提供硬件
UIDString-String-单板UID
vendor(00000001)+单板类型(02)+单板编码(0302031825)
不应该固化,应该关联对应单板的UID,工具自动关联到单板对象"00000001020302031825"固定配置,根据具体单板软件
NameString-String-固件名称bmc接口展示"BC83AMDA"单板名称软件
ManufacturerString-String-固件厂商bmc接口展示"Huawei"硬件提供软件
TypeString-String-组件类型bmc接口展示"BCU"组件类型硬件
DescriptionString-String-单板描述bmc接口展示"CpuBoard"单板描述硬件
PartNumberMixed-StringFruData_CpuBoard部件编号,支持bmc接口写入bmc接口展示"<=/FruData_CpuBoard.BoardPartNumber"部件编号硬件
LogicUnitU320U32-逻辑位号bmc接口展示6288硬件提供硬件
PcbIDString-U8Accessor_PcbIDPcbIDPcbVersion属性会使用"#/Accessor_PcbID.Value"硬件提供硬件
BmcStartFlagString-U8Accessor_BmcStartFlagbmc启动会向这个Smc写1,用于bmc启动,基础板点灯bmc启动,基础板点灯"#/Accessor_BmcStartFlag.Value"硬件提供硬件
SRVersionString-String-csr版本,建议使用${DataVersion}引用bmc接口展示"1.43"sr版本软件
BoardIDU16-U16-单板idbmc接口展示65535csr配置软件
BoardTypeString-String-单板类型bmc接口展示"CpuBoard"csr配置软件
DeviceNameString-String-板卡丝印信息,单板描述+槽位号bmc接口展示"CpuBoard${Slot}"csr配置软件
PositionString-String-单板位置,组件类型+槽位号bmc接口展示"BCU${Slot}"csr配置软件
NodeIdString-String-资源ID,单板位置 + 板卡丝印信息bmc接口展示"BCU${Slot}CpuBoard${Slot}"csr配置软件
FruIDMixed-U8Fru_CpuBoard单板FRUIDbmc接口展示"<=/Fru_CpuBoard.FruId"csr配置软件
CpldTestRegString-U32Accessor_CpldTestcpld自检关联寄存器cpld自检"#/Accessor_CpldTest.Value"硬件提供硬件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
LogicVersionString""String-cpld版本号,只会多片cpld版本展示bmc接口展示""bmc内部设置软件
PcbVersionString""String-Pcb版本,bmc获取到Pcbid就会进行转换bmc接口展示""PcbID转换软件
LogicVersionIDString-U8Accessor_LogicVersionIDcpld版本号关联寄存器bmc获取cpld版本号"#/Accessor_LogicVersionID.Value"硬件提供硬件
CPLD2VersionIDString-U8Accessor_Cpld2VersionID第二片cpld版本号获取bmc接口展示"#/Accessor_Cpld2VersionID.Value"硬件提供硬件
MultiLogicUnitObject-Object-按实际单板有的cpld片数配置,只有单片则配置一个bmc接口展示{"CPLD1": 17, "CPLD2": 18}硬件提供硬件
MultiLogicVersionObject-Object-更新cpld版本号bmc接口展示NAbmc内部设置硬件
MCUVersionString""String-MCU的版本信息,不需要配置,自动获取bmc接口展示""bmc内部设置软件
NumberU8-U8-根据整机配置更新逻辑编号,目前仅背板使用,使用SlotConfigs配置属性根据整机配置更新逻辑编号1bmc内部设置软件
RefSMCChipString-U8[]Smc_CpuBrdSMCRunningStatus使用见RunningStatus描述"#/Smc_CpuBrdSMC"CSR配置硬件
CpldStatusU80U8-cpld自检状态cpld自检告警使用0cpld自检状态软件
PowerWattsU32-U32-单板功率,仅风扇版使用bmc接口展示NA硬件提供硬件
RunningStatusU8-U8-bmc启动后例测60s检测mcu和cpld关联信息是否获取正常状态监控NAbmc内部设置软件
RefComponentString-String-当前未使用预留NAcsr配置软件
RefFruString-String-当前未使用预留NAcsr配置软件
PlatformU8-U8-当前未使用预留NAcsr配置软件
BIOSVersionString-String-当前未使用预留NAbmc内部设置软件
RefMCUChipString-U8[]Chip_MCU1RunningStatus使用状态监控"#/Chip_MCU1"CSR配置硬件
ContainerString-String-更新硬盘背板的起始槽位号bmc接口展示"${Container}"csr配置软件
CpldTestNumU81U8-cpld单次例测自检次数cpld自检2csr配置软件

🔗 动态关联机制

语法规范

使用 <=/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
  }
}

🔧 使用指南

配置步骤

  1. 设置基本信息:配置Slot、UID、Name、Manufacturer等基本属性
  2. 关联FRU数据:通过PartNumber和FruID关联FRU信息
  3. 关联硬件寄存器:配置PcbID、BmcStartFlag、CpldTestReg等硬件关联
  4. 设置版本信息:配置SRVersion、LogicVersionID等版本相关属性
  5. 配置标识信息:设置DeviceName、Position、NodeId等标识属性
  6. 关联芯片对象:配置RefSMCChip、RefMCUChip等芯片关联
  7. 配置CPLD自检:设置CpldTestReg、CpldTestNum等自检参数
  8. 特殊功能配置:根据需要配置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等