In cboot what is the tegrabl_instance_i2c_t for the camera connector i2c bus?

I think the cameras are on bus 9 as I can see mine. But, bus 9 isn’t valid when I try to use it in cboot.

root@jetson-xavier-nx-devkit:~# i2cdetect -y -r 9
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- 1a -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- 36 -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
[0004.462] E> I2C_DEV: Failed to initialize instance 9.

ok. I think it’s bus 3 as this opens

  struct tegrabl_i2c_dev *hi2c1 =
    tegrabl_i2c_dev_open(TEGRABL_INSTANCE_I2C3, slave_addr, 2, 1);

when I do a read though I just get back 0’s and this should give back 0x80

    uint32_t reg = 0x3089;
    err = tegrabl_i2c_dev_read(hi2c1, &data, reg, 1);

the sensor is 16-bit addresses. Has anyone tried 2-byte addresses in cboot? I don’t see any examples of it.

As far as I know, there is only 7 and 10 bit addressing.
Can you share what device you have connected and on which pins on nx.
Also share full log.

I think there is a bug in the code. Instead of entering addresses normally you need to reverse them. My hunch is that this is because no where else in cboot is 2-byte addressing used.

bad:

uint32_t reg = 0x3089;

good:

uint32_t reg = 0x8930;