hpm重签名后BCU和EXU CPLD固件升级报错,大家有没有什么其他排查建议?





hpm包重签名后升级报错,日志有两个报错信息
1,hardware ERROR: tar.c(664): __extract_file: lchown on file(cpld.vme) failed!
2,升级EXU CPLD报错,CSR定义的总线类型为jtag, 日志里边打印的bus为JtagOverLocalBus_1。
bmc/apps/hwproxy/lualib/hwproxy_objects/work_objects.lua:74: chip: Cpld_1_0101, bus: JtagOverLocalBus_1, write failed: jtag_base.lua:94: worker exec failed: [worker]:16: response error, ioctl(CPLD_CMD_LOAD_CPLD) failed: Operation not permitted, component_id:1, product_id:16 stack traceback: [C]: in function ‘jtag_write’ [worker]:16: in main chunk
3,升级BCU_CPLD报错,CSR定义的总线类型为JtagOverLocalBus_1,打印中过的总线类型为Hisport_0;
…bmc/apps/hwproxy/lualib/hwproxy_objects/work_objects.lua:74:
chip: Cpld_1_010101, bus: Hisport_0, write failed: hisport.lua:80: attempt to compare number with nil

问题2:这个命令字是用于加载cpld升级文件的,可以确认一下升级文件的读写权限,查看/var/log/linuxkernel_log中查看对应时间点是否有cpld相关报错

问题3:这个问题大概率是SR中总线定义没有对齐。如果在root.sr中按序声明了I2c_1,I2c_2,JtagOverLocalbus_1, Hisport_0,但是在BCU的sr里面少写了,如I2c_1,JtagOverLocalbsu_1,Hisport_0。实际SR的总线传递下来是按顺序匹配的,也就是你BCU的Hisport_0的名称实际对应的是root.sr的JtagOverLocalbus。(大概率是这种情况,排查一下)

好的,非常感谢,确实有总线定义没有对齐的情况,我修改验证下试试。

1,hardware ERROR: tar.c(664): __extract_file: lchown on file(cpld.vme) failed!
这条日志是正常场景,沙箱进程没有权限更改文件属主,因此会有此失败日志

好的,多谢。

已验证ok,确实是这个原因, 多谢。