CSR配置字典之HddBackplane类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | HddBackplane类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建HddBackplane类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
HddBackplane 类
属性 | 值 |
---|---|
类名称 | HddBackplane |
功能描述 | 背板管理对象,提供硬盘背板的基本信息、版本管理、状态监控和CPLD自检功能 |
所属SIG组 | storage |
所属组件 | 背板管理 |
责任人 | 存储管理组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
Slot | U8 | 0 | U8 | - | 槽位号 | BMC接口展示 | 1 | 硬件提供 | 硬件 |
UID | String | - | String | - | 单板UID vendor(00000001)+单板类型(02)+单板编码(0302031825) | BMC接口展示 | "00000001030302023934" | 硬件提供 | 硬件 |
Name | String | - | String | - | 固件名称 | BMC接口展示 | "BC83HBBH" | 固定配置,根据具体单板 | 硬件 |
Manufacturer | String | - | String | - | 固件厂商 | BMC接口展示 | `"<=/FruData_SEU.BoardManufacturer | > expr($1 == '' ? 'Huawei' : $1)"` | 厂商 |
Type | String | - | String | - | 单板类型 | BMC接口展示 | "SEU" | 单板类型配置 | 硬件 |
Description | String | - | String | - | 单板描述 | BMC接口展示 | "12*3.5 SAS/SATA, Expander" | 单板描述 | 硬件 |
PartNumber | String | - | String | - | 部件编号,支持BMC接口写入 | BMC接口展示 | "<=/FruData_SEU.BoardPartNumber" | 部件编号 | 硬件 |
LogicUnit | U8 | 0 | U8 | - | 逻辑位号 | BMC接口展示 | 3 | 硬件提供 | 硬件 |
PcbID | String | - | String | Accessor_PcbID | PcbID | PcbVersion属性会使用 | "#/Accessor_PcbID.Value" | 硬件提供 | 硬件 |
SRVersion | String | - | String | - | CSR版本 | BMC接口展示 | "${DataVersion}" | SR版本 | 软件 |
BoardID | U16 | 65535 | U16 | - | 单板ID 以前用BoardID属性,在9555芯片通过上下拉实现,目前不用了 | BMC接口展示 | 65535 | CSR配置 | 软件 |
BoardType | String | - | String | - | 单板类型 | BMC接口展示 | "HddBackplane" | CSR配置 | 软件 |
DeviceName | String | - | String | - | 板卡丝印信息 | BMC接口展示 | "DiskBP${Slot}" | CSR配置 | 软件 |
Position | String | - | String | - | 单板位置 | BMC接口展示 | "SEU${Slot}" | CSR配置 | 软件 |
NodeId | String | - | String | - | 容器信息Position和设备丝印名称DeviceName拼接而成 | BMC接口展示 | "SEU${Slot}DiskBP${Slot}" | CSR配置 | 软件 |
FruID | String | - | String | Fru_SEU | 单板FRUID | BMC接口展示 | "<=/Fru_SEU.FruId" | CSR配置 | 软件 |
Container | String | - | String | - | 更新硬盘背板的起始槽位号 | BMC接口展示 | "${Container}" | CSR配置 | 软件 |
SerialNumber | String | "" | String | FruData_SEU | 序列号 | BMC接口展示 | "<=/FruData_SEU.BoardSerialNumber" | BMC内部设置 | 软件 |
StartSlot | U8 | 0 | U8 | - | 硬盘起始槽位号 | BMC接口展示 | 0 | 根据前后置类型配置 | 软件 |
PowerWatts | U16 | - | U16 | - | 单板功率 | BMC接口展示 | 50 | 硬件提供 | 硬件 |
CpldTestReg | String | - | String | Accessor_CpldTest | CPLD自检关联寄存器 | CPLD自检 | "#/Accessor_CpldTest.Value" | 硬件提供 | 硬件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
LogicVersion | String | "" | String | - | CPLD版本号,只会多片CPLD版本展示 | BMC接口展示 | "" | BMC内部设置 | 软件 |
PcbVersion | String | "" | String | - | PCB版本,BMC获取到PcbID就会进行转换 | BMC接口展示 | "" | PcbID转换 | 软件 |
LogicVersionID | String | - | String | Accessor_LogicVersionID | CPLD版本号关联寄存器 | BMC获取CPLD版本号 | "#/Accessor_LogicVersionID.Value" | 硬件提供 | 硬件 |
Number | U8 | - | U8 | - | 根据整机配置更新逻辑编号,目前仅背板使用,使用SlotConfigs配置属性 | 根据整机配置更新逻辑编号 | 1 | BMC内部设置 | 软件 |
RefComponent | String | - | String | Component_HddBackplane | 当前未使用 | NA | "#/Component_HddBackplane" | CSR配置 | 软件 |
SilkText | String | - | String | - | 背板位置 | 根据SlotConfigs配置更新 | "" | 软件刷新 | 软件 |
MCUVersion | String | "" | String | - | MCU的版本信息,不需要配置,自动获取 | BMC接口展示 | "" | BMC内部设置 | 软件 |
RunningStatus | U8 | - | U8 | - | BMC启动后例测60s检测MCU和CPLD关联信息是否获取正常 | 状态监控 | 1 | BMC内部设置 | 软件 |
RefSMCChip | String | - | String | Smc_EnclSMC | RunningStatus使用 | 见RunningStatus描述 | "#/Smc_EnclSMC" | 硬件关联 | 硬件 |
RefMCUChip | String | - | String | Chip_MCU1 | RunningStatus使用 | 状态监控 | "#/Chip_MCU1" | 硬件关联 | 硬件 |
CpldTestNum | U8 | 1 | U8 | - | CPLD单次例测自检次数 | CPLD自检 | 2 | CSR配置 | 软件 |
CpldStatus | U8 | 0 | U8 | - | CPLD自检失败次数 | CPLD自检告警使用 | 0 | CPLD自检状态 | 软件 |
🔗 动态关联机制
语法规范
使用多种动态关联语法:
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
}
}
🔧 使用指南
配置步骤
- 基础信息配置:设置Slot、UID、Name、Type等基本信息
- 厂商信息配置:配置Manufacturer、PartNumber、Description等厂商信息
- 硬件关联配置:设置PcbID、LogicVersionID、CpldTestReg等硬件寄存器关联
- 版本管理配置:配置SRVersion、LogicVersion等版本信息
- 接口展示配置:设置DeviceName、Position、NodeId等展示信息
- 槽位配置:配置StartSlot定义硬盘起始槽位号
- 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: 格式为"SEU
{Slot}",如SEU1DiskBP1
注意事项
- 槽位唯一性: 确保每个背板的Slot在系统中唯一
- UID唯一性: 确保每个背板的UID唯一
- StartSlot配置: 确保StartSlot配置正确,避免硬盘ID冲突
- FRU数据关联: 确保FruData对象存在且正确配置
故障排除
信息获取失败:
- 检查FruData对象是否存在且正确配置
- 验证Accessor对象是否正确关联
- 确认硬件连接是否正常
版本信息异常:
- 检查LogicVersionID是否正确关联到寄存器
- 确认PcbID读取是否正常
- 验证MCUVersion是否自动获取
CPLD自检异常:
- 检查CpldTestReg是否正确关联到寄存器
- 确认CpldTestNum配置是否合理
- 验证CpldStatus统计是否正确
性能优化
- 信息缓存: 合理缓存FRU数据,减少重复读取
- 状态监控: 优化RunningStatus检测频率和机制
- CPLD自检: 合理配置CpldTestNum,平衡检测效果和系统负载