【AI卡】【MCU带外升级】社区有计划上AI卡(300I A2 32G、64G)带外升级的功能吗

// 此模板仅供参考,如果不适用可以修改

问题描述

现在测试发现AI卡MCU只能在带内升级,带外升级会直接报失败。


应该是社区版本没有适配A2卡的带外mcu升级功能

环境信息

OpenUBMC 25.12

重现步骤

NA

期望结果

希望社区可以答复下有没有计划上带外升级MCU功能

实际结果

[实际发生了什么,包含错误信息]

尝试过的解决方案

[列出您已经尝试过的解决方案及结果]

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

:white_check_mark: 六、结论

目前 openUBMC 社区版本(如 25.12)尚未支持 Atlas 300I A2 系列 AI 卡的 MCU 带外升级功能。

尽管系统具备带外管理能力与MCU升级服务框架,但由于缺乏针对A2卡的CSR配置与状态感知机制,导致BMC无法正确发起和管理该类设备的固件升级。

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

关于AI卡MCU带外升级功能的社区支持情况分析

根据您提出的问题,即 AI卡(如Atlas 300I A2 32G/64G)是否支持MCU带外升级,以及当前测试中发现“带外升级会直接报失败”的现象,本文基于现有知识库内容进行综合分析与回答。


:magnifying_glass_tilted_left: 问题核心总结

  • 当前现状:AI卡MCU只能通过带内升级(如使用npu-smi upgrade命令),而带外升级(经BMC)失败
  • 用户诉求:社区是否有计划支持AI卡MCU的带外升级功能

:puzzle_piece: 一、AI卡与MCU升级相关的系统架构

1. AI卡与NPU卡的关系

  • AI卡(例如:Atlas 300I A2 64G)属于NPU卡的一种,是基于昇腾AI处理器的神经网络处理单元。
  • 该类卡集成有独立的MCU(Microcontroller Unit),用于管理板卡的供电、温度监控和固件升级等操作。
  • McuFirmwareVersion 属性明确用于表示该MCU的固件版本(当前可查到版本为 25.52.3825.53.33)。

:white_check_mark: 来自文档《NPU卡适配指南》:“McuFirmwareVersion:MCU版本,通过带外管理协议获取。”

2. 带外升级的核心机制

  • 带外升级由 BMC 主导,通过 Firmware Mgmt 模块统一调度。
  • 支持的协议包括:
    • SMBus
    • SMC
    • PLDM over MCTP over PCIe
  • 相关服务脚本如:
    • upgrade_service_mcu.lua
    • mcu_upg_service.lua
    • smbus_interface.lua

:white_check_mark: 来自 general_hardware 文档:MCU升级通过 smbus_interface.luasmc_interface.lua 实现,表明硬件层面支持此类通信方式。


:warning: 二、当前为何“带外升级失败”?

虽然系统具备带外管理硬件通道能力,但当前行为表明:

:cross_mark: 社区版本尚未完全适配 A2 系列AI卡的带外MCU升级路径

证据如下:

证据来源 内容摘要
日志记录(参考Document Chunk 1) 升级AI卡MCU时会上报告警,BMC检测到通信中断(CpldStatus变化触发事件)。但BMC无法感知该中断是否由带内升级引起
官方回复(User: Longbow) > “当下BMC无法感知AI卡MCU通信异常是否是带内升级导致的,且该告警属于正常上报状态,不需要和带内升级MCU状态耦合。”
:backhand_index_pointing_right: 表明BMC不具备对AI卡MCU升级过程的上下文感知能力
代码结构分析(general_hardware) 存在 mcu_upg_service.luaupgrade_service_mcu.lua,说明框架支持MCU升级服务,但是否适配特定设备需依赖CSR配置。
CSR配置文档(板卡适配指南) 明确指出,MCU升级需要在CSR文件中配置:
"MCUFirmware_xxx": {
    "UID": ...,
    "RefChip": ...,
    "Protocol": ...,
    "LockChip": ...
}

:backhand_index_pointing_right: 如果A2卡未正确配置此类对象,则BMC无法发起带外升级。


:date: 三、openUBMC 社区对AI卡MCU升级的支持现状

:white_check_mark: 已支持的能力(来自 openUBMC 25.0925.03 发布说明):

版本 特性
openUBMC 25.09 新增支持:NPU模组、NPU升级过程中禁止主机上电、关键部件固件升级
openUBMC 25.03 重构MCU/VRD升级架构,支持HPM标准化升级包格式

:backhand_index_pointing_right: 这些信息表明,openUBMC社区已重视并逐步完善MCU升级机制

