社区26.03版本CPU板页签的Krun和CCA固件信息如何获取?

使用社区26.03版本,在固件升级——>版本信息页面——>CPU页签新增了CCA和KRUN版本信息,但显示的版本信息显示默认值,如图。


CPU板页签添加CCA和KRUN版本信息在社区已经通过评审。
【已评审】WEB首页和固件升级页面新增CCA版本信息
【已评审】新增私有对象,新增ComponentType,支持升级Krun固件
请问CCA与KRUN的版本信息也是需要制作HPM包升级后才能显示对应版本信息吗?如果是CCA和KRUN的固件该怎么制作?

答案内容由AI生成,仅供参考:

:receipt: 总结

问题 回答
为何 Krun 和 CCA 显示默认值? 因未执行对应固件升级,系统未获取真实版本
需要制作 HPM 包吗? :white_check_mark: 是,必须通过 HPM 包升级 Krun 和 RMM 固件
如何制作 HPM 包? 使用 hpmimagebingo hpm_signer,指定正确 ComponentID 和签名
签名有何要求? 必须使用与当前 openUBMC 一致的证书签名,否则校验失败
升级后是否自动显示? 是,升级成功后版本信息会自动注册并更新到 Web 界面

:pushpin: 结论:当前显示为默认值是正常的。只有完成 Krun 和 CCA(RMM)固件的 HPM 包升级后,版本信息才会真实更新。

点击此处查看详细分析解答

社区26.03版本CPU板页签中Krun与CCA固件信息的获取方式说明

根据您提供的问题,您正在使用 openUBMC 社区版 26.03 版本,在“固件升级 → 版本信息 → CPU板”页签中已新增了 KrunCCA 的版本信息显示字段,但当前显示为默认值(如 KRUN: 0.00CCA: --),未正确显示实际版本号。以下将从信息来源机制、显示原理、固件获取方式、HPM包制作要求等方面进行详细解答。


:magnifying_glass_tilted_left: 一、Krun 与 CCA 固件版本信息的显示原理

1. 版本信息的来源

在 openUBMC 系统中,CPU板页签显示的版本信息(包括 BIOS、CPLD、CSR、Krun、CCA 等)来源于系统的 固件库存管理(Firmware Inventory),具体机制如下:

  • 版本信息由固件升级框架统一管理,通过 D-Bus 接口或 Redfish API 暴露。
  • 当某项固件(如 Krun、RMM/CCA)被成功升级并激活后,其版本信息会被注册到系统固件库存中,最终反映在 Web 界面。
  • 若未进行过对应固件升级操作或固件未上报版本号,则界面显示为 默认值或空值

:white_check_mark: 当前显示 KRUN: 0.00CCA: -- 表明:系统已支持该字段展示,但尚未成功更新或读取到真实的固件版本。


:puzzle_piece: 二、Krun 固件版本信息获取方式

1. Krun 是什么?

  • Krun 是鲲鹏平台下运行在独立 MCU/CPLD 上的固件模块,用于支持可信计算、安全启动、加解密加速等高级安全功能。
  • 在 openUBMC 中,Krun 作为独立固件组件进行管理。

2. 如何获取并显示 Krun 版本?

  • 必须通过 HPM 格式的固件包 对 Krun 进行升级。
  • 升级成功后,Krun 固件会通过 SPI Flash 上报其版本号至 BMC。
  • 系统通过 KrunFirmware 类(CSR 配置)获取并上报版本信息。

:pushpin: 关键路径

HPM包 → 升级Krun固件 → 激活运行 → 上报版本号 → openUBMC读取版本 → Web界面显示

3. 是否需要制作 HPM 包?

:white_check_mark: 是的,必须制作或获取正确的 Krun HPM 包才能显示版本。

制作与升级流程如下:

