代码仓
中
CSR配置字典之Fru类
更新时间: 2026/11/04
在AtomGit上查看源码

📋 文档信息 ​

项目内容
文档标题CSR配置字典之Fru类
文档版本1.2
创建日期2025-07-12
最后更新2026-11-03
维护状态活跃维护

📋 变更历史记录 ​

版本日期变更内容变更人
1.02025-07-12初始版本创建系统
1.12026-05-15补充CSR属性frudata组件组
1.22026-11-03内联Type设备类型枚举取值(替换原"参考IDP文档"引用),并补充设备类型枚举表Type字段

🎯 类概览 ​

Fru 类 ​

属性值
类名称Fru
功能描述用于管理可独立更换模块(Field Replaceable Unit)的配置。该类主要负责电子标签的查询和管理,包括PCB版本信息、FRU标识、电源状态、健康状态等关键属性的配置和监控
所属SIG组hardware
所属组件frudata
责任人散热管理组
最后更新2026-05-15
状态🟢 正常运行

主要功能特点 ​

  • 电子标签管理:提供完整的FRU电子标签信息查询功能
  • 版本控制:支持PCB版本的自动转换和管理
  • 状态监控:实时监控FRU的电源状态和健康状态
  • 唯一标识:支持天池组件的唯一标识管理
  • 数据关联:与其他组件和数据对象的动态关联

📊 属性定义表 ​

必选属性 ​

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
PcbIdU8-U8#/Accessor_PcbID.Value关联获取PcbID的Accessor查询电子标签#/Accessor_PcbID.ValueCSR配置硬件
PcbVersionString-String自动转换PCB的版本,例如.A或者.B,这个值会自动根据PcbId进行转换(PcbID为1,PcbVersion为".A",PcbID为21,PcbVersion为".B",以此类推)查询电子标签".A"CSR配置硬件
FruIdU8-U8是关联所在的Fru的Fruid,0只能给挂耳使用,配置FruId为1~63会自动分配,大于63则使用配置的FruId,除挂耳外配成1即可查询电子标签1CSR配置软件
FruNameString-String否Fru的名称,如CpuBoard查询电子标签"CpuBoard${Slot}"CSR配置软件
PowerStateU8-U8(只取1或0)否Fru关联的热插拔状态,如果不支持可以直接配成1,支持热插拔则需要关联对应的ChassisPayload的PowerState查询电子标签1CSR配置硬件
HealthU8-U8否当前未使用查询电子标签0CSR配置软件
EepStatusU8-U8否当前未使用查询电子标签1CSR配置软件
GroupPositionString-String否代码会更新为自发现Position,可不配置查询电子标签0BMC内部设置软件
TypeU8-设备类型枚举,取值范围:取值范围:0~98、192~197、252、253,255为保留值,详细取值见下文【设备类型枚举】表是Fru类型查询电子标签36CSR配置软件
BoardIdU1665535U16是非天池组件单板BoardID,天池组件默认配置65535查询电子标签65535CSR配置硬件
UniqueIdString-String否天池:组件唯一标识,Vendor + ComponentID。代码会从eeprom获取给赋值查询电子标签"00000001100302025549"CSR配置软件
FruDataId关联FruData对象-关联FruData对象是关联FruData对象查询电子标签"#/FruData_CpuBoard"CSR配置软件
ConnectorGroupIdU32-U32是关联Connector传过来的GroupId查询电子标签"${GroupId}"CSR配置软件

可选属性 ​

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
BomIdU8255U8-Bom Id查询Bom Id1CSR配置硬件
SlotIdU8255U8-槽位号查询槽位号1CSR配置硬件

📊 设备类型枚举 ​

说明:Fru Type与Component Type定义方式相同(Fru Type的例外部分单独划分),取值与Component类Type字段一致。

类型ID(十进制)类型ID(十六进制)部件类型名称
00x00CPU
10x01Memory(内存)
20x02Hard disk(硬盘)
30x03Power supply unit(PSU电源模块)
40x04Fan(风扇)
50x05Hard Drive Backplane(硬盘背板)
60x06Screw-in RAID controller card(插拔RAID控制卡)
70x07UNKNOWN(未定义)
80x08PCIe cards(PCIe卡)
90x09AMC board(AMC单板)
100x0AHBA Controller Card(HBA控制卡)
110x0Bmezzanine card(夹层卡)
120x0CUNKNOWN(未定义)
130x0DNIC(网卡)
140x0EMemory board(内存板)
150x0FPCIe riser card(PCIe Riser卡)
160x10PCBA(主板)
170x11LCD
180x12Chassis(机箱)
190x13NCM(节点控制器模块)
200x14Switch Module(交换模块)
210x15Storage Board(存储板)
220x16Chassis Backplane(机箱背板)
230x17SMM/CMC(集中管理模块)
240x18Fan Backplane(风扇背板)
250x19PSU Backplane/Power Transfer Board(电源背板/电源转接板)
260x1ABMC board(BMC单板)
270x1BMMC/MM board(外设管理板)
280x1CTwin Node Backplane(双子节点背板)
290x1DBase Plane(基础交换平面)
300x1EFabric Plane(Fabric交换平面)
310x1FSwitch Mezz(交换夹层卡)
320x20LED
330x21SD Card(SD卡)
340x22Security Module(安全模块TPM/TCM)
350x23I/O Board(IO单板)
360x24CPU Board(CPU板)
370x25RMC(机架管理模块)
380x26PCIe Adapter(PCIe SSD转接卡)
390x27PCH
400x28Cable(线缆/内部连接)
410x29Port(端口)
420x2ALSW
430x2BPHY
440x2CSystem(业务系统/产品)
450x2DM.2 Transfer Card(M.2转接卡)
450x2DExpander(扩展器,某机型专用)
460x2ELED Board(LED板)
470x2FLPM(LPM/PBI板)
480x30PIC Card(PIC卡)
490x31Button(按钮)
500x32Expander(通用扩展板)
510x33CPI(集中控制分区单元)
520x34ACM(高级时钟模块)
530x35CIM(中央接口模块)
540x36PFM(电源风扇完整性模块)
550x37KPAR(多分区系统)
560x38JC(JC芯片)
570x39SCM(系统计算模块)
580x3AMinisas HD channel(MINISAS HD通道)
590x3BSATA DOM channel(SATADOM通道)
600x3CGE channel(GE通道)
610x3DXGE channel(XGE通道)
620x3EPCIe Switch(PCIe交换)
630x3FInterface Device(接口组件/接口板)
640x40xPU Board(xPU载板/xPU板)
650x41Disk BaseBoard(硬盘基板)
660x42VGA Interface Card(VGA转接卡)
670x43Pass-Through Card(透传卡)
680x44Logical Driver(逻辑硬盘)
690x45PCIe Retimer(PCIe重定时器)
700x46PCIe Repeater(PCIe中继器)
710x47SAS
720x48Memory Channel(内存通道)
730x49BMA
740x4ALOM
750x4BSignal Adapter Board(信号转接板)
760x4CHorizontal Connection Board(水平转接板)
770x4DNode(节点)
780x4EAsset Locate Board(资产管理板)
790x4FUnit(安装位置)
800x50RMM(机柜管理模块)
810x51Rack(机柜)
820x52BBU(备电模块)
830x53OCP Card(OCP卡)
840x54Leakage Detection Card(漏液检测卡)
850x55MESH Card(Mesh卡)
860x56NPU(神经网络计算芯片)
870x57CIC Card(融合接口卡)
880x58Expansion Module(扩展模块)
890x59Fan Module(风扇模块)
900x5AAR Card(AR卡)
910x5BConverge Board(融合板)
920x5CSoC Board(SoC PCBA)
930x5DExpand Board(扩展板)
940x5EHiAM
950x5FOptical Module(光模块)
960x60HDU(高压配电单元)
970x61NP(网络加速板)
980x62LCN(局域计算网络)
1920xC0BCU(基础计算单元)
1930xC1EXU(系统扩展单元)
1940xC2SEU(存储扩展组件)
1950xC3IEU(IO扩展组件)
1960xC4CLU(散热组件)
1970xC5SSU
2520xFCXXX Software Events(某产品软件告警)
2530xFDPoDManager(PoDManager系统软件)
2550xFFReserved(保留。 用作扩展或特殊场景定义,禁止作为有效的设备类型使用)

🔗 动态关联机制 ​

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值,可以不配置或配置为默认值。