CSR配置字典之ExpBoard类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | ExpBoard类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建ExpBoard类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
ExpBoard 类
属性 | 值 |
---|---|
类名称 | ExpBoard |
功能描述 | 扩展板管理对象,提供扩展板的基本信息、版本管理、状态监控和接口展示功能 |
所属SIG组 | hardware |
所属组件 | 单板管理 |
责任人 | 单板管理组 |
最后更新 | 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 | Mixed | - | String | FruData_SEU | 固件厂商 支持动态关联和表达式 | BMC接口展示 | `"<=/FruData_SEU.BoardManufacturer | > expr($1 == '' ? 'Huawei' : $1)"` | 厂商 |
Type | String | - | String | - | 单板类型 | BMC接口展示 | "SEU" | 单板类型配置 | 硬件 |
Description | String | - | String | - | 单板描述 | BMC接口展示 | "12*3.5 SAS/SATA, Expander" | 单板描述 | 硬件 |
PartNumber | Mixed | - | String | FruData_SEU | 部件编号,支持BMC接口写入 | BMC接口展示 | "<=/FruData_SEU.BoardPartNumber" | 部件编号 | 硬件 |
LogicUnit | U32 | 0 | U32 | - | 逻辑位号 | BMC接口展示 | 3 | 硬件提供 | 硬件 |
PcbID | Mixed | - | U8 | Accessor_PcbID | PcbID PcbVersion属性会使用 | PcbVersion属性会使用 | "#/Accessor_PcbID.Value" | 硬件提供 | 硬件 |
SRVersion | String | - | String | - | CSR版本 | BMC接口展示 | "${DataVersion}" | SR版本 | 软件 |
BoardID | U16 | - | U16 | - | 单板ID 以前用BoardID属性,在9555芯片通过上下拉实现,目前不用了 | BMC接口展示 | 65535 | CSR配置 | 软件 |
BoardType | String | - | String | - | 单板类型 | BMC接口展示 | "ExpBoard" | CSR配置 | 软件 |
DeviceName | String | - | String | - | 板卡丝印信息 | BMC接口展示 | "ExpBoard${Slot}" | CSR配置 | 软件 |
Position | String | - | String | - | 单板位置 | BMC接口展示 | "EXU${Slot}" | CSR配置 | 软件 |
NodeId | String | - | String | - | 容器信息 Position和设备丝印名称DeviceName拼接而成 | BMC接口展示 | "EXU${Slot}ExpBoard${Slot}" | CSR配置 | 软件 |
FruID | Mixed | - | U8 | Fru_Expander | 单板FRUID | BMC接口展示 | "<=/Fru_Expander.FruId" | CSR配置 | 软件 |
PowerWatts | U32 | - | U32 | - | 单板功率 | BMC接口展示 | - | 硬件提供 | 硬件 |
CpldTestReg | Mixed | - | U32 | Accessor_CpldTest | CPLD自检关联寄存器 | CPLD自检 | "#/Accessor_CpldTest.Value" | 硬件提供 | 硬件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
LogicVersion | String | "" | String | - | CPLD版本号,只会多片CPLD版本展示 | BMC接口展示 | "" | BMC内部设置 | 软件 |
PcbVersion | String | "" | String | - | PCB版本,BMC获取到PcbID就会进行转换 | BMC接口展示 | "" | PcbID转换 | 软件 |
LogicVersionID | Mixed | - | U8 | Accessor_LogicVersionID | CPLD版本号关联寄存器 | BMC获取CPLD版本号 | "#/Accessor_LogicVersionID.Value" | 硬件提供 | 硬件 |
MCUVersion | String | "" | String | - | MCU的版本信息,不需要配置,自动获取 | BMC接口展示 | "" | BMC内部设置 | 软件 |
Number | U8 | - | U8 | - | 根据整机配置更新逻辑编号,目前仅背板使用,使用SlotConfigs配置属性 | 根据整机配置更新逻辑编号 | 1 | BMC内部设置 | 软件 |
RunningStatus | U8 | - | U8 | - | BMC启动后例测60s检测MCU和CPLD关联信息是否获取正常 | - | - | BMC内部设置 | 软件 |
RefSMCChip | U8[] | - | U8[] | Smc_ExpBoardSMC | RunningStatus使用 | 见RunningStatus描述 | "#/Smc_ExpBoardSMC" | - | 硬件 |
RefMCUChip | U8[] | - | U8[] | Chip_MCU1 | RunningStatus使用 | - | "#/Chip_MCU1" | - | 硬件 |
Container | String | - | String | - | 更新硬盘背板的起始槽位号 | BMC接口展示 | "{Container}" | CSR配置 | 软件 |
CpldTestNum | U8 | 1 | U8 | - | CPLD单次例测自检次数 | CPLD自检 | 2 | CSR配置 | 软件 |
SyncTimeSupport | U8 | - | U8 | - | 是否支持同步时间 如果配置1,BMC会周期将时间写入到RefSMCChip的对象下 | - | 1 | CSR配置 | 软件 |
CpldStatus | U8 | 0 | U8 | - | CPLD自检状态 | CPLD自检告警使用 | 0 | CPLD自检状态 | 软件 |
MultiLogicVersion | Mixed | - | Mixed | - | 更新CPLD版本号 | BMC接口展示 | - | BMC内部设置 | 硬件 |
MultiLogicUnit | Mixed | - | Mixed | - | 多片CPLD位号 | BMC接口展示 | {"CPLD1": 17, "CPLD2": 18} | 硬件提供 | 硬件 |
CPLD2VersionID | Mixed | - | U8 | Accessor_Cpld2VersionID | 第二片CPLD版本号获取 | BMC接口展示 | "#/Accessor_Cpld2VersionID.Value" | 硬件提供 | 硬件 |
FPGAVersionID | Mixed | - | 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
}
}
🔧 使用指南
配置步骤
- 基本信息配置:设置槽位号、UID、名称等基本信息
- 关联FRU对象:配置厂商、部件编号等FRU相关信息
- 寄存器关联:配置PcbID、LogicVersionID等硬件寄存器
- 版本信息配置:设置CSR版本、CPLD版本等
- 功能配置:配置CPLD自检、时间同步等功能
- 对象引用:关联SMC、MCU等相关对象
注意事项
- UID唯一性:确保每个扩展板的UID全局唯一
- 槽位管理:合理分配和管理槽位号
- 版本同步:保持CSR版本与实际固件版本同步
- 关联完整性:确保所有引用的对象都已正确定义
故障排除
- 版本获取失败:检查LogicVersionID寄存器关联
- FRU信息缺失:确认FruData对象配置正确
- CPLD自检异常:检查CpldTestReg寄存器和测试配置
- 时间同步问题:确认RefSMCChip对象关联正确
性能优化
- 合理配置扫描周期:避免过频繁的硬件访问
- 优化表达式计算:简化复杂的动态关联表达式
- 资源管理:合理管理CPLD、MCU等硬件资源