Jetson AGX Orin not booting on custom carrier board without EEPROM

I am trying to get Orin to boot on our custom board. We have no EEPROM on it. In the Jetson bring-up guide it says that I need to change the read_size from the default 0x100 to 0x0 (link). I made that change in Linux_for_Tegra/bootloader/tegra234-mb2-bct-common.dtsi
eeprom {
cvm_eeprom_i2c_instance = <0>;
cvm_eeprom_i2c_slave_address = <0xa0>;
cvm_eeprom_read_size = <0x0>;
cvb_eeprom_i2c_instance = <0x0>;
cvb_eeprom_i2c_slave_address = <0xac>;
cvb_eeprom_read_size = <0x100>;
};
I then flash Orin with the flash.sh script:

sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1

The result is the same:
I> Task: Prepare eeprom data (0x50013140)
E> I2C: slave not found in slaves.
E> I2C: Could not write 0 bytes to slave: 0x00ac with repeat start true.
E> I2C_DEV: Failed to send register address 0x00000000.
E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xac at 0x00000000 via instance 0.
E> eeprom: Failed to read I2C slave device
C> Task 0x0 failed (err: 0x1f1e050d)
E> Top caller module: I2C_DEV, error module: I2C, reason: 0x0d, aux_info: 0x05
I> Busy Spin

log.txt (24.2 KB)

There are a couple of device tree binary files in the bootloader directory that I decompiled: kernel_tegra234-p3701-0000-p3737-0000.dtb and tegra234-p3701-0000-p3737-0000.dtb.
Both of them are showing that the size did not change:
eeprom-manager {
data-size = <0x100>;

	bus@0 {
		i2c-bus = <0x2d1>;

		eeprom@0 {
			slave-address = <0x50>;
			label = "cvm";
		};

I am not sure if “data-size” is the same thing as “cvm_eeprom_read_size” in the dtsi, but it’s the closest I can get to it.
I’m using the latest SDK - 5.0.2rev1.

How do I make sure that the change that I made to the dtsi file is present in the binary, and what else might I be missing that causes this simple solution not work?

It turns out it was my own fault. As the linked document prescribes, the change needed to be made to the cvb_eeprom_read_size, not cvm_eeprom_size. So the final change looks like this:
eeprom {
cvm_eeprom_i2c_instance = <0>;
cvm_eeprom_i2c_slave_address = <0xa0>;
cvm_eeprom_read_size = <0x100>;
cvb_eeprom_i2c_instance = <0x0>;
cvb_eeprom_i2c_slave_address = <0xac>;
cvb_eeprom_read_size = <0x0>;
};
Then flash using the same command, and the board booted.

1 Like

Glad to know issue resolved, thanks for the update!

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