关于获取通过openUBMC升级华为920模组cpld firmware的问题

请问从哪里可以获取通过openUBMC升级920模组的cpld firmware?

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

总结

项目 说明
CPLD固件获取渠道 从设计方或华为原厂获取原始镜像,并自行签名后使用;或参考社区发布的适配配置构建
推荐文件名 ubmc_YunHe_920S_L1.hpm(示例)
关键限制 openUBMC暂不支持CPLD升级的Prepare/Finish动作,无法自动切换多JTAG链路
解决方法 确保JTAG通路物理连通,合理配置路由参数,并对固件重新签名

:pushpin: 建议:若升级失败,请提交一键收集日志,并到 discuss.openubmc.cn 发帖咨询技术支持团队,提供具体型号和日志信息以获得进一步协助。

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

关于通过openUBMC升级华为920模组CPLD固件的获取方式

根据现有信息,以下是关于如何获取适用于华为Kunpeng 920模组并通过openUBMC平台升级的CPLD固件的相关说明和建议。

固件来源与获取途径

1. CPLD固件包文件

用于升级的CPLD固件通常以.hpm格式打包。文档中提到了一个具体的CPLD固件包:

  • ubmc_YunHe_920S_L1.hpm:这是专用于更新载板CPLD的固件包文件,已在openUBMC环境中使用过。

该文件由openUBMC系统识别并用于执行CPLD固件升级流程。

:link: 相关知识来源:此文件在日志分析中被多次提及,用于验证CPLD升级过程的签名(通过validate_sign.lua脚本)及版本处理(见Document Chunk 4)。

2. 官方开源社区资源

您可以从以下openUBMC官方社区平台获取相关固件或参考配置:

特别是:

  • 920模组参考代码链接920S模组参考代码链接 已合并至社区,包含适配华为920系列模组的基础支持。
  • 社区提供了针对鲲鹏920/920S模组与开发载板的参考配置,可用于定制自己的CPLD固件升级方案。

:white_check_mark: 建议访问 https://gitcode.com/openUBMC/vpd/pull/303https://gitcode.com/openUBMC/vpd/pull/322 查看“Support 920s Modul”等Pull Request,了解兼容性适配细节。

升级限制与注意事项

:warning: openUBMC目前不完全支持CPLD升级的准备/完成动作

根据用户反馈(Document Chunk 8)和知识图谱内容:

  • openUBMC LogicFirmware缺乏Prepare/Finish操作
    • 在原有的iBMC V2架构中,CPLD升级前需执行切换JTAG通道的Prepare动作,升级后再执行Finish动作。
    • 但在openUBMC中,未实现类似的Prepare/Finish钩子机制,导致部分复杂升级场景失败。
    • 当前仅支持简单的单通道切換(通过FirmwareRoute, Routes, DefaultRoute参数配置)。

:pushpin: 典型错误日志特征
日志中出现 [cpld]get cpld device info failed(来自Document Chunk 7),可能意味着JTAG链路未正确切换或芯片ID读取失败。

:locked_with_key: 固件签名要求

openUBMC对固件包具有严格的签名校验机制

  • 只能升级使用开发者自己签名的固件包。
  • 若使用华为(HW)签名的原始固件(如S920S10X10_Update_CS_2P_cms.hpm),会报错:“无效的升级包”或“verify signature error, code 88200312”。
  • 解决方案:需使用配套工具(如crypto_tool)对原始固件重新签名,确保与openUBMC使用的证书一致。

:light_bulb: 提示:可联系PAE(产品应用工程师)获取签名工具及相关流程指导。

推荐操作步骤

  1. 确认硬件兼容性

  2. 准备正确的CPLD固件包

    • 获取原始CPLD二进制文件或HPM包(如来自设计团队或华为原厂)。
    • 使用与openUBMC匹配的证书进行重新签名
  3. 检查JTAG路由配置

    • 在系统配置中正确设置:
      "Routes": "#/Accessor_JtagSwitch.Value",
      "DefaultRoute": 0,
      "FirmwareRoute": 2
      
      确保升级时能正确切到目标CPLD的JTAG链路。
  4. 通过openUBMC界面上传升级

    • 访问 openUBMC管理 → 固件升级 → 固件更新
    • 添加已签名的.hpm文件,启动升级流程。
  5. 分析日志排查异常

    • 升级失败后,收集app.log,重点查看:
      • validate_sign.lua: 签名是否通过
      • fw_upgrade.lua: 是否获取到CPLD信息
      • process.lua: 多厂商CPLD设备信息获取是否失败

总结

项目 说明
CPLD固件获取渠道 从设计方或华为原厂获取原始镜像,并自行签名后使用;或参考社区发布的适配配置构建
推荐文件名 ubmc_YunHe_920S_L1.hpm(示例)
关键限制 openUBMC暂不支持CPLD升级的Prepare/Finish动作,无法自动切换多JTAG链路
解决方法 确保JTAG通路物理连通,合理配置路由参数,并对固件重新签名

:pushpin: 建议:若升级失败,请提交一键收集日志,并到 discuss.openubmc.cn 发帖咨询技术支持团队,提供具体型号和日志信息以获得进一步协助。

openubmc是无签名无加密,当前没有无签名无加密的cpld包
想要升cpld有两个方向:
1.自行出一个无签名无加密cpld包
2.BMC升级至非社区包版本后升级cpld包