一键收集后cable_info文件未正确记录线缆上报信息问题分析
更新时间: 2026/06/02
在Gitcode上查看源码问题背景
单板类型:NA;
软件版本:25.0930;
涉及功能:BitIO写寄存器,扩展版,chip;
触发条件:写寄存器C5。
powershellbusctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/CpldChip/CpldChip_CpldRegister_0101 bmc.kepler.Chip.BitIO Write a{ss} uyuay 0 0xc5 1 8 1 1业务表现:预期寄存器值修改为1;实际寄存器值为0。
问题复现步骤
通过如下命令写寄存器C5:
shell
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/CpldChip/CpldChip_CpldRegister_0101 bmc.kepler.Chip.BitIO Write a{ss}uyuay 0 0xc5 1 8 1 1返回值:
实际修改的bit3并未按照要求修改到对应值。
关键日志信息
sr文件代码配置如下: lua脚本代码如下:
framework.log日志如下:
framework.log日志中查找写bit位的关键字如下:
定位过程
framework.log日志查找bit位写的关键字和写的对象信息,对象找到了,为CpldChip_CpldRegister_0101,但是日志中无另外一个关键字"real write data",关键字"real write data"就代表按bit位写的方法被调用,目前看环境上实际并未按照bit的方法写寄存器,应该是按照block写寄存器,需要查看csr文件具体实现。
问题原因
涉及组件仓:vpd 组件查看Exu的csr文件Connector_EXU_1_01.sr,发现扩展板代码中对象定义里,通用chip的器件配置的属性值和CpldChip一样,配置的有问题。
解决方案
对于重复的配置对象,需要删除Chip_CpldRegister,只保留CpldChip_CpldRegister对象即可。且凡是用Chip_CpldRegister对象的,全部替换为CpldChip_CpldRegister。修改后重新编译hpm包升级后重新下发按位写命令,确认正常:
shell
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/CpldChip/CpldChip_CpldRegister_0101 bmc.kepler.Chip.BitIO Write a{ss}
uyuay 0 0xc5 1 8 1 1