步骤 操作
:one: 获取 Krun 固件原始镜像(.bin.img
:two: 使用社区工具(如 hpmimage, bingo hpm_signer)将其打包为 .hpm 格式
:three: 重新签名:使用开发者自己的证书对 HPM 包进行签名(确保与 openUBMC 当前信任链一致)
:four: 通过 Web 或命令行执行升级:ipmcset -d upgrade -v /tmp/krun.hpm
:five: 升级完成后,系统自动读取版本并刷新界面

:warning: 注意:若使用华为官方签名的 Krun HPM 包,openUBMC(社区版)会因签名不匹配而拒绝升级,导致无法更新版本信息。


:light_bulb: 三、CCA 固件版本信息获取方式

1. CCA 是什么?

  • CCA(Confidential Compute Architecture)是 ARMv9 架构下的机密计算架构
  • 其核心组件是 RMM(Realm Management Monitor),运行在安全隔离环境中,用于管理虚拟机的加密执行。

2. CCA/RMM 固件的作用

  • RMM 是 CCA 的底层固件,类似于安全监控器。
  • 在 openUBMC 中,BMC 负责管理 RMM 固件的升级与版本查询。

3. 版本信息如何获取?

  • 参照已评审文档:【支持RMM固件升级,新增ComponentIDEx
  • RMM 固件升级使用 ComponentID = 0x02,ComponentIDEx = 0x02000085
  • 升级成功后,BMC 从对应分区读取版本号,并填入 Web 界面的 CCA 字段

:pushpin: 因此:

:cross_mark: 不升级 RMM 固件 → :white_check_mark: Web 显示为空或默认值
:white_check_mark: 成功升级 RMM 固件 → :counterclockwise_arrows_button: 版本号自动更新

4. 如何制作 CCA/RMM 的 HPM 包?

制作步骤:

步骤 说明
:one: 获取 RMM 固件镜像(通常由 SoC 厂商提供,如 .elf.bin
:two: 构建 HPM 包时,在配置文件中声明:
ComponentID: 0x02
ComponentIDEx: 0x02000085
FirmwareType: "RMM"

| :three: | 使用 hpmimage 工具封装,并使用本地 CA 进行签名 |
| :four: | 上传并升级该 HPM 包 |

:white_check_mark: 推荐工具链:openUBMC SDK 中的 bingo 工具集(支持构建、签名、验证)


:brick: 四、为什么默认显示“0.00”或“–”?

固件类型 默认值 原因
Krun 0.00 CSR 配置中定义了默认值;未升级则不上报真实版本
CCA/RMM -- 固件未升级或不存在,库存中无记录

这属于 正常现象,并非 Bug。只有当对应固件成功升级并激活后,系统才会获取真实版本。


:white_check_mark: 五、解决方案建议

:white_check_mark: 目标:让 CPU 板页签正确显示 Krun 和 CCA 版本

【解决步骤】

  1. 确认是否已有 Krun 和 RMM 固件镜像
    • 联系硬件厂商或 SoC 提供方获取原始镜像
  2. 制作签名 HPM 包
    # 示例:使用 bingo 工具
    bingo hpm_signer --input krun_original.bin --output krun_signed.hpm \
                    --compid 0x02 --subcompid 0x84 --sign-cert my_cert.pem
    
  3. 上传并执行升级
    sftp> put krun_signed.hpm /tmp/
    ssh> ipmcset -d upgrade -v /tmp/krun_signed.hpm
    
  4. 重启或等待激活完成
    • Krun/RMM 固件可能需要冷重启或特定信号触发激活
  5. 刷新 Web 页面
    • 查看“版本信息”是否更新

:books: 六、相关参考资料

文档标题 链接/说明
【已评审】WEB首页和固件升级页面新增CCA版本信息 社区已通过,支持 CCA 信息展示
【已评审】支持RMM固件升级,新增ComponentIDEx 定义 RMM 的 ComponentIDEx 为 0x02000085
自签名CA创建以及HPM签名指导 自签名CA创建以及HPM签名指导
openUBMC2603 版本兼容性问题 文档 ID 7 提到该版本存在配置依赖问题
bingo 工具使用指南 用于构建、签名、验证 HPM 包

:receipt: 总结

问题 回答
为何 Krun 和 CCA 显示默认值? 因未执行对应固件升级,系统未获取真实版本
需要制作 HPM 包吗? :white_check_mark: 是,必须通过 HPM 包升级 Krun 和 RMM 固件
如何制作 HPM 包? 使用 hpmimagebingo hpm_signer,指定正确 ComponentID 和签名
签名有何要求? 必须使用与当前 openUBMC 一致的证书签名,否则校验失败
升级后是否自动显示? 是,升级成功后版本信息会自动注册并更新到 Web 界面

:wrench: 建议操作顺序:

获取 Krun/RMM 固件 → 制作签名 HPM → 升级 → 重启 → 查看版本

如仍有问题,可提供日志:

journalctl -u bmc.kepler.firmware_mgmt

用于定位升级失败原因(如签名错误、ComponentID 不匹配等)。


:pushpin: 结论:当前显示为默认值是正常的。只有完成 Krun 和 CCA(RMM)固件的 HPM 包升级后,版本信息才会真实更新。

CCA与KRUN的版本信息需要升级后才能显示对应版本信息

好的,那CCA与KRUN版本是在出厂时会有吗?比如BMC和cpld都有出厂版本。现在是未升级版本导致未显示版本信息,那升级包伙伴如何获取或制作呢?

后面官网会有对应固件包提供,现在需要的话请联系技术支持

好的,了解了