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

📋 文档信息

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

📋 变更历史记录

文档变更记录

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

🎯 类概览

ExpBoard 类

属性
类名称ExpBoard
功能描述扩展板管理对象,提供扩展板的基本信息、版本管理、状态监控和接口展示功能
所属SIG组hardware
所属组件单板管理
责任人单板管理组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SlotU80U8-槽位号BMC接口展示1硬件提供硬件
UIDString-String-单板UID
vendor(00000001)+单板类型(02)+单板编码(0302031825)
BMC接口展示"00000001030302023934"硬件提供硬件
NameString-String-固件名称BMC接口展示"BC83HBBH"固定配置,根据具体单板硬件
ManufacturerMixed-StringFruData_SEU固件厂商
支持动态关联和表达式
BMC接口展示`"<=/FruData_SEU.BoardManufacturer> expr($1 == '' ? 'Huawei' : $1)"`厂商
TypeString-String-单板类型BMC接口展示"SEU"单板类型配置硬件
DescriptionString-String-单板描述BMC接口展示"12*3.5 SAS/SATA, Expander"单板描述硬件
PartNumberMixed-StringFruData_SEU部件编号,支持BMC接口写入BMC接口展示"<=/FruData_SEU.BoardPartNumber"部件编号硬件
LogicUnitU320U32-逻辑位号BMC接口展示3硬件提供硬件
PcbIDMixed-U8Accessor_PcbIDPcbID
PcbVersion属性会使用
PcbVersion属性会使用"#/Accessor_PcbID.Value"硬件提供硬件
SRVersionString-String-CSR版本BMC接口展示"${DataVersion}"SR版本软件
BoardIDU16-U16-单板ID
以前用BoardID属性,在9555芯片通过上下拉实现,目前不用了
BMC接口展示65535CSR配置软件
BoardTypeString-String-单板类型BMC接口展示"ExpBoard"CSR配置软件
DeviceNameString-String-板卡丝印信息BMC接口展示"ExpBoard${Slot}"CSR配置软件
PositionString-String-单板位置BMC接口展示"EXU${Slot}"CSR配置软件
NodeIdString-String-容器信息
Position和设备丝印名称DeviceName拼接而成
BMC接口展示"EXU${Slot}ExpBoard${Slot}"CSR配置软件
FruIDMixed-U8Fru_Expander单板FRUIDBMC接口展示"<=/Fru_Expander.FruId"CSR配置软件
PowerWattsU32-U32-单板功率BMC接口展示-硬件提供硬件
CpldTestRegMixed-U32Accessor_CpldTestCPLD自检关联寄存器CPLD自检"#/Accessor_CpldTest.Value"硬件提供硬件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
LogicVersionString""String-CPLD版本号,只会多片CPLD版本展示BMC接口展示""BMC内部设置软件
PcbVersionString""String-PCB版本,BMC获取到PcbID就会进行转换BMC接口展示""PcbID转换软件
LogicVersionIDMixed-U8Accessor_LogicVersionIDCPLD版本号关联寄存器BMC获取CPLD版本号"#/Accessor_LogicVersionID.Value"硬件提供硬件
MCUVersionString""String-MCU的版本信息,不需要配置,自动获取BMC接口展示""BMC内部设置软件
NumberU8-U8-根据整机配置更新逻辑编号,目前仅背板使用,使用SlotConfigs配置属性根据整机配置更新逻辑编号1BMC内部设置软件
RunningStatusU8-U8-BMC启动后例测60s检测MCU和CPLD关联信息是否获取正常--BMC内部设置软件
RefSMCChipU8[]-U8[]Smc_ExpBoardSMCRunningStatus使用见RunningStatus描述"#/Smc_ExpBoardSMC"-硬件
RefMCUChipU8[]-U8[]Chip_MCU1RunningStatus使用-"#/Chip_MCU1"-硬件
ContainerString-String-更新硬盘背板的起始槽位号BMC接口展示"{Container}"CSR配置软件
CpldTestNumU81U8-CPLD单次例测自检次数CPLD自检2CSR配置软件
SyncTimeSupportU8-U8-是否支持同步时间
如果配置1,BMC会周期将时间写入到RefSMCChip的对象下
-1CSR配置软件
CpldStatusU80U8-CPLD自检状态CPLD自检告警使用0CPLD自检状态软件
MultiLogicVersionMixed-Mixed-更新CPLD版本号BMC接口展示-BMC内部设置硬件
MultiLogicUnitMixed-Mixed-多片CPLD位号BMC接口展示{"CPLD1": 17, "CPLD2": 18}硬件提供硬件
CPLD2VersionIDMixed-U8Accessor_Cpld2VersionID第二片CPLD版本号获取BMC接口展示"#/Accessor_Cpld2VersionID.Value"硬件提供硬件
FPGAVersionIDMixed-U8-FPGA版本号获取BMC接口展示-硬件提供硬件

🔗 动态关联机制

语法规范

使用多种动态关联语法:

yaml
# 基本关联
UID: "00000001030302023934"
Manufacturer: "<=/FruData_SEU.BoardManufacturer|> expr($1 == '' ? 'Huawei' : $1)"
PartNumber: "<=/FruData_SEU.BoardPartNumber"
FruID: "<=/Fru_Expander.FruId"

# 寄存器关联
PcbID: "#/Accessor_PcbID.Value"
LogicVersionID: "#/Accessor_LogicVersionID.Value"
CpldTestReg: "#/Accessor_CpldTest.Value"

