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.

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.