CSR配置字典之FirmwareComponentInfo类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | FirmwareComponentInfo类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建FirmwareComponentInfo类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
FirmwareComponentInfo 类
属性 | 值 |
---|---|
类名称 | FirmwareComponentInfo |
功能描述 | 固件组件信息对象,提供固件的标识、版本管理和升级控制功能,支持防回退机制 |
所属SIG组 | firmware |
所属组件 | 固件管理 |
责任人 | 固件管理组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
ComponentID | U32 | - | U32 | - | 用于区分固件的组件ID | 固件升级 | 24 | CSR配置 | 软件 |
ComponentIDEx | U32 | 4294967295 | U32 | - | 固件的扩展组件ID ComponentID、ComponentIDEx可以唯一识别固件 在《IBMC IPMI接口说明》的"附录-固件ID管理-表1 固件升级ID分配表"中定义 新增固件的ComponentID、ComponentIDEx应当不与其他固件冲突 | 固件升级 | 6 | CSR配置 | 软件 |
Name | String | - | String | - | 固件名称 | 固件升级 | "BP_Cpld" | CSR配置 | 软件 |
RevisionNumber | U8 | - | U8 | - | 软件的防回退功能 用于限制升级固件的最低版本 当一个固件包的Revision小于RevisionNumber时,就不允许升级 0代表无防回退 | 固件升级 | 0 | CSR配置 | 软件 |
可选属性
无可选属性
🔗 动态关联机制
语法规范
使用标准配置语法:
yaml
# 固件组件信息配置
ComponentID: 24
ComponentIDEx: 6
Name: "BP_Cpld"
RevisionNumber: 0
关联说明
- 固件标识: ComponentID和ComponentIDEx组合唯一标识固件
- 版本控制: RevisionNumber控制固件的防回退功能
- 升级管理: 用于固件升级过程中的版本验证和控制
📂 分类标准
硬件属性
- 定义:当前版本无硬件属性
- 特点:所有属性都是软件管理相关
- 示例:无
软件属性
- 定义:由软件管理和维护的固件信息参数
- 特点:固件标识、版本控制、升级管理
- 示例:
ComponentID
,ComponentIDEx
,Name
,RevisionNumber
📝 配置示例
基础固件组件配置
json
{
"FirmwareComponentInfo_BPCpld": {
"ComponentID": 24,
"ComponentIDEx": 6,
"Name": "BP_Cpld",
"RevisionNumber": 0
}
}
MCU固件组件配置
json
{
"FirmwareComponentInfo_MCU": {
"ComponentID": 25,
"ComponentIDEx": 7,
"Name": "MCU_Firmware",
"RevisionNumber": 1
}
}
BIOS固件组件配置
json
{
"FirmwareComponentInfo_BIOS": {
"ComponentID": 1,
"ComponentIDEx": 1,
"Name": "BIOS",
"RevisionNumber": 2
}
}
BMC固件组件配置
json
{
"FirmwareComponentInfo_BMC": {
"ComponentID": 2,
"ComponentIDEx": 2,
"Name": "BMC",
"RevisionNumber": 3
}
}
🔧 使用指南
配置步骤
- 组件ID配置:设置ComponentID和ComponentIDEx,确保唯一性
- 名称配置:设置Name为固件的描述性名称
- 版本控制配置:设置RevisionNumber控制防回退功能
- ID分配表检查:确认ID在《IBMC IPMI接口说明》中正确定义
组件ID管理
- 唯一性要求:ComponentID和ComponentIDEx的组合必须唯一
- ID分配表:参考《IBMC IPMI接口说明》的"附录-固件ID管理-表1 固件升级ID分配表"
- 冲突检查:新增固件时必须检查ID是否与现有固件冲突
防回退机制
- RevisionNumber = 0:无防回退限制,允许升级到任意版本
- RevisionNumber > 0:有防回退限制,只允许升级到Revision >= RevisionNumber的版本
- 升级检查:升级前会检查固件包的Revision是否满足要求
固件类型说明
- CPLD固件:如BP_Cpld,背板CPLD固件
- MCU固件:微控制器固件
- BIOS固件:基本输入输出系统固件
- BMC固件:基板管理控制器固件
注意事项
- ID唯一性:确保ComponentID和ComponentIDEx组合在系统中唯一
- 名称规范:使用描述性的固件名称,便于识别和管理
- 版本控制:合理设置RevisionNumber,平衡安全性和灵活性
- 文档同步:新增固件时及时更新ID分配表文档
故障排除
升级失败:
- 检查ComponentID和ComponentIDEx是否正确
- 确认固件包的Revision是否满足RevisionNumber要求
- 验证固件名称是否匹配
ID冲突:
- 检查ComponentID和ComponentIDEx组合是否唯一
- 查看ID分配表确认是否有冲突
- 重新分配未使用的ID组合
防回退异常:
- 确认RevisionNumber设置是否合理
- 检查固件包的Revision值是否正确
- 验证防回退逻辑是否正常工作
性能优化
- ID查找:优化ComponentID和ComponentIDEx的查找算法
- 版本检查:优化RevisionNumber的比较逻辑
- 缓存机制:合理缓存固件组件信息,减少重复查询