CSR配置字典之LogicFirmware类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | LogicFirmware类配置字典 |
| 版本 | v1.0 |
| 创建日期 | 2025-01-27 |
| 最后更新 | 2025-01-27 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2025-01-27 | 初始版本 | 创建LogicFirmware类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
LogicFirmware 类
| 属性 | 值 |
|---|---|
| 类名称 | LogicFirmware |
| 功能描述 | 逻辑固件信息管理,用于CPLD、FPGA等逻辑器件的固件版本管理、升级控制和自检功能 |
| 所属SIG组 | firmware |
| 所属组件 | 固件管理 |
| 责任人 | 固件管理组 |
| 最后更新 | 2025-01-27 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
UId | String | NA | String | - | 单板UID vendor(00000001)+单板类型(02)+单板编码(0302031825) | 不应该固化,应该关联对应单板的UID,工具自动关联到单板对象 | "00000001020302031825" | 硬件提供 | 硬件 |
Name | String | NA | String | - | 固件名称 数字代表第几片cpld | BMC接口展示 | "BCU_CPLD1" | 固定配置,根据具体单板 | 软件 |
Manufacturer | String | NA | String | - | 固件厂商 | BMC接口展示 | "Huawei" | 厂商 | 软件 |
Version | U8 | NA | U8 | Accessor_LogicVerId.Value | 固件版本 | CPLD升级使用 | "#/Accessor_LogicVerId.Value" | 硬件提供 | 软件 |
Location | U32 | NA | U32 | - | 固件所在器件的位号 BMC展示会在前面加U | 位号显示 | 6288 | 硬件提供 | 硬件 |
ChipInfo | U8[] | NA | U8[] | Cpld_1 | 获取CPLD厂商和bypass使能 | CPLD升级 | "#/Cpld_1" | 硬件提供 | 硬件 |
Routes | U8 | NA | U8 | Accessor_JtagSwitch.Value | CPLD升级对应链路 不配置则不会切换链路 | CPLD升级 | "#/Accessor_JtagSwitch.Value" | 硬件提供 | 硬件 |
DefaultRoute | U8 | 0 | U8 | - | 与Routes关联的SMC对应 升级完成后会设置对应值 0代表不需要切换 | CPLD升级 | 0 | 硬件提供 | 硬件 |
FirmwareRoute | U8 | 0 | U8 | - | 与Routes关联的SMC对应 升级时会设置对应值切到对应链路 0代表不需要切换 | CPLD升级 | 1 | 硬件提供 | 硬件 |
SoftwareId | String | NA | String | - | CPLD编码信息 配置格式按'固件类型-单板名称' | BMC RedFish接口展示 | "CPLD-BC83AMDA" | CSR配置 | 软件 |
SmcChip | U8[] | NA | U8[] | Smc_EnclSMC | 升级CPLD使用IIC链路升级时获取厂商信息 | 升级CPLD | "#/Smc_EnclSMC" | 硬件提供 | 硬件 |
I2CUpgradeChip | U8[] | NA | U8[] | Chip_Cpld | 升级CPLD使用IIC链路升级对应的Chip芯片 | 升级CPLD | "#/Chip_Cpld" | 硬件提供 | 硬件 |
I2CUpgradeLockChip | U8[] | NA | U8[] | Chip_Cpld | 升级CPLD使用IIC链路使用的总线锁对应的Chip | 升级CPLD | "#/Chip_Cpld" | 硬件提供 | 硬件 |
UpgradeChip | U8[] | NA | U8[] | Cpld_1 | 升级CPLD使用JTAG链路升级对应的芯片 | 升级CPLD | "#/Cpld_1" | 硬件提供 | 硬件 |
UpgradeLockChip | U8[] | NA | U8[] | Cpld_1 | 升级CPLD使用JTAG链路使用的总线锁对应的Chip | 升级CPLD | "#/Cpld_1" | 硬件提供 | 硬件 |
ComponentType | U8 | NA | U8 | - | JTAG装备命令对应单板的ComponentType | JTAG装备命令 | 8 | 单板类型配置 | 软件 |
ComponentSlot | U8 | NA | U8 | - | JTAG装备命令对应单板的ComponentSlot | JTAG装备命令 | 0 | 单板类型配置 | 软件 |
可选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
ValidMode | U8 | NA | U8 | - | 最新版本属性已废弃 | CPLD升级 | 1 | 硬件提供 | 软件 |
ValidAction | U8 | NA | U8 | Accessor_AC.Value | 最新版本属性已废弃 | CPLD升级 | "#/Accessor_AC.Value" | 硬件提供 | 硬件 |
ComponentID | U8 | NA | U8 | - | 该CPLD的ComponentID 与ComponentIDEx结合后是唯一标识 | 升级CPLD | 5 | 单板类型配置 | 软件 |
ComponentIDEx | U8 | NA | U8 | - | 该CPLD的ComponentID 与ComponentIDEx结合后是唯一标识 | 升级CPLD | 83886081 | 单板类型配置 | 软件 |
FpgaTestRegR | U32 | NA | U32 | Accessor_FpgaTestR.Value | FPGA自检关联SMC命令字 | FPGA自检 | "#/Accessor_FpgaTestR.Value" | 硬件提供 | 硬件 |
FpgaTestRegW | U32 | NA | U32 | Accessor_FpgaTestW.Value | FPGA自检关联SMC命令字 | FPGA自检 | "#/Accessor_FpgaTestW.Value" | 硬件提供 | 硬件 |
FpgaCount | U8 | 0 | U8 | - | FPGA自检失败次数 | FPGA自检 | 0 | BMC内部设置 | 软件 |
🔗 动态关联机制
语法规范
使用 #/xxx 格式实现属性间的动态关联:
yaml
# 语法格式
属性名: "#/目标类.属性名"
# 实际示例
Version: "#/Accessor_LogicVerId.Value" # 关联版本访问器
ChipInfo: "#/Cpld_1" # 关联CPLD芯片
Routes: "#/Accessor_JtagSwitch.Value" # 关联JTAG切换访问器
SmcChip: "#/Smc_EnclSMC" # 关联SMC芯片
I2CUpgradeChip: "#/Chip_Cpld" # 关联I2C升级芯片
UpgradeChip: "#/Cpld_1" # 关联JTAG升级芯片
FpgaTestRegR: "#/Accessor_FpgaTestR.Value" # 关联FPGA测试读寄存器
FpgaTestRegW: "#/Accessor_FpgaTestW.Value" # 关联FPGA测试写寄存器关联说明
- Version: 关联版本访问器,获取实时固件版本
- ChipInfo: 关联CPLD芯片对象,获取厂商信息和bypass状态
- Routes: 关联JTAG切换访问器,控制升级链路
- SmcChip: 关联SMC芯片,用于IIC升级时获取厂商信息
- 升级芯片: 关联具体的升级芯片对象和总线锁
- FPGA测试: 关联FPGA自检的读写寄存器
📂 分类标准
硬件属性
- 定义:与物理器件直接相关的参数
- 特点:通常与硬件BOM表和器件规格对应
- 示例:
UId,Location,ChipInfo,Routes,DefaultRoute,FirmwareRoute,ValidAction,SmcChip,I2CUpgradeChip,I2CUpgradeLockChip,UpgradeChip,UpgradeLockChip,FpgaTestRegR,FpgaTestRegW
软件属性
- 定义:用于逻辑控制和软件管理的参数
- 特点:由BMC固件管理和配置
- 示例:
Name,Manufacturer,Version,ValidMode,SoftwareId,ComponentType,ComponentSlot,ComponentID,ComponentIDEx,FpgaCount
📝 配置示例
标准CPLD配置
json
{
"LogicFirmware": {
"UId": "00000001020302031825",
"Name": "BCU_CPLD1",
"Manufacturer": "Huawei",
"Version": "#/Accessor_LogicVerId.Value",
"Location": 6288,
"ChipInfo": "#/Cpld_1",
"Routes": "#/Accessor_JtagSwitch.Value",
"DefaultRoute": 0,
"FirmwareRoute": 1,
"SoftwareId": "CPLD-BC83AMDA",
"SmcChip": "#/Smc_EnclSMC",
"I2CUpgradeChip": "#/Chip_Cpld",
"I2CUpgradeLockChip": "#/Chip_Cpld",
"UpgradeChip": "#/Cpld_1",
"UpgradeLockChip": "#/Cpld_1",
"ComponentType": 8,
"ComponentSlot": 0,
"ComponentID": 5,
"ComponentIDEx": 83886081
}
}带FPGA自检的配置
json
{
"LogicFirmware": {
"UId": "00000001020302031825",
"Name": "BCU_FPGA1",
"Manufacturer": "Huawei",
"Version": "#/Accessor_LogicVerId.Value",
"Location": 6289,
"ChipInfo": "#/Fpga_1",
"Routes": "#/Accessor_JtagSwitch.Value",
"DefaultRoute": 0,
"FirmwareRoute": 1,
"SoftwareId": "FPGA-BC83AMDA",
"SmcChip": "#/Smc_EnclSMC",
"I2CUpgradeChip": "#/Chip_Fpga",
"I2CUpgradeLockChip": "#/Chip_Fpga",
"UpgradeChip": "#/Fpga_1",
"UpgradeLockChip": "#/Fpga_1",
"ComponentType": 8,
"ComponentSlot": 0,
"FpgaTestRegR": "#/Accessor_FpgaTestR.Value",
"FpgaTestRegW": "#/Accessor_FpgaTestW.Value",
"FpgaCount": 0
}
}简化配置(仅基本信息)
json
{
"LogicFirmware": {
"UId": "00000001020302031825",
"Name": "BCU_CPLD1",
"Manufacturer": "Huawei",
"Version": "#/Accessor_LogicVerId.Value",
"Location": 6288,
"ChipInfo": "#/Cpld_1",
"Routes": "#/Accessor_JtagSwitch.Value",
"DefaultRoute": 0,
"FirmwareRoute": 1,
"SoftwareId": "CPLD-BC83AMDA",
"ComponentType": 8,
"ComponentSlot": 0
}
}🔧 使用指南
配置步骤
- 确定固件信息:设置UId、Name、Manufacturer等基本信息
- 配置版本管理:通过Version属性关联版本访问器
- 设置升级参数:配置升级相关的芯片和链路信息
- 配置装备参数:设置ComponentType、ComponentSlot等装备信息
- 可选功能配置:根据需要配置FPGA自检等功能
- 验证配置:确保所有引用的对象都已正确定义
注意事项
- UID格式:必须按照vendor+单板类型+单板编码的格式
- SoftwareId格式:按照'固件类型-单板名称'的格式配置
- 升级链路:DefaultRoute和FirmwareRoute需要与Routes配合使用
- 芯片引用:所有引用的芯片对象必须在CSR中预先定义
- ComponentID唯一性:ComponentID和ComponentIDEx组合必须唯一
- FPGA自检:FpgaTestRegR和FpgaTestRegW必须成对配置
- 废弃属性:ValidMode和ValidAction在最新版本中已废弃
升级流程说明
- 准备阶段:检查ChipInfo获取厂商信息
- 链路切换:通过Routes切换到FirmwareRoute指定的链路
- 固件传输:使用I2CUpgradeChip或UpgradeChip进行数据传输
- 总线锁定:使用UpgradeLockChip防止总线冲突
- 恢复阶段:升级完成后切换回DefaultRoute指定的链路
- 版本验证:通过Version属性验证升级结果
性能建议
- 升级安全:确保升级过程中电源稳定
- 版本兼容:验证固件版本与硬件的兼容性
- 总线管理:正确配置总线锁避免冲突
- 自检频率:合理设置FPGA自检频率避免影响性能