【升级基础板CPLD卡在47%】

背景:华为openubmc: 260330, hi1712 950平台; 升级基础板CPLD失败

详细描述:

升级一直卡在47%,原因是:general_hardware NOTICE: drivers_api.lua(25),GetChipIdcode失败

求助:请问造成GetChipIdcode失败的原因是什么

LogDump.zip (6.1 MB)

app.zip (3.7 KB)

答案内容由AI生成,仅供参考:
结论:根据社区已有问题根因分析,硬件链路 CSR 配置错误GetChipIdcode 失败的最常见原因。建议优先检查并重新适配基础板的 CSR 文件,确保 JTAG 链路参数与硬件设计一致。若 CSR 配置无误,则需进一步排查 JTAG 链路选通状态和硬件连接。

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

根据您提供的背景信息和社区相关文档,GetChipIdcode 失败是导致基础板 CPLD 升级卡在 47% 的直接原因。综合社区多个案例分析,该失败通常由以下原因引起:


1. 硬件链路配置错误(最常见)

  • CSR(Chip Select Register)文件中 JTAG 链路配置不正确,例如 JtagOverLocalBus_0JtagOverLocalBus_1 混淆,导致 BMC 无法正确寻址 CPLD 芯片。
  • 典型现象GetChipIdcode 命令正常执行但返回空结果id_list 为空)。
  • 社区案例(参考文档 CPU模组在线升级CPLD失败问题分析):

    使用 mdbctl call Cpld_1_010101 bmc.kepler.Chip.JtagTarget GetChipIdcode 0 直接检查时,发现硬件链路配置错误,需要修改代码。解决方案是重新适配硬件链路的 CSR 文件

2. JTAG 链路未正确选通

  • BMC 通过 LocalBus 总线 连接载板 CPLD,如果 JTAG 模拟开关未正确切换(例如扩展板 CPLD 版本不匹配或 BMC 侧链路不通),会导致扫链失败。
  • 排查方法(来自 鲲鹏模组适配约束FAQ):
    • 使用 busctl 命令手动设置 JTAG 开关:
      busctl --user set-property bmc.kepler.hwproxy /bmc/kepler/Accessor/Accessor_JtagSwitch_010101 bmc.kepler.Accessor Value t 1
      
    • 然后调用 GetChipIdcode 确认是否能正常返回芯片 ID。
  • 日志特征cpld扫链失败svf execute error

3. CPLD 芯片或链路本身存在异常

  • 包括:
    • CPLD 芯片未上电或处于异常状态;
    • JTAG 信号线(TCK、TMS、TDI、TDO)波形异常;
    • BMC 与 CPLD 之间的 LocalBus 总线通信故障。
  • 进一步诊断:可通过示波器测量 JTAG 信号波形,或检查 dmesg 驱动日志中是否有硬件错误提示。

4. 升级包或签名问题(次要可能性)

  • 如果 CPLD 固件签名不是伙伴自己的(例如使用了华为原始签名),可能在签名验证阶段失败,但通常不会仅卡在 47% 且直接报 GetChipIdcode 失败。此原因优先级较低。

建议的排查步骤

  1. 检查 CSR 文件配置:对比 board_name 对应的 CSR 中 JTAG 链路参数(如 JtagOverLocalBus 接口编号),确保与硬件设计一致。
  2. 手动验证 JTAG 链路:在 BMC shell 中执行 busctl 命令强制切换 JTAG 开关后调用 GetChipIdcode,观察是否能获取正确的芯片 ID:
    busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Cpld/Cpld_1_XXXX bmc.kepler.Chip.JtagTarget GetChipIdcode a{ss} 0
    
    XXXX 替换为实际 CPLD 位置(如基础板常见的 010101)。
  3. 查看 dmesg 驱动日志:搜索 svf execute errorcpld_jtag_load 等关键词,确认是否有 JTAG 扫链失败记录。
  4. 确认硬件连接:检查基础板与载板之间的 LocalBus 总线、JTAG 模拟开关是否正常,必要时测波形。

结论:根据社区已有问题根因分析,硬件链路 CSR 配置错误GetChipIdcode 失败的最常见原因。建议优先检查并重新适配基础板的 CSR 文件,确保 JTAG 链路参数与硬件设计一致。若 CSR 配置无误,则需进一步排查 JTAG 链路选通状态和硬件连接。

确认下扩展板CSR是否配套,可能涉及链路修改

已解决,链路问题