查询厂商和版本号:
smc(以BCU为例):
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_0101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018500 7 其中7为read获取的长度,第一位为type(0为mcu、2为vrd),第三位是厂商(0是安陆,1是GD),五六七为版本号0.02.22
smbus(以Riser为例):
- 获取版本号:
mdbctl call Chip_MCU1_01010103 bmc.kepler.Chip.BlockIO ComboWriteRead 0 0x20 0x0e 0x0c 0x80 0x00 0x05 0x00 0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x00 0x98 0x21 32 这三位为版本号,其中0x98为crc校验吗,根据配置的adress不同需要重新计算(当前SDI为0x90,riser为0x98)
- 获取厂商:
mdbctl call Chip_MCU1_01010103 bmc.kepler.Chip.BlockIO ComboWriteRead 0 0x20 0x0e 0x0c 0x80 0x00 0x06 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x36 0x21 14 最后一位,1是ST,2是GD
PS:CPLD芯片厂商查询
查之前需要将jtag线路切到对应的值: busctl --user set-property bmc.kepler.hwproxy /bmc/kepler/Accessor/Accessor_JtagSwitch_010101 bmc.kepler.Accessor Value t _( _ 为对应值)
切到对应路线后查询对应的cpld: busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Cpld/Cpld_1_0101 bmc.kepler.Chip.JtagTarget GetChipIdcode a{ss} 0
对应关系: