CSR配置字典之LogicFirmware类
更新时间:2025/7/22
在Gitcode上查看源码

📋 文档信息

项目内容
文档标题LogicFirmware类配置字典
版本v1.0
创建日期2025-01-27
最后更新2025-01-27
维护状态✅ 活跃维护

📋 变更历史记录

文档变更记录

版本发布日期变更类型变更内容影响范围维护人员
v1.02025-01-27初始版本创建LogicFirmware类配置字典全新文档系统管理员

🎯 类概览

LogicFirmware 类

属性
类名称LogicFirmware
功能描述逻辑固件信息管理,用于CPLD、FPGA等逻辑器件的固件版本管理、升级控制和自检功能
所属SIG组firmware
所属组件固件管理
责任人固件管理组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
UIdStringNAString-单板UID
vendor(00000001)+单板类型(02)+单板编码(0302031825)
不应该固化,应该关联对应单板的UID,工具自动关联到单板对象"00000001020302031825"硬件提供硬件
NameStringNAString-固件名称
数字代表第几片cpld
BMC接口展示"BCU_CPLD1"固定配置,根据具体单板软件
ManufacturerStringNAString-固件厂商BMC接口展示"Huawei"厂商软件
VersionU8NAU8Accessor_LogicVerId.Value固件版本CPLD升级使用"#/Accessor_LogicVerId.Value"硬件提供软件
LocationU32NAU32-固件所在器件的位号
BMC展示会在前面加U
位号显示6288硬件提供硬件
ChipInfoU8[]NAU8[]Cpld_1获取CPLD厂商和bypass使能CPLD升级"#/Cpld_1"硬件提供硬件
RoutesU8NAU8Accessor_JtagSwitch.ValueCPLD升级对应链路
不配置则不会切换链路
CPLD升级"#/Accessor_JtagSwitch.Value"硬件提供硬件
DefaultRouteU80U8-与Routes关联的SMC对应
升级完成后会设置对应值
0代表不需要切换
CPLD升级0硬件提供硬件
FirmwareRouteU80U8-与Routes关联的SMC对应
升级时会设置对应值切到对应链路
0代表不需要切换
CPLD升级1硬件提供硬件
SoftwareIdStringNAString-CPLD编码信息
配置格式按'固件类型-单板名称'
BMC RedFish接口展示"CPLD-BC83AMDA"CSR配置软件
SmcChipU8[]NAU8[]Smc_EnclSMC升级CPLD使用IIC链路升级时获取厂商信息升级CPLD"#/Smc_EnclSMC"硬件提供硬件
I2CUpgradeChipU8[]NAU8[]Chip_Cpld升级CPLD使用IIC链路升级对应的Chip芯片升级CPLD"#/Chip_Cpld"硬件提供硬件
I2CUpgradeLockChipU8[]NAU8[]Chip_Cpld升级CPLD使用IIC链路使用的总线锁对应的Chip升级CPLD"#/Chip_Cpld"硬件提供硬件
UpgradeChipU8[]NAU8[]Cpld_1升级CPLD使用JTAG链路升级对应的芯片升级CPLD"#/Cpld_1"硬件提供硬件
UpgradeLockChipU8[]NAU8[]Cpld_1升级CPLD使用JTAG链路使用的总线锁对应的Chip升级CPLD"#/Cpld_1"硬件提供硬件
ComponentTypeU8NAU8-JTAG装备命令对应单板的ComponentTypeJTAG装备命令8单板类型配置软件
ComponentSlotU8NAU8-JTAG装备命令对应单板的ComponentSlotJTAG装备命令0单板类型配置软件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
ValidModeU8NAU8-最新版本属性已废弃CPLD升级1硬件提供软件
ValidActionU8NAU8Accessor_AC.Value最新版本属性已废弃CPLD升级"#/Accessor_AC.Value"硬件提供硬件
ComponentIDU8NAU8-该CPLD的ComponentID
与ComponentIDEx结合后是唯一标识
升级CPLD5单板类型配置软件
ComponentIDExU8NAU8-该CPLD的ComponentID
与ComponentIDEx结合后是唯一标识
升级CPLD83886081单板类型配置软件
FpgaTestRegRU32NAU32Accessor_FpgaTestR.ValueFPGA自检关联SMC命令字FPGA自检"#/Accessor_FpgaTestR.Value"硬件提供硬件
FpgaTestRegWU32NAU32Accessor_FpgaTestW.ValueFPGA自检关联SMC命令字FPGA自检"#/Accessor_FpgaTestW.Value"硬件提供硬件
FpgaCountU80U8-FPGA自检失败次数FPGA自检0BMC内部设置软件

🔗 动态关联机制

语法规范

使用 #/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
  }
}

🔧 使用指南

配置步骤

  1. 确定固件信息:设置UId、Name、Manufacturer等基本信息
  2. 配置版本管理:通过Version属性关联版本访问器
  3. 设置升级参数:配置升级相关的芯片和链路信息
  4. 配置装备参数:设置ComponentType、ComponentSlot等装备信息
  5. 可选功能配置:根据需要配置FPGA自检等功能
  6. 验证配置:确保所有引用的对象都已正确定义

注意事项

  • UID格式:必须按照vendor+单板类型+单板编码的格式
  • SoftwareId格式:按照'固件类型-单板名称'的格式配置
  • 升级链路:DefaultRoute和FirmwareRoute需要与Routes配合使用
  • 芯片引用:所有引用的芯片对象必须在CSR中预先定义
  • ComponentID唯一性:ComponentID和ComponentIDEx组合必须唯一
  • FPGA自检:FpgaTestRegR和FpgaTestRegW必须成对配置
  • 废弃属性:ValidMode和ValidAction在最新版本中已废弃

升级流程说明

  1. 准备阶段:检查ChipInfo获取厂商信息
  2. 链路切换:通过Routes切换到FirmwareRoute指定的链路
  3. 固件传输:使用I2CUpgradeChip或UpgradeChip进行数据传输
  4. 总线锁定:使用UpgradeLockChip防止总线冲突
  5. 恢复阶段:升级完成后切换回DefaultRoute指定的链路
  6. 版本验证:通过Version属性验证升级结果

性能建议

  • 升级安全:确保升级过程中电源稳定
  • 版本兼容:验证固件版本与硬件的兼容性
  • 总线管理:正确配置总线锁避免冲突
  • 自检频率:合理设置FPGA自检频率避免影响性能