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自检频率避免影响性能