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

📋 文档信息

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

📋 变更历史记录

文档变更记录

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

🎯 类概览

HddBackplane 类

属性
类名称HddBackplane
功能描述背板管理对象,提供硬盘背板的基本信息、版本管理、状态监控和CPLD自检功能
所属SIG组storage
所属组件背板管理
责任人存储管理组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SlotU80U8-槽位号BMC接口展示1硬件提供硬件
UIDString-String-单板UID
vendor(00000001)+单板类型(02)+单板编码(0302031825)
BMC接口展示"00000001030302023934"硬件提供硬件
NameString-String-固件名称BMC接口展示"BC83HBBH"固定配置,根据具体单板硬件
ManufacturerString-String-固件厂商BMC接口展示`"<=/FruData_SEU.BoardManufacturer> expr($1 == '' ? 'Huawei' : $1)"`厂商
TypeString-String-单板类型BMC接口展示"SEU"单板类型配置硬件
DescriptionString-String-单板描述BMC接口展示"12*3.5 SAS/SATA, Expander"单板描述硬件
PartNumberString-String-部件编号,支持BMC接口写入BMC接口展示"<=/FruData_SEU.BoardPartNumber"部件编号硬件
LogicUnitU80U8-逻辑位号BMC接口展示3硬件提供硬件
PcbIDString-StringAccessor_PcbIDPcbIDPcbVersion属性会使用"#/Accessor_PcbID.Value"硬件提供硬件
SRVersionString-String-CSR版本BMC接口展示"${DataVersion}"SR版本软件
BoardIDU1665535U16-单板ID
以前用BoardID属性,在9555芯片通过上下拉实现,目前不用了
BMC接口展示65535CSR配置软件
BoardTypeString-String-单板类型BMC接口展示"HddBackplane"CSR配置软件
DeviceNameString-String-板卡丝印信息BMC接口展示"DiskBP${Slot}"CSR配置软件
PositionString-String-单板位置BMC接口展示"SEU${Slot}"CSR配置软件
NodeIdString-String-容器信息Position和设备丝印名称DeviceName拼接而成BMC接口展示"SEU${Slot}DiskBP${Slot}"CSR配置软件
FruIDString-StringFru_SEU单板FRUIDBMC接口展示"<=/Fru_SEU.FruId"CSR配置软件
ContainerString-String-更新硬盘背板的起始槽位号BMC接口展示"${Container}"CSR配置软件
SerialNumberString""StringFruData_SEU序列号BMC接口展示"<=/FruData_SEU.BoardSerialNumber"BMC内部设置软件
StartSlotU80U8-硬盘起始槽位号BMC接口展示0根据前后置类型配置软件
PowerWattsU16-U16-单板功率BMC接口展示50硬件提供硬件
CpldTestRegString-StringAccessor_CpldTestCPLD自检关联寄存器CPLD自检"#/Accessor_CpldTest.Value"硬件提供硬件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
LogicVersionString""String-CPLD版本号,只会多片CPLD版本展示BMC接口展示""BMC内部设置软件
PcbVersionString""String-PCB版本,BMC获取到PcbID就会进行转换BMC接口展示""PcbID转换软件
LogicVersionIDString-StringAccessor_LogicVersionIDCPLD版本号关联寄存器BMC获取CPLD版本号"#/Accessor_LogicVersionID.Value"硬件提供硬件
NumberU8-U8-根据整机配置更新逻辑编号,目前仅背板使用,使用SlotConfigs配置属性根据整机配置更新逻辑编号1BMC内部设置软件
RefComponentString-StringComponent_HddBackplane当前未使用NA"#/Component_HddBackplane"CSR配置软件
SilkTextString-String-背板位置根据SlotConfigs配置更新""软件刷新软件
MCUVersionString""String-MCU的版本信息,不需要配置,自动获取BMC接口展示""BMC内部设置软件
RunningStatusU8-U8-BMC启动后例测60s检测MCU和CPLD关联信息是否获取正常状态监控1BMC内部设置软件
RefSMCChipString-StringSmc_EnclSMCRunningStatus使用见RunningStatus描述"#/Smc_EnclSMC"硬件关联硬件
RefMCUChipString-StringChip_MCU1RunningStatus使用状态监控"#/Chip_MCU1"硬件关联硬件
CpldTestNumU81U8-CPLD单次例测自检次数CPLD自检2CSR配置软件
CpldStatusU80U8-CPLD自检失败次数CPLD自检告警使用0CPLD自检状态软件

🔗 动态关联机制

语法规范

使用多种动态关联语法:

yaml
# 基础信息配置
Slot: 1
UID: "00000001030302023934"
Name: "BC83HBBH"
Type: "SEU"
Description: "12*3.5 SAS/SATA, Expander"

# 动态关联配置
Manufacturer: "<=/FruData_SEU.BoardManufacturer|> expr($1 == '' ? 'Huawei' : $1)"
PartNumber: "<=/FruData_SEU.BoardPartNumber"
PcbID: "#/Accessor_PcbID.Value"
SerialNumber: "<=/FruData_SEU.BoardSerialNumber"

# 版本和状态
SRVersion: "${DataVersion}"
LogicVersionID: "#/Accessor_LogicVersionID.Value"

# 芯片关联
RefSMCChip: "#/Smc_EnclSMC"
RefMCUChip: "#/Chip_MCU1"

# CPLD自检
CpldTestReg: "#/Accessor_CpldTest.Value"

# 动态生成属性
DeviceName: "DiskBP${Slot}"
Position: "SEU${Slot}"
NodeId: "SEU${Slot}DiskBP${Slot}"
Container: "${Container}"

关联说明

  • FRU数据关联: Manufacturer、PartNumber、SerialNumber通过FruData对象获取
  • 寄存器关联: PcbID、LogicVersionID、CpldTestReg通过Accessor对象获取
  • 芯片关联: RefSMCChip、RefMCUChip关联到对应的芯片对象
  • 动态生成: DeviceName、Position、NodeId基于Slot动态生成
  • 版本管理: SRVersion使用动态变量$

📂 分类标准

硬件属性

  • 定义:与硬盘背板硬件特性和物理信息直接相关的参数
  • 特点:槽位信息、UID、硬件版本、功率、CPLD自检等物理特性
  • 示例Slot, UID, Name, Manufacturer, Type, Description, PartNumber, LogicUnit, PcbID, PowerWatts, CpldTestReg, LogicVersionID, RefSMCChip, RefMCUChip

软件属性

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

📝 配置示例

基础背板配置

json
{
  "HddBackplane_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": "HddBackplane",
    "DeviceName": "DiskBP${Slot}",
    "Position": "SEU${Slot}",
    "NodeId": "SEU${Slot}DiskBP${Slot}",
    "FruID": "<=/Fru_SEU.FruId",
    "Container": "${Container}",
    "SerialNumber": "<=/FruData_SEU.BoardSerialNumber",
    "StartSlot": 0,
    "PowerWatts": 50,
    "CpldTestReg": "#/Accessor_CpldTest.Value"
  }
}

完整背板配置(含可选属性)

json
{
  "HddBackplane_Full": {
    "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",
    "LogicVersion": "",
    "LogicUnit": 3,
    "PcbID": "#/Accessor_PcbID.Value",
    "PcbVersion": "",
    "LogicVersionID": "#/Accessor_LogicVersionID.Value",
    "SRVersion": "${DataVersion}",
    "BoardID": 65535,
    "BoardType": "HddBackplane",
    "Number": 1,
    "DeviceName": "DiskBP${Slot}",
    "Position": "SEU${Slot}",
    "NodeId": "SEU${Slot}DiskBP${Slot}",
    "RefSMCChip": "#/Smc_EnclSMC",
    "FruID": "<=/Fru_SEU.FruId",
    "Container": "${Container}",
    "RefComponent": "#/Component_HddBackplane",
    "SerialNumber": "<=/FruData_SEU.BoardSerialNumber",
    "StartSlot": 0,
    "SilkText": "",
    "MCUVersion": "",
    "PowerWatts": 50,
    "RunningStatus": 1,
    "RefMCUChip": "#/Chip_MCU1",
    "CpldTestNum": 2,
    "CpldTestReg": "#/Accessor_CpldTest.Value",
    "CpldStatus": 0
  }
}

前置背板配置

json
{
  "HddBackplane_Front": {
    "Slot": 1,
    "UID": "00000001030302023934",
    "Name": "BC83HBBH",
    "Manufacturer": "<=/FruData_SEU.BoardManufacturer|> expr($1 == '' ? 'Huawei' : $1)",
    "Type": "SEU",
    "Description": "8*2.5 SAS/SATA, Front",
    "PartNumber": "<=/FruData_SEU.BoardPartNumber",
    "LogicUnit": 3,
    "PcbID": "#/Accessor_PcbID.Value",
    "SRVersion": "${DataVersion}",
    "BoardID": 65535,
    "BoardType": "HddBackplane",
    "DeviceName": "DiskBP${Slot}",
    "Position": "SEU${Slot}",
    "NodeId": "SEU${Slot}DiskBP${Slot}",
    "FruID": "<=/Fru_SEU.FruId",
    "Container": "${Container}",
    "SerialNumber": "<=/FruData_SEU.BoardSerialNumber",
    "StartSlot": 0,
    "PowerWatts": 40,
    "CpldTestReg": "#/Accessor_CpldTest.Value",
    "CpldTestNum": 2,
    "CpldStatus": 0
  }
}

后置背板配置

json
{
  "HddBackplane_Rear": {
    "Slot": 2,
    "UID": "00000001030302023935",
    "Name": "BC83HBBH",
    "Manufacturer": "<=/FruData_SEU2.BoardManufacturer|> expr($1 == '' ? 'Huawei' : $1)",
    "Type": "SEU",
    "Description": "4*3.5 SAS/SATA, Rear",
    "PartNumber": "<=/FruData_SEU2.BoardPartNumber",
    "LogicUnit": 4,
    "PcbID": "#/Accessor_PcbID2.Value",
    "SRVersion": "${DataVersion}",
    "BoardID": 65535,
    "BoardType": "HddBackplane",
    "DeviceName": "DiskBP${Slot}",
    "Position": "SEU${Slot}",
    "NodeId": "SEU${Slot}DiskBP${Slot}",
    "FruID": "<=/Fru_SEU2.FruId",
    "Container": "${Container}",
    "SerialNumber": "<=/FruData_SEU2.BoardSerialNumber",
    "StartSlot": 8,
    "PowerWatts": 30,
    "CpldTestReg": "#/Accessor_CpldTest2.Value",
    "CpldTestNum": 3,
    "CpldStatus": 0
  }
}

🔧 使用指南

配置步骤

  1. 基础信息配置:设置Slot、UID、Name、Type等基本信息
  2. 厂商信息配置:配置Manufacturer、PartNumber、Description等厂商信息
  3. 硬件关联配置:设置PcbID、LogicVersionID、CpldTestReg等硬件寄存器关联
  4. 版本管理配置:配置SRVersion、LogicVersion等版本信息
  5. 接口展示配置:设置DeviceName、Position、NodeId等展示信息
  6. 槽位配置:配置StartSlot定义硬盘起始槽位号
  7. CPLD自检配置:配置CpldTestReg、CpldTestNum等自检参数

UID编码规范

  • Vendor ID: 固定为00000001(华为)
  • 单板类型: 2位十六进制,如03表示SEU
  • 单板编码: 10位十六进制,唯一标识单板
  • 完整格式: vendor(8位) + 单板类型(2位) + 单板编码(10位)

单板类型说明

  • SEU: 存储扩展单元(Storage Expansion Unit)
  • HddBackplane: 硬盘背板类型
  • 其他类型: 根据实际硬件定义

起始槽位配置

  • 前置背板: StartSlot通常为0
  • 后置背板: StartSlot根据前置背板硬盘数量设置
  • 示例: 前置8个硬盘,后置背板StartSlot设置为8

CPLD自检机制

  • CpldTestReg: 关联到CPLD自检寄存器
  • CpldTestNum: 配置单次自检次数
  • CpldStatus: 记录自检失败次数,用于告警

动态属性生成

  • DeviceName: 格式为"DiskBP${Slot}",如DiskBP1
  • Position: 格式为"SEU${Slot}",如SEU1
  • NodeId: 格式为"SEUSlotDiskBP{Slot}",如SEU1DiskBP1

注意事项

  • 槽位唯一性: 确保每个背板的Slot在系统中唯一
  • UID唯一性: 确保每个背板的UID唯一
  • StartSlot配置: 确保StartSlot配置正确,避免硬盘ID冲突
  • FRU数据关联: 确保FruData对象存在且正确配置

故障排除

  1. 信息获取失败

    • 检查FruData对象是否存在且正确配置
    • 验证Accessor对象是否正确关联
    • 确认硬件连接是否正常
  2. 版本信息异常

    • 检查LogicVersionID是否正确关联到寄存器
    • 确认PcbID读取是否正常
    • 验证MCUVersion是否自动获取
  3. CPLD自检异常

    • 检查CpldTestReg是否正确关联到寄存器
    • 确认CpldTestNum配置是否合理
    • 验证CpldStatus统计是否正确

性能优化

  • 信息缓存: 合理缓存FRU数据,减少重复读取
  • 状态监控: 优化RunningStatus检测频率和机制
  • CPLD自检: 合理配置CpldTestNum,平衡检测效果和系统负载

📚 相关文档