xuzhijia
(百敖-徐志佳)
2026 年5 月 29 日 07:55
1
问题描述
模组升级的链路切换smc命令已实现并且在sr文件中已经配置
下面是在线升级CPU模组CPLD失败时hard_ware的相关日志
行 6038: 2026-05-22 02:06:49.959504 general_hardware NOTICE: fw_upgrade.lua(118): [cpld]get cpld_valid :nil
行 6039: 2026-05-22 02:06:49.959796 general_hardware NOTICE: fw_upgrade.lua(53): cpld cold upgrade, upgrade list = 1,
行 6040: 2026-05-22 02:06:49.960707 general_hardware NOTICE: fw_cfgs.lua(70): check fw uid(00000001020302041496) id(255) id_ex(4294967295) exist success
行 6041: 2026-05-22 02:06:50.238725 general_hardware NOTICE: fw_init.lua(163): get fw version 1.01
行 6042: 2026-05-22 02:06:50.239136 general_hardware NOTICE: fw_upgrade.lua(95): [cpld]get verion[1.01]
行 6050: 2026-05-22 02:06:51.492025 general_hardware NOTICE: upgrade_subject.lua(88): [on_upgrade_process] start upgrade BP_Cpld
行 6051: 2026-05-22 02:06:51.492507 general_hardware NOTICE: signal.lua(121): [cpld]Start the system[1] BP_Cpld upgrade process phase
行 6052: 2026-05-22 02:06:51.600302 general_hardware NOTICE: upgrade_subject.lua(95): [on_upgrade_process] end upgrade BP_Cpld
行 6053: 2026-05-22 02:06:51.601485 general_hardware NOTICE: fw_cfgs.lua(70): check fw uid(00000001020302041496) id(255) id_ex(4294967295) exist success
行 6054: 2026-05-22 02:06:51.602082 general_hardware NOTICE: process.lua(38): cpld fw matched, system_id = 1, fw.uid = 00000001020302041496, fw.csr.Name = BCU_CPLD1
行 6055: 2026-05-22 02:06:51.684125 hardware ERROR: tar.c(664): __extract_file: lchown on file(cpld01.vme) failed!
行 6056: 2026-05-22 02:06:51.684776 hardware ERROR: tar.c(664): __extract_file: lchown on file(valid01.vme) failed!
行 6057: 2026-05-22 02:06:51.700066 hardware ERROR: tar.c(664): __extract_file: lchown on file(cpld02.vme) failed!
行 6058: 2026-05-22 02:06:51.700939 hardware ERROR: tar.c(664): __extract_file: lchown on file(valid02.vme) failed!
行 6059: 2026-05-22 02:06:51.715778 hardware ERROR: tar.c(664): __extract_file: lchown on file(cpld03.vme) failed!
行 6060: 2026-05-22 02:06:51.716730 hardware ERROR: tar.c(664): __extract_file: lchown on file(valid03.vme) failed!
行 6061: 2026-05-22 02:06:51.717532 general_hardware NOTICE: process.lua(295): [cpld]get cpld packages successful
行 6062: 2026-05-22 02:06:55.311901 general_hardware NOTICE: process.lua(201): [cpld]_____load_cpld_multi_supplier_mode_____
行 6067: 2026-05-22 02:07:06.451722 general_hardware NOTICE: process.lua(179): [cpld]get cpld device info failed
行 6093: 2026-05-22 02:07:40.044559 general_hardware NOTICE: unit_manager.lua(615): unit_manager:on_dump_cb start.
行 6094: 2026-05-22 02:07:40.250019 general_hardware NOTICE: unit.lua(486): CpuBoard1 collect finish
行 6095: 2026-05-22 02:07:40.437649 general_hardware ERROR: unit.lua(462): SMC read (get dfx info) fail
行 6096: 2026-05-22 02:07:40.439319 general_hardware ERROR: unit.lua(478): ExpBoard1 get_dfx_info fail
行 6097: 2026-05-22 02:07:40.897659 general_hardware ERROR: unit.lua(462): SMC read (get dfx info) fail
行 6098: 2026-05-22 02:07:40.898462 general_hardware ERROR: unit.lua(478): DiskBP1 get_dfx_info fail
行 6099: 2026-05-22 02:07:40.901494 general_hardware NOTICE: unit_manager.lua(695): EXP board info collect finish
行 6100: 2026-05-22 02:07:40.903665 general_hardware NOTICE: unit_manager.lua(695): CPU board Info collect finish
行 6101: 2026-05-22 02:07:40.905614 general_hardware NOTICE: unit_manager.lua(695): HDD Backplane Info collect finish
行 6102: 2026-05-22 02:07:40.908372 general_hardware NOTICE: mcu_service.lua(170): mcu info collect finish
从日志中可以看到,cpld fw matched, system_id = 1, fw.uid = 00000001020302041496, fw.csr.Name = BCU_CPLD1,已经成功识别到要升级的CPLD为模组CPLD,但是出现了 tar.c(664):__extract_file: lchown on file(cpld01.vme) failed!,搜索了下,并没有在hard_ware组件找到这个tar.c,请问下出现这个问题可能是什么原因导致的?升级失败的根本原因是否是这里引起的?
咨询框架组同事,此处tar.c报错是解压时权限不够或者只读模式,但这里只是记录日志并未影响解压结果。失败原因还是在于process.lua(179): [cpld]get cpld device info failed这个日志。看你在另一个帖子的最新回复,似乎环境上定义了多个Cpld对象,但是他们的position不一样。检查一下:当前待升级的cpld固件是在哪一个position呢,这个position上的Cpld扫链结果如何?
关于两个Cpld对象扫链结果不一样的问题,请检查下这两个Cpld对象的配置。如果他们指的是同一个器件,则可能是其中一个对象的链路配置还有问题。如果是指两个器件,那么未返回结果的那个Cpld,链路配置或硬件可能有问题。建议再检查下这一点
请问下资源树上的CPLD对象是不是依赖硬件啊,我现在相同的包,在不同的机器上现象不一样,有机器上面分发了CPLD对象,另一台却没有
关于您提到的多个定义了多个CPLD对象的问题,确实是这样,一个是0101,在EXU下的Jtag_1下面配置,另一个是010101,在BCU下的JtagOverLocalBus_1下配置,现在升级的是CPU模组CPLD,走的应该是BCU的JtagOverLocalBus_1下的CPLD对象,但是这个对象调用GetChipIdcode为空,也没有报错,您提到的 链路配置或硬件可能有问题 ,应该如何查看链路配置是否有误?硬件应该从什么方向排查?能详细说明下吗,感谢
目前在没有CPLD对象的机器上在线升级载板CPLD,按理来讲,资源树上没有分发EXU的CPLD_0101对象,升级不应该成功啊,但是现在升级成功了,日志如下
2000-01-01 00:09:26.725778 general_hardware NOTICE: upgrade_subject.lua(71): [on_upgrade_prepare] start upgrade Cpld
2000-01-01 00:09:26.726568 general_hardware NOTICE: signal.lua(100): [cpld]Start the system[1] Cpld upgrade prepare phase
2000-01-01 00:09:26.816137 general_hardware NOTICE: upgrade_subject.lua(78): [on_upgrade_prepare] end upgrade Cpld
2000-01-01 00:09:26.818980 general_hardware NOTICE: fw_upgrade.lua(118): [cpld]get cpld_valid :nil
2000-01-01 00:09:26.819382 general_hardware NOTICE: fw_cfgs.lua(70): check fw uid(000000141BKHX00200100000) id(255) id_ex(4294967295) exist success
2000-01-01 00:09:27.136311 general_hardware NOTICE: fw_init.lua(163): get fw version 1.07
2000-01-01 00:09:27.136535 general_hardware NOTICE: fw_upgrade.lua(95): [cpld]get verion[1.07]
2000-01-01 00:09:28.374633 general_hardware NOTICE: upgrade_subject.lua(88): [on_upgrade_process] start upgrade Cpld
2000-01-01 00:09:28.374901 general_hardware NOTICE: signal.lua(121): [cpld]Start the system[1] Cpld upgrade process phase
2000-01-01 00:09:28.474384 general_hardware NOTICE: upgrade_subject.lua(95): [on_upgrade_process] end upgrade Cpld
2000-01-01 00:09:28.475295 general_hardware NOTICE: fw_cfgs.lua(70): check fw uid(000000141BKHX00200100000) id(255) id_ex(4294967295) exist success
2000-01-01 00:09:28.475861 general_hardware NOTICE: process.lua(38): cpld fw matched, system_id = 1, fw.uid = 000000141BKHX00200100000, fw.csr.Name = EXU_CPLD
2000-01-01 00:09:28.545939 hardware ERROR: tar.c(664): __extract_file: lchown on file(cpld.vme) failed!
2000-01-01 00:09:28.556907 hardware ERROR: tar.c(664): __extract_file: lchown on file(valid.vme) failed!
2000-01-01 00:09:28.557516 general_hardware NOTICE: process.lua(295): [cpld]get cpld packages successful
2000-01-01 00:09:28.557899 general_hardware NOTICE: process.lua(193): [cpld]_____load_cpld_single_____
2000-01-01 00:09:28.558123 general_hardware NOTICE: process.lua(56): load file[0x145a1e]
2000-01-01 00:10:26.727383 general_hardware WARNING: init.lua(574): service[bmc.kepler.web_backend] request timeout: remote service[bmc.kepler.hwproxy], path[/bmc/kepler/Chip/Cpld/Cpld_1_0101], interface[bmc.kepler.Chip.BlockIO], method[Write], used time[58s]
2000-01-01 00:10:26.727803 general_hardware NOTICE: process.lua(82): [cpld]/dev/shm/upgrade/2767372996/cpld.vme update success!
2000-01-01 00:10:26.747697 general_hardware NOTICE: valid.lua(228): [cpld]set system_id = 1 ValidatingCpldFlag = 1
2000-01-01 00:10:27.962145 general_hardware NOTICE: upgrade_subject.lua(105): [on_upgrade_finish] start upgrade Cpld
2000-01-01 00:10:27.962517 general_hardware NOTICE: signal.lua(241): [cpld]Start the system[1] Cpld upgrade finish phase
2000-01-01 00:10:28.053233 general_hardware NOTICE: fructl_handler.lua(58): get_host_type: get host type Singlehost
2000-01-01 00:10:28.055702 general_hardware NOTICE: fructl_handler.lua(77): get_power_state: system[1] get power power ON
2000-01-01 00:10:28.056748 general_hardware NOTICE: signal.lua(161): upgrade_single_host system_id[1] firmware_type[Cpld] power_state[ON]
2000-01-01 00:10:28.058081 general_hardware NOTICE: valid.lua(223): [cpld]get system_id = 1 ValidatingCpldFlag = true
2000-01-01 00:10:28.060822 general_hardware NOTICE: fructl_handler.lua(58): get_host_type: get host type Singlehost
2000-01-01 00:10:28.062082 general_hardware NOTICE: signal.lua(36): [CPLD]Register Active Action start firmware_id = CPLD_ResetAC active_condition = PowerOff
2000-01-01 00:10:28.202587 general_hardware NOTICE: upgrade_subject.lua(112): [on_upgrade_finish] end upgrade Cpld
可以看到有一个警告:general_hardware WARNING: init.lua(574): service[bmc.kepler.web_backend] request timeout: remote service[bmc.kepler.hwproxy], path[/bmc/kepler/Chip/Cpld/Cpld_1_0101], interface[bmc.kepler.Chip.BlockIO], method[Write], used time[58s],但是没有失败,这有关系吗
看上去这段日志和你描述的“没有CPLD对象”不一致,因为按照你下面看到的警告信息,升级的底层接口找到了/bmc/kepler/Chip/Cpld/Cpld_1_0101这个对象,还是有cpld对象的。能否确认这环境是不是真的没有cpld?
对于你前面的两个问题:
咨询框架同事,CPLD对象分发本身不依赖硬件,只要你CSR里面配了,就能分发这个对象,当然对象能不能正常用就看环境了。结合你升级操作实际成功了这一点来看,会不会是对象稍微慢了点?建议再检查下
链路配置有问题,指的是你的CSR配置有误,比如说这个cpld实际上在jtag_2链路上但是误写成了jtag_1,可以检查下软件上是否有该问题。
硬件可能有问题,就需要由硬件同事直接来看这条实际的链路是否正常了。