通过PCA9546访问Retimer片内数据异常

通过i2ctool工具访问Retimer型号(PT5161LRS)获取数据正常:

./i2ctool64 2 10 1 0xe0 8
./i2ctool64 2 10 1 0xe2 1
./i2ctool64 2 10 5 0x42 0x0a 0x03 0x02 0x09 0x23
./i2ctool64 1 10 2 1 0x42 0x09
如果把最后行换成
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Complex/Chip_Retimer1_010133 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x09 2
为啥通过busctl获取到数据没对上?获取到数据为0xff

Retimer I2C拓扑如下
I2C10–PCA9545(0xe0)–CH4–Retimer Board1–PCA9617–PCA9546(0XE2)–CH1–Retimer(0x42)

Retimer拓扑是通过PCA9546通道进行连接,但是由于PCA9546类没有实现,只通过PCA9545两个通过模拟,是否合理?
对应SR配置:

"ManagementTopology": {
      "Anchor": {
        "Buses": [
          "I2c_10"
        ]
      },
      "I2c_10": {
        "Chips": [
          "Lm75_RetimerBP_0",
          "Eeprom_RetimerBP_0",
          "Pca9555_RetimerBP_0",
          "Pca9545_i2c10_chip"
        ]
      },
      "I2cMux_Pca9546_i2c10_chip_1": {
        "Chips": [
          "Chip_Retimer1"
        ]
      },
      "I2cMux_Pca9546_i2c10_chip_2": {
        "Chips": [
          "Chip_Retimer2"
        ]
      },
      "Pca9545_i2c10_chip": {
        "Buses": [
          "I2cMux_Pca9546_i2c10_chip_1",
          "I2cMux_Pca9546_i2c10_chip_2"
        ]
      }
    },
1 个赞

提供chip的sr内容看下呢

已解决,OffsetWidth配置为0导致的问题