# 变量替换
SRVersion: "${DataVersion}"
DeviceName: "ExpBoard${Slot}"
Position: "EXU${Slot}"
NodeId: "EXU${Slot}ExpBoard${Slot}"

# 对象引用
RefSMCChip: "#/Smc_ExpBoardSMC"
RefMCUChip: "#/Chip_MCU1"

关联说明

  • FRU关联: 通过FruData对象获取厂商、部件编号等信息
  • 寄存器关联: 通过Accessor对象获取硬件寄存器数据
  • 变量替换: 使用${变量名}实现动态配置
  • 表达式计算: 支持条件判断和字符串处理

📂 分类标准

硬件属性

  • 定义:与扩展板硬件直接相关的参数
  • 特点:反映硬件设计和物理特性
  • 示例Slot, UID, Name, Manufacturer, Type, Description, PartNumber, LogicUnit, PcbID, PowerWatts, CpldTestReg, LogicVersionID, CPLD2VersionID, FPGAVersionID, MultiLogicVersion, MultiLogicUnit, RefSMCChip, RefMCUChip

软件属性

  • 定义:由软件管理和维护的参数
  • 特点:配置管理、状态监控和接口展示
  • 示例SRVersion, BoardID, BoardType, DeviceName, Position, NodeId, FruID, LogicVersion, PcbVersion, MCUVersion, Number, RunningStatus, Container, CpldTestNum, SyncTimeSupport, CpldStatus

📝 配置示例

标准扩展板配置

json
{
  "ExpBoard_1": {
    "Slot": 1,
    "UID": "00000001030302023934",
    "Name": "BC83HBBH",
    "Manufacturer": "<=/FruData_SEU.BoardManufacturer|> expr($1 == '' ? 'Huawei' : $1)",
    "Type": "SEU",
    "Description": "12*3.5 SAS/SATA, Expander",
    "PartNumber": "<=/FruData_SEU.BoardPartNumber",
    "LogicUnit": 3,
    "PcbID": "#/Accessor_PcbID.Value",
    "SRVersion": "${DataVersion}",
    "BoardID": 65535,
    "BoardType": "ExpBoard",
    "DeviceName": "ExpBoard${Slot}",
    "Position": "EXU${Slot}",
    "NodeId": "EXU${Slot}ExpBoard${Slot}",
    "FruID": "<=/Fru_Expander.FruId",
    "PowerWatts": 150,
    "CpldTestReg": "#/Accessor_CpldTest.Value",
    "LogicVersionID": "#/Accessor_LogicVersionID.Value",
    "RefSMCChip": "#/Smc_ExpBoardSMC",
    "RefMCUChip": "#/Chip_MCU1",
    "CpldTestNum": 2,
    "SyncTimeSupport": 1
  }
}

多CPLD扩展板配置

json
{
  "ExpBoard_2": {
    "Slot": 2,
    "UID": "00000001030302023935",
    "Name": "BC83HBBH",
    "Manufacturer": "<=/FruData_SEU.BoardManufacturer|> expr($1 == '' ? 'Huawei' : $1)",
    "Type": "SEU",
    "Description": "24*2.5 SAS/SATA, Expander",
    "PartNumber": "<=/FruData_SEU.BoardPartNumber",
    "LogicUnit": 3,
    "PcbID": "#/Accessor_PcbID.Value",
    "SRVersion": "${DataVersion}",
    "BoardID": 65535,
    "BoardType": "ExpBoard",
    "DeviceName": "ExpBoard${Slot}",
    "Position": "EXU${Slot}",
    "NodeId": "EXU${Slot}ExpBoard${Slot}",
    "FruID": "<=/Fru_Expander.FruId",
    "PowerWatts": 200,
    "CpldTestReg": "#/Accessor_CpldTest.Value",
    "LogicVersionID": "#/Accessor_LogicVersionID.Value",
    "CPLD2VersionID": "#/Accessor_Cpld2VersionID.Value",
    "MultiLogicUnit": {
      "CPLD1": 17,
      "CPLD2": 18
    },
    "RefSMCChip": "#/Smc_ExpBoardSMC",
    "RefMCUChip": "#/Chip_MCU1",
    "CpldTestNum": 2,
    "SyncTimeSupport": 1
  }
}

🔧 使用指南

配置步骤

  1. 基本信息配置:设置槽位号、UID、名称等基本信息
  2. 关联FRU对象:配置厂商、部件编号等FRU相关信息
  3. 寄存器关联:配置PcbID、LogicVersionID等硬件寄存器
  4. 版本信息配置:设置CSR版本、CPLD版本等
  5. 功能配置:配置CPLD自检、时间同步等功能
  6. 对象引用:关联SMC、MCU等相关对象

注意事项

  • UID唯一性:确保每个扩展板的UID全局唯一
  • 槽位管理:合理分配和管理槽位号
  • 版本同步:保持CSR版本与实际固件版本同步
  • 关联完整性:确保所有引用的对象都已正确定义

故障排除

  1. 版本获取失败:检查LogicVersionID寄存器关联
  2. FRU信息缺失:确认FruData对象配置正确
  3. CPLD自检异常:检查CpldTestReg寄存器和测试配置
  4. 时间同步问题:确认RefSMCChip对象关联正确

性能优化

  • 合理配置扫描周期:避免过频繁的硬件访问
  • 优化表达式计算:简化复杂的动态关联表达式
  • 资源管理:合理管理CPLD、MCU等硬件资源

📚 相关文档