Dtbo loads for JP6.1, but not JP6.2

Hi all,

We have a custom .dtbo for a camera driver. Under JP6.1 on Orin Nano dev kit it loads by jetson-io and functions correctly.

Under JP6.2, is can still be loaded by jetson-io, the changes to extlinux/boot.conf are as expected, but changes from the dtbo do not appear in the device tree. By comparison I also tried one of the “stock” dtbos (tegra234-p3767-camera-p3768-imx477-dual.dtbo) and it is loaded correctly.

The only difference I can note is at boot:

L4TLauncher: Attempting Direct Boot                                                                                                          
L4T boot options                                                                                                                                   
0: primary kernel                                                                                                                                  
1: backup kernel                                                                                                                                   
2: Custom Header Config: <CSI Camera VCMIPI Dual>                                                                                                  
Press 0-2 to boot selection within 3.0 seconds.                                                                                                    
Press any other key to boot default (Option: 2)                                                                                                    
L4TLauncher: Unable to boot via extlinux: Device Error                                                                                             
L4TLauncher: Attempting Kernel Boot                                                                                                                
EFI stub: Booting Linux Kernel...                                                                                                                  
EFI stub: Using DTB from configuration table                                                                                                       
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path                                                                               
EFI stub: Exiting boot services...                                                                                                                 
debugfs initialized        

with the “Device Error” being new. Maybe there is a conflict or error in our dtbo relative to JP6.1?

The question is how to debug the issue. Is it possible to get information on why the overlay is being rejected?

hello amarburg,

may I know what’s the flash configuration you’ve flashed?
for instance, did you re-flash the target with jetson-orin-nano-devkit-super.conf?
did you also update the overlay file to add compatible strings to support Orin NX/Nano super config?
for example,

compatible = ...
+           "nvidia,p3768-0000+p3767-0003-super"; 

I flashed the board with SDK Manager with the “default” Orin Devkit settings, which I think, yes, would be jetson-orin-nano-devkit-super.conf

And yes, I did update the compatible strings in the .dts. I found the dtbo was not recognized by jetson-io until they were updated with the -super configs.

hello amarburg,

did you meant the issue has resolved?

What I meant was that jetson-io would not let me load my .dtbo until I added the -super configurations to the compatible line. Once I added them, then jetson-io let me choose it – that makes sense. However, the overlay still did not work.

However, I compared the my decompiled dtb with the -imx477-dual.dtbo, and did eventually find a working configuration. I think the issue was that I had previously used fragments to disable the default imx219 cameras.

When I removed those fragments (the imx219 is no longer configured in the default dtb), I was able to load the overlay and my camera config started to work.

Which is great for me. The real question is how I was supposed to debug the issue without guess-and-check in the overlay.

hello amarburg,

yap, that’s new added feature of JP-6.2 to disable IMX219 auto-detection.

I assume you developing your camera sensor based-on IMX219, right?
please refer to Release Notes (r36.4.3) for [4.2. Device Registration].
the best practice is creating a new device tree overlay to register the camera module.

We’re using IMX296 sensors from Vision Components and we have forward ported their driver to JP6.2

Maybe I can ask the question a different way. I get the impression that L4TLauncher rejected our overlay, maybe because of the invalid fragment, but other than a brief error message, there no indication that it had rejected the overlay and minimal information about why it rejected the overlay. Is there a way to increase the information from that stage of the boot process?

please refer to developer guide, UEFI Adaptation.
you’ll need to build UEFI as debug build favor, and replacing it with the old UEFI binary by re-flashing your target.

Understood, thank you.