Can't flash - attempts to read eeprom even after disabling

Hello, we’re using a custom carrier board with the Orin NX 16GB and trying to flash it successfully. We are currently running into a problem and debug port is saying something about an eeprom error. Our carrier board has no eeprom so we followed this link and set cvb_eeprom_read_size = <0x0>. Not sure how to proceed or troubleshoot further. Attached is the debug output from the Orin. Please let me know if any additional files would be helpful. Thanks!
eeprom_error.txt (47.7 KB)

Task: Prepare eeprom data (0x50017bd8)\r
E> I2C: Timeout while polling for bus clear. Last value 0x00000000.\r
E> I2C: Failed to clear bus for instance 0.\r
E> I2C: Failed to clear bus for instance 0.\r
E> I2C_DEV: Failed to initialize instance 0.\r
E> eeprom: Can't get handle to eeprom device @160\r
C> Task 0x0 failed (err: 0x1414032a)\r
E> Top caller module: EEPROM, error module: EEPROM, reason: 0x2a, aux_info: 0x03\r
I> Busy Spin\r

Hi,

It is not related to the missing of cvb eeprom.

It is more like there are something else on the i2c bus which leads to all other i2c devices fail to get read.

Please review your hardware design.

Hi, I am a co-worker of alex, so we think there is something on the I2C bus that is leading to this issue? Is this the I2C bus coming out of the module? Thank you

Yes, it could be. Try to prevent using the same i2c bus as the module eeprom.

Is this I2C2? Should we avoid using this even if we add our own EEPROM for carrier board identification in the future? Currently, we aren’t connecting I2C2 to anything. After doing the EEPROM change do we need to rerun anything to compile the dts? Just to better understand where is this fault in the process? Is it in MB2 or the kernel? If it is in the kernel it could be that we need to make sure our device tree files we started from no longer use the EEPROM. Thank you

It is from flash process. Not yet in kernel. No device tree change can configure this.

The “Can’t get handle to eeprom device @160” means the address 0xa0. (160 (decimal) to hex)

And 0xa0 is the address of cvm eeprom.

1 Like

Thank you! We were able to figure it out and got it booting into OS, we found the pinmux was likely configured incorrectly and was able to resolve the issue by changing it back to a base pinmux. So the onboard eeprom requires I2C2? Just want to make sure we have it configured correctly and if there are other required things for pinmux internally. Thank you!

Yes, the flash and boot process needs the module eeprom on i2c2 so that it can tell which module is in use.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.