Place custom overlay file via extlinux.conf

When working with Xavier-nx, I was able to modify the /boot/extlinux/extlinux.conf to include the dtb that I created for our camera. However we are now migrating to Orin nano (currently using developer kit), and custom camera modifications are done in the device tree overlays. Is there a way to modify only the overlay via /boot/extlinux/extlinux.conf. If this is not possible, can you please suggest a way to easily modify or flash only the overlay section or is it possible to include the entire overlay as part of the main dtb ??

Thanks in advance
Athreya

hello athreya.rajaraman,

may I double confirm the Jetpack release version you’re now working with.

please note that, You can specify FDT alone. You can specify FDT + OVERLAYS. You cannot do only OVERLAYS though.
Overlays from Rootfs are processed only if DTB is coming from Rootfs. when FDT entry is not present in extlinux.conf UEFI DTB is used.
The overlays that are specified at flash time (by the OVERLAY_DTB_FILE variable in the flash config) are stored in the QSPI and because of this we wanted the default DTB and overlays to be located in the same place (ie. on the QSPI).
Hence, now (Jetpack-6) by default there has no DTB specified in the extlinux.conf.

Hi
Thanks. I was able to add “OVERLAYS” section in the conf file and that seemed to have solved the problem.
I am using Jetpack 6… (R36 (release), REVISION: 3.0)
Regards
Athreya

Hi @JerryChang ,

Regarding this issue, I have some questions.

In the file p3768-0000-p3767-0000-a0.conf, I noticed it references multiple dtbo files:

OVERLAY_DTB_FILE="L4TConfiguration.dtbo,tegra234-carveouts.dtbo,tegra-optee.dtbo";
OVERLAY_DTB_FILE+=",tegra234-p3768-0000+p3767-0000-dynamic.dtbo";

I added the following two lines in /boot/extlinux/extlinux.conf to add my camera’s dtbo, and it works:

FDT /boot/dtb/kernel_tegra234-p3768-0000+p3767-0001-nv.dtb
OVERLAYS /boot/tegra234-p3767-camera-p3768-mycamera-dual.dtbo

However, will this cause the loss of tegra234-carveouts.dtbo and tegra-optee.dtbo?

I attempted the following modification:

FDT /boot/dtb/kernel_tegra234-p3768-0000+p3767-0001-nv.dtb
OVERLAYS /boot/tegra234-carveouts.dtbo /boot/tegra-optee.dtbo /boot/tegra234-p3767-camera-p3768-mycamera-dual.dtbo

But my camera’s dtbo did not take effect.
Please help me with this, thank you!

hello xumm_td,

according to the board configuration file.
they (tegra234-carveouts.dtbo, and tegra-optee.dtbo) are already specified at flash time, and stored in QSPI.
may I have more details for adding these two again into OVERLAYS property?

Hi @JerryChang ,
According to your description and the DeveloperGuide, my understanding is as follows:

If I want to add the driver for my camera to an already flashed system, I need to add the FDT and OVERLAYS fields in /boot/extlinux/extlinux.conf to specify the device tree used by the Linux system.

This will replace the device tree used during the UEFI stage. Therefore, the tegra234-carveouts.dtbo and tegra-optee.dtbo flashed during the flash stage become ineffective.

My intention was to preserve the original functionality as much as possible, which is why I made the attempt described earlier.

hello xumm_td,

it won’t, as long as your dtbo did not alter carveouts and optee.

@JerryChang
So, all the device trees that are actually valid for my kind of writeup are the /boot/dtb/kernel_tegra234-p3768-0000+p3767-0001-nv.dtb from rootfs, the dtbos from UEFI, and my own newly added tegra234-p3767-camera-p3768-mycamera-dual.dtbo, right?

that’s correct, Jetson platforms (or, let’s say Jetson Orin series) uses L4TLauncher to load kernel image and kernel-dtb according to the settings in extlinux.conf; whereas overlay files (*.dtbo) were applied by UEFI.

1 Like

@JerryChang
Thank you for your reply.
I have successfully completed the driver porting on orin nx.
However, on AGX orin, I tried to enable my dtbo in the same way and it is not working.

FDT /boot/dtb/kernel_tegra234-p3737-0000+p3701-0000-nv.dtb
OVERLAYS /boot/tegra234-p3737-camera-mycamera-overlay.dtbo

There are no hints now that would allow me to debug further. Is there any way to carry out troubleshooting of the problem?

let’s initial another new forum discussion thread for following up your issue.

OK, topic moved here.

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