背景:华为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)
背景:华为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% 的直接原因。综合社区多个案例分析,该失败通常由以下原因引起:
JtagOverLocalBus_0 与 JtagOverLocalBus_1 混淆,导致 BMC 无法正确寻址 CPLD 芯片。GetChipIdcode 命令正常执行但返回空结果(id_list 为空)。使用
mdbctl call Cpld_1_010101 bmc.kepler.Chip.JtagTarget GetChipIdcode 0直接检查时,发现硬件链路配置错误,需要修改代码。解决方案是重新适配硬件链路的 CSR 文件。
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。dmesg 驱动日志中是否有硬件错误提示。GetChipIdcode 失败。此原因优先级较低。board_name 对应的 CSR 中 JTAG 链路参数(如 JtagOverLocalBus 接口编号),确保与硬件设计一致。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)。dmesg 驱动日志:搜索 svf execute error、cpld_jtag_load 等关键词,确认是否有 JTAG 扫链失败记录。结论:根据社区已有问题根因分析,硬件链路 CSR 配置错误 是
GetChipIdcode失败的最常见原因。建议优先检查并重新适配基础板的 CSR 文件,确保 JTAG 链路参数与硬件设计一致。若 CSR 配置无误,则需进一步排查 JTAG 链路选通状态和硬件连接。
确认下扩展板CSR是否配套,可能涉及链路修改
已解决,链路问题