CSR配置字典之FruData类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | FruData类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建FruData类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
FruData 类
属性 | 值 |
---|---|
类名称 | FruData |
功能描述 | FRU数据管理,提供电子标签的读取、写入和管理功能,支持多种存储类型和数据格式 |
所属SIG组 | inventory |
所属组件 | fru |
责任人 | 库存管理组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
FruId | U8 | - | U8 | - | 关联所在的Fru的Fruid,0只能给挂耳使用,1~63会自动分配,大于63则使用配置的FruId,所以无特殊情况,配成1即可 | 查询电子标签 | 1 | CSR | 软件 |
FruDev | String | - | 关联eeprom | Eeprom_SDI | 标准电子标签数据来源eeprom,File类型可以不配 | 查询电子标签 | "#/Eeprom_SDI" | CSR | 硬件 |
EepromWp | String | - | 关联Accessor | Accessor_SDIWP | 涉及写eeprom时,部分需要开关写保护,File类型可以不配 | 查询电子标签 | "#/Accessor_SDIWP.Value" | CSR | 硬件 |
StorageType | String | - | String | - | 存储类型,非标可以是MCU等,无限制,反之则必须是TianChi或者EepromV2、File | 查询电子标签 | "MCU/TIANCHI/Eepromv2/File" | CSR | 软件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
FruType | String | - | String | - | 关联所在的Fru的类型,自动根据Fruid匹配Fru | 查询电子标签 | NULL | 组件更新 | 软件 |
FruName | String | - | String | - | 关联所在的Fru的名字,自动根据Fruid匹配Fru | 查询电子标签 | NULL | 组件更新 | 软件 |
BoardManufacturer | String | "" | String | - | 单板生产厂商,标准电子标签从eeprom读取,非标由接口进行更新 | 查询电子标签 | "" | 组件更新 | 软件 |
BoardProductName | String | "" | String | - | 单板产品名称,标准电子标签从eeprom读取,非标由接口进行更新 | 查询电子标签 | "" | 组件更新 | 软件 |
BoardSerialNumber | String | "" | String | - | 单板系列化编号,标准电子标签从eeprom读取,非标由接口进行更新 | 查询电子标签 | "" | 组件更新 | 软件 |
BoardPartNumber | String | "" | String | - | 单板部件号,标准电子标签从eeprom读取,非标由接口进行更新 | 查询电子标签 | "" | 组件更新 | 软件 |
ProductSerialNumber | String | "" | String | - | 产品序列号,标准电子标签从eeprom读取,非标由接口进行更新 | 查询电子标签 | "" | 组件更新 | 软件 |
SystemProductName | String | "" | String | - | 系统产品名称,标准电子标签从eeprom读取,非标由接口进行更新 | 查询电子标签 | "" | 组件更新 | 软件 |
SystemSerialNumber | String | "" | String | - | 系统序列号,标准电子标签从eeprom读取,非标由接口进行更新 | 查询电子标签 | "" | 组件更新 | 软件 |
StorageLoc | String | - | String | - | 电子标签存储类型为File时使用,对应文件路径名 | 查询电子标签 | "/data/opt/bmc/conf/BMCCardFru.dat" | CSR | 软件 |
🔗 动态关联机制
语法规范
使用 #/xxx
格式实现动态关联:
yaml
# EEPROM设备关联
FruDev: "#/Eeprom_SDI"
# 写保护寄存器关联
EepromWp: "#/Accessor_SDIWP.Value"
关联说明
- FruDev: 关联EEPROM设备对象,用于读取电子标签数据
- EepromWp: 关联写保护寄存器,用于EEPROM写操作时的保护控制
📂 分类标准
硬件属性
- 定义:与硬件EEPROM设备直接相关的参数
- 特点:通常与硬件存储设备和寄存器对应
- 示例:
FruDev
,EepromWp
软件属性
- 定义:用于软件逻辑控制和数据管理的参数
- 特点:由CSR配置或组件更新管理
- 示例:
FruId
,FruType
,FruName
,BoardManufacturer
,BoardProductName
,BoardSerialNumber
,BoardPartNumber
,ProductSerialNumber
,SystemProductName
,SystemSerialNumber
,StorageType
,StorageLoc
📝 配置示例
标准EEPROM存储配置
json
{
"FruData": {
"FruId": 1,
"FruType": null,
"FruName": null,
"BoardManufacturer": "",
"BoardProductName": "",
"BoardSerialNumber": "",
"BoardPartNumber": "",
"ProductSerialNumber": "",
"SystemProductName": "",
"SystemSerialNumber": "",
"FruDev": "#/Eeprom_SDI",
"EepromWp": "#/Accessor_SDIWP.Value",
"StorageType": "EepromV2"
}
}
文件存储配置
json
{
"FruData": {
"FruId": 1,
"FruType": null,
"FruName": null,
"BoardManufacturer": "",
"BoardProductName": "",
"BoardSerialNumber": "",
"BoardPartNumber": "",
"ProductSerialNumber": "",
"SystemProductName": "",
"SystemSerialNumber": "",
"StorageType": "File",
"StorageLoc": "/data/opt/bmc/conf/BMCCardFru.dat"
}
}
MCU存储配置
json
{
"FruData": {
"FruId": 1,
"FruType": null,
"FruName": null,
"BoardManufacturer": "",
"BoardProductName": "",
"BoardSerialNumber": "",
"BoardPartNumber": "",
"ProductSerialNumber": "",
"SystemProductName": "",
"SystemSerialNumber": "",
"StorageType": "MCU"
}
}
TianChi存储配置
json
{
"FruData": {
"FruId": 1,
"FruType": null,
"FruName": null,
"BoardManufacturer": "",
"BoardProductName": "",
"BoardSerialNumber": "",
"BoardPartNumber": "",
"ProductSerialNumber": "",
"SystemProductName": "",
"SystemSerialNumber": "",
"FruDev": "#/Eeprom_TianChi",
"EepromWp": "#/Accessor_TianChiWP.Value",
"StorageType": "TIANCHI"
}
}
🔧 使用指南
配置步骤
- 设置FRU ID:配置FruId,通常设置为1即可
- 选择存储类型:根据实际硬件选择StorageType
- 关联存储设备:对于EEPROM类型,关联FruDev和EepromWp
- 配置存储位置:对于File类型,配置StorageLoc文件路径
- 数据字段配置:电子标签数据字段由组件自动更新
- 验证关联:确保EEPROM和Accessor对象已正确定义
注意事项
- FruId分配:0只能给挂耳使用,1~63会自动分配,大于63则使用配置值
- 存储类型选择:根据实际硬件选择合适的StorageType
- EEPROM关联:标准电子标签需要关联FruDev和EepromWp
- 文件路径:File类型需要配置正确的StorageLoc路径
- 写保护:涉及写EEPROM时需要正确配置EepromWp
- 数据更新:电子标签数据字段由组件自动更新,无需手动配置
性能建议
- 合理选择存储类型:根据硬件特性选择最适合的存储类型
- 优化文件访问:File类型存储注意文件访问权限和路径
- EEPROM保护:合理配置写保护避免数据损坏
- 数据缓存:合理使用数据缓存提高访问效率
故障排查
- 电子标签读取失败:检查FruDev关联的EEPROM设备
- 写入失败:检查EepromWp写保护配置
- 文件访问异常:检查StorageLoc路径和权限
- 数据格式错误:检查StorageType配置是否正确
- FruId冲突:检查FruId配置是否唯一
- 设备关联错误:检查EEPROM和Accessor对象配置
存储类型说明
- EepromV2: 标准EEPROM存储,支持标准电子标签格式
- TIANCHI: TianChi芯片存储,专用存储芯片
- MCU: MCU存储,通过MCU管理电子标签数据
- File: 文件存储,将电子标签数据存储在文件中
电子标签管理
- 数据读取:支持从多种存储介质读取电子标签数据
- 数据写入:支持向存储介质写入电子标签数据
- 数据校验:提供电子标签数据的校验机制
- 数据备份:支持电子标签数据的备份和恢复
- 接口更新:支持通过接口更新非标电子标签数据
写保护机制
- 硬件保护:通过EepromWp控制硬件写保护
- 软件保护:提供软件级别的写保护机制
- 权限控制:支持基于权限的写入控制
- 操作日志:记录电子标签的写入操作