JetPack 5 Device Tree Overlays Carrier board

Current System: Jetson Xavier AGX, Jetpack 4.6.2, L4T 32.7.2
–Current system has a custom carrier board with a carrier board EEPROM at i2c@3160000/eeprom@56.
–CBoot works flawlessly to pull the “ids” from the EEPROM and apply overlays in the plugin-manager section of the device tree.

New System: Jetson Xavier AGX, Jetpack 5.1.1, L4T 35.3.1
–New system has a custom carrier board with a carrier board EEPROM at i2c@3160000/eeprom@56
–We ensured that EEPROM is specified under the correct I2C bus

i2c@3160000 {
	eeprom@56 {
		reg = <0x56>;
		compatible = "atmel,24c04";
		pagesize = <0x10>;
	};

–We ensured that the eeprom-manager was enabled and has an entry for our carrier board EEPROM

eeprom-manager {
	status = "ok";
	data-size = <0x100>;

	bus@2 {
		i2c-bus = <0x2cf>;

		eeprom@1 {
			slave-address = <0x50>;
		};

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

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

		eeprom@1 {
			slave-address = <0x56>;
		};

–We put a simple test fragment in the device tree as follows:

fragment@0 {
	target = "/eeprom-manager";

	board_config {
		ids = "10640171496 A.0";
		sw-modules = "kernel";
	};

	__overlay__ {
		favname = "Oliver";
	};
};

When we booted the system favname was unchanged. So the fragment was not applied by the UEFI bootloader.
The bootloader has virtually no output to debug with so we attempted to build the bootloader with debug output using the instructions found here:

We performed the Build with docker version of the instructions on Ubuntu 22.04.1 and the compilation ended with an error
We performed the Build without docker version of the instructions on Ubuntu 22.04.1 and the compilation ended with an error

We performed the Build with docker version of the instructions on Ubuntu 20.04.6 VM and the compilation ended with an error
We performed the Build without docker version of the instructions on Ubuntu 20.04.6 VM and the compilation ended with an error

All compilation errors were virtually the same, see following compiler output.
undefined reference to __aarch64_ldadd4_sync' undefined reference to __aarch64_cas4_sync’

The build with docker version commands used on both 22.04 and 20.04 follow:

  1. edk2_docker echo hello
  2. edk2_docker init_edkrepo_conf
  3. edk2_docker edkrepo manifest-repos add nvidia GitHub - NVIDIA/edk2-edkrepo-manifest: NVIDIA fork of tianocore/edk2-edkrepo-manifest main 1n nvidia
  4. cd /build
  5. edk2_docker edkrepo clone nvidia-uefi NVIDIA-Platforms r35.3.1
  6. cd nvidia-uefi
  7. edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh

Questions:

  1. Can you see anything wrong with our JetPack 5 fragment?

  2. Why won’t the boot loader build when using the exact instructions provided?
    Does version R35.3.1 no longer build? Should we try a different version that will work with 35.3.1?

  3. What would you suggest as a next step to getting the carrier board eeprom device tree overlays working?

Hi elitewompa,

Could you verify with the latest JP5.1.3(R35.5.0)?
Or get a devkit board to check if the issue is specific to your custom carrier board.

You can refer to other overlay dtbo to add fragment.

Mostly, it could be caused from the build environment issue.
Are you using x86 based Ubuntu 18.04, 20.04 or 22.04 host PC?
I would suggest using docker way.

First, I would suggest using the latest JP5 release(i.e. JP5.1.3, L4TR35.5.0)
For overlay dtb, you can refer to how the following dtbo working in p2972-0000.conf.common

OVERLAY_DTB_FILE="L4TConfiguration.dtbo";

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