CSR配置字典之Fru类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | CSR配置字典之Fru类 |
文档版本 | 1.0 |
创建日期 | 2024-01-XX |
最后更新 | 2024-01-XX |
维护状态 | 活跃维护 |
📋 变更历史记录
版本 | 日期 | 变更内容 | 变更人 |
---|---|---|---|
1.0 | 2024-01-XX | 初始版本创建 | 系统 |
🎯 类概述
Fru 类用于管理可独立更换模块(Field Replaceable Unit)的配置。该类主要负责电子标签的查询和管理,包括PCB版本信息、FRU标识、电源状态、健康状态等关键属性的配置和监控。
主要功能特点
- 电子标签管理:提供完整的FRU电子标签信息查询功能
- 版本控制:支持PCB版本的自动转换和管理
- 状态监控:实时监控FRU的电源状态和健康状态
- 唯一标识:支持天池组件的唯一标识管理
- 数据关联:与其他组件和数据对象的动态关联
📊 属性定义表
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
PcbId | U8 | NA | U8 | #/Accessor_PcbID.Value | 关联获取PcbID的Accessor | 查询电子标签 | #/Accessor_PcbID.Value | CSR配置 | 硬件 |
PcbVersion | String | NA | String | 自动转换 | PCB的版本,例如.A或者.B,这个值会自动根据PcbId进行转换(PcbID为1,PcbVersion为".A",PcbID为21,PcbVersion为".B",以此类推) | 查询电子标签 | ".A" | CSR配置 | 硬件 |
FruId | U8 | NA | U8 | 是 | 关联所在的Fru的Fruid,0只能给挂耳使用,配置FruId为1~63会自动分配,大于63则使用配置的FruId,除挂耳外配成1即可 | 查询电子标签 | 1 | CSR配置 | 软件 |
FruName | String | NA | String | 否 | Fru的名称,如CpuBoard | 查询电子标签 | "CpuBoard${Slot}" | CSR配置 | 软件 |
PowerState | U8 | NA | U8(只取1或0) | 否 | Fru关联的热插拔状态,如果不支持可以直接配成1,支持热插拔则需要关联对应的ChassisPayload的PowerState | 查询电子标签 | 1 | CSR配置 | 硬件 |
Health | U8 | NA | U8 | 否 | 当前未使用 | 查询电子标签 | 0 | CSR配置 | 软件 |
EepStatus | U8 | NA | U8 | 否 | 当前未使用 | 查询电子标签 | 1 | CSR配置 | 软件 |
GroupPosition | String | NA | String | 否 | 代码会更新为自发现Position,可不配置 | 查询电子标签 | 0 | BMC内部设置 | 软件 |
Type | U8 | NA | U8 | 是 | Fru类型,请参考IDP文档中的IPMI接口说明的设备类型附录 | 查询电子标签 | 36 | CSR配置 | 软件 |
BoardId | U16 | 65535 | U16 | 是 | 非天池组件单板BoardID,天池组件默认配置65535 | 查询电子标签 | 65535 | CSR配置 | 硬件 |
UniqueId | String | NA | String | 否 | 天池:组件唯一标识,Vendor + ComponentID。代码会从eeprom获取给赋值 | 查询电子标签 | "00000001100302025549" | CSR配置 | 软件 |
FruDataId | 关联FruData对象 | NA | 关联FruData对象 | 是 | 关联FruData对象 | 查询电子标签 | "#/FruData_CpuBoard" | CSR配置 | 软件 |
ConnectorGroupId | U32 | NA | U32 | 是 | 关联Connector传过来的GroupId | 查询电子标签 | "${GroupId}" | CSR配置 | 软件 |
🔗 动态关联机制
1. PcbId 关联
- 关联对象: Accessor对象
- 关联格式:
#/Accessor_PcbID.Value
- 功能: 动态获取PCB标识信息
2. PcbVersion 自动转换
- 转换规则: 根据PcbId自动转换版本号
- 转换逻辑:
- PcbID为1 → PcbVersion为".A"
- PcbID为21 → PcbVersion为".B"
- 以此类推
3. FruDataId 关联
- 关联对象: FruData对象
- 关联格式:
#/FruData_xxx
- 功能: 关联FRU数据对象
4. ConnectorGroupId 关联
- 关联对象: Connector对象
- 关联格式:
${GroupId}
- 功能: 关联连接器组标识
📂 分类标准
硬件分类
- PcbId: PCB标识信息
- PcbVersion: PCB版本信息
- PowerState: 电源状态
- BoardId: 单板标识
软件分类
- FruId: FRU标识
- FruName: FRU名称
- Health: 健康状态
- EepStatus: EEPROM状态
- GroupPosition: 组位置
- Type: FRU类型
- UniqueId: 唯一标识
- FruDataId: FRU数据关联
- ConnectorGroupId: 连接器组关联
📝 配置示例
基本CPU板卡配置
json
{
"PcbId": "#/Accessor_PcbID.Value",
"PcbVersion": ".A",
"FruId": 1,
"FruName": "CpuBoard1",
"PowerState": 1,
"Health": 0,
"EepStatus": 1,
"GroupPosition": "0",
"Type": 36,
"BoardId": 65535,
"UniqueId": "00000001100302025549",
"FruDataId": "#/FruData_CpuBoard",
"ConnectorGroupId": "${GroupId}"
}
热插拔支持配置
json
{
"PcbId": "#/Accessor_PcbID.Value",
"PcbVersion": ".B",
"FruId": 2,
"FruName": "CpuBoard2",
"PowerState": "#/ChassisPayload.PowerState",
"Health": 0,
"EepStatus": 1,
"GroupPosition": "1",
"Type": 36,
"BoardId": 1001,
"UniqueId": "00000001100302025550",
"FruDataId": "#/FruData_CpuBoard2",
"ConnectorGroupId": "${GroupId}"
}
天池组件配置
json
{
"PcbId": "#/Accessor_PcbID.Value",
"PcbVersion": ".A",
"FruId": 1,
"FruName": "TianchiComponent",
"PowerState": 1,
"Health": 0,
"EepStatus": 1,
"GroupPosition": "0",
"Type": 36,
"BoardId": 65535,
"UniqueId": "00000001100302025549",
"FruDataId": "#/FruData_Tianchi",
"ConnectorGroupId": "${GroupId}"
}
🔧 使用指南
1. 必选属性配置
以下属性为必选项,必须正确配置:
- PcbId: 必须关联有效的Accessor对象
- PcbVersion: 系统会自动转换,无需手动配置
- FruId: 除挂耳外配成1即可
- FruName: 提供有意义的FRU名称
- Type: 参考IDP文档中的设备类型附录
- BoardId: 天池组件配置65535,其他组件配置实际BoardID
- FruDataId: 必须关联有效的FruData对象
- ConnectorGroupId: 必须关联有效的Connector GroupId
2. 可选属性配置
以下属性为可选项,根据实际需求配置:
- PowerState: 不支持热插拔配成1,支持热插拔需关联ChassisPayload
- Health: 当前未使用,可配置为0
- EepStatus: 当前未使用,可配置为1
- GroupPosition: 代码会自动更新,可不配置
- UniqueId: 天池组件需要配置,其他组件可选
3. 版本转换规则
- PcbId为1-20:对应PcbVersion ".A"到".T"
- PcbId为21-40:对应PcbVersion ".B"到".U"
- 以此类推,每20个ID对应一个版本系列
4. FruId分配规则
- 0:专用于挂耳
- 1-63:自动分配
- 64+:使用配置的FruId
❓ 常见问题
Q1: PcbVersion如何自动转换?
A: 系统会根据PcbId自动转换PcbVersion,无需手动配置。转换规则为:PcbID为1对应".A",PcbID为21对应".B",依此类推。
Q2: 天池组件和普通组件的区别?
A: 天池组件的BoardId固定为65535,需要配置UniqueId作为唯一标识;普通组件使用实际的BoardId,UniqueId可选。
Q3: 如何处理热插拔状态?
A: 如果不支持热插拔,直接配置PowerState为1;如果支持热插拔,需要关联对应ChassisPayload的PowerState。
Q4: Health和EepStatus属性的用途?
A: 这两个属性当前未使用,可以配置为默认值0和1。
Q5: GroupPosition需要手动配置吗?
A: 不需要,代码会自动更新为自发现的Position值,可以不配置或配置为默认值。