:cross_mark: 尚未明确支持:A2系列AI卡的带外MCU升级

  • 当前所有MCU升级行为均为带内驱动控制(如 npu-smi 工具)。
  • BMC Firmware Mgmt服务无法识别或启动AI卡MCU的固件包升级流程
  • 日志中显示 action.lua(44): Firmware: ... 错误堆叠,说明升级流程在校验或执行阶段失败。

:white_check_mark: 四、带内与带外升级对比

对比项 带内升级(In-band) 带外升级(Out-of-band)
控制主体 OS主机(如openEuler) BMC(独立于OS)
工具 npu-smi upgrade Web界面 / Redfish API / IPMI
通信方式 PCIe + Host Driver SMBus/SMC/PLDM 等带外总线
是否影响告警 是,会误触发通信异常告警 否,应具备状态感知避免误报
场景适用性 主机运行时维护 主机宕机或OS异常时升级
当前支持情况 :white_check_mark: 支持 :cross_mark: 对A2卡暂不支持

:light_bulb: 五、解决方案建议

方案一:社区是否已有计划?

目前没有公开信息表明openUBMC社区已将A2卡MCU带外升级列入近期路线图

但以下几点可作为推动依据:

  1. McuFirmwareVersion 已通过带外协议暴露(参考NPU卡接口定义);
  2. upgrade_service_mcu.lua 已存在,说明服务层已准备就绪
  3. 只需完善 CSR配置 + UID校验逻辑 + 协议绑定 即可实现支持。

方案二:如何推动此功能落地?

建议采取以下行动:

步骤 操作
1 discuss.openubmc.cn 创建正式议题,引用本问题
2 提供详细的错误日志与A2卡的CSR配置样例需求
3 引用 general_hardware 中的MCU升级实现路径,说明框架已支持
4 请求 hardware-sigComponent Driver SIG 成员协助评估实现难度

:link: 参考话题:https://discuss.openubmc.cn/t/topic/4839(关于CPLD固件包的问题讨论)


:white_check_mark: 六、结论

目前 openUBMC 社区版本(如 25.12)尚未支持 Atlas 300I A2 系列 AI 卡的 MCU 带外升级功能。

尽管系统具备带外管理能力与MCU升级服务框架,但由于缺乏针对A2卡的CSR配置与状态感知机制,导致BMC无法正确发起和管理该类设备的固件升级。


:megaphone: 七、建议反馈内容模板(可提交至社区)

标题:请求支持 Atlas 300I A2 系列 AI 卡 MCU 带外升级功能

背景:
当前 AI 卡(300I A2 32G/64G)MCU 仅支持带内升级(npu-smi),带外升级失败。

问题:
Firmware Mgmt 服务无法识别AI卡MCU固件包,日志报错多层嵌套错误,疑似未注册设备UID或缺少MCUFirmware对象配置。

依据:
- NPU卡接口已定义 `McuFirmwareVersion` 支持带外获取;
- general_hardware 提供了完整的MCU升级服务(upgrade_service_mcu.lua);
- 需补充CSR中MCUFirmware_xxx对象配置。

诉求:
社区能否评估在后续版本中增加对 Atlas 300I A2 的MCU带外升级支持?

:pushpin: 建议后续关注

  • openUBMC官网更新:https://www.openubmc.cn
  • SIG会议纪要(Infra SIG、Hardware SIG)
  • CSR配置文档完善进度

如有进一步日志或CSR配置片段,也可继续补充以深入分析。

test

支持的,你用最新的固件包试一下

带内和带外的hpm是同一个吗?我就是在2512上升级的,报错invalid firmware type

是同一个,是最新的NPU卡固件包,不是bmc包

是这个包吧

看起来是的

我重新再验证了一次,还是一样的报错,等下我把日志传递一下,帮忙确认下呢,多谢

AI卡升级MCU失败.z01.txt (9 MB)
AI卡升级MCU失败.zip.txt (8.3 MB)

把txt后缀名去掉,放在一个路径下解压 AI卡升级MCU失败.zip 即可

是环境上有多张A2卡吗,是的话目前该问题已经在3月份的sdk修复,待发布

没有就一张ai卡,我看日志不是在升级的时候报错,感觉就是解析hpm就报错了

包有问题,出包的时候没配置相应的cfg

这是从华为官网下载的hpm包,带内os升级是ok的

能发下这个包吗,我们这边看看包结构

我邮件发给pae,让pae转给你,帮忙看下呢

有发送吗

已经发给殷建了

好的