1.i2c总线经过pca9545扩展后,如何确认扩展出的总线是通的:这种Mux总线不像普通的I2C有Read和Write方法,没办法进行总线下设备地址读取操作,BMC要如何确认总线加载正常。
2.jtag总线测试方法:请问有没有提供jtag总线扫描接口,或者验证接口确认jtag总线是通的
1.i2c总线经过pca9545扩展后,如何确认扩展出的总线是通的:这种Mux总线不像普通的I2C有Read和Write方法,没办法进行总线下设备地址读取操作,BMC要如何确认总线加载正常。
2.jtag总线测试方法:请问有没有提供jtag总线扫描接口,或者验证接口确认jtag总线是通的
问题1已经了解了测试方法,参考以下操作:
# 假设PCA9545地址为0x70,主总线为i2c-1
# 切换到通道0(CHA):写入控制寄存器0x01(bit0置1)
sudo i2cset -y 1 0x70 0x01
# 扫描通道0对应的子总线设备(需确认子总线连接的I2C设备地址)
sudo i2cdetect -y 1
# 切换到通道1(CHB):写入控制寄存器0x02(bit1置1)
sudo i2cset -y 1 0x70 0x02
# 扫描通道1对应的子总线设备
sudo i2cdetect -y 1
# 关闭所有通道(可选,避免总线冲突)
sudo i2cset -y 1 0x70 0x00
jtag总线的测试方法:
①设置LogicFirmware对象的属性:routes=FirmwareRoute
②读取目标jtag器件的IDCode
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Cpld/Cpld_1_0101 bmc.kepler.Chip.JtagTarget GetChipIdcode a{ss} 0
jtag通过扫链获取厂商Id的方法不能完全作为通路的判断,因为扫链不涉及TDI信号。(例如常见的升级失败场景:可以成功获取厂商Id,但是升级Cpld时失败了,linuxkernel_log中报错提示TDO[0]不符合预期)
方案:
可以通过Bypass命令测试。
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Cpld/Cpld_1_010101 bmc.kepler.Chip.JtagTarget BypassChannelTest a{ss}yy 0 0 【Mode】
Mode取值
1:测试JtagOverLocalBus通路
2:测试Jtag0通路
3:测试Jtag1通路