Board won't boot with custom DTB


I created the dtb file by adding the dtsi files from the Excel sheet into my custon dts file.

The board won’t boot:

Jetson UEFI firmware (version r34.1-975eef6 built on 2022-05-16T20:58:45-07:00)
Press ESCAPE for boot options **  WARNING: Test Key is used.  **
      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 and installing virtual address map...
▒▒I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
I/TC: Secondary CPU 3 initializing
I/TC: Secondary CPU 3 switching to normal world boot
I/TC: Secondary CPU 4 initializing
I/TC: Secondary CPU 4 switching to normal world boot
I/TC: Secondary CPU 5 initializing
I/TC: Secondary CPU 5 switching to normal world boot

@WayneWWW Can you confirm that what you wrote here:

is actually correct and the pinmux dtsi and the gpio dtsi from the excel sheet should be added into the dts file?

Does your “dtb” mean the pinmux or you are talking about the kernel dtb? The role is totally different.

And what “dts” file did you add? You are the one doing the action and you should tell us your steps first.
If you are working on xavier, then dtsi files of pinmux no need to be added to any dts. Just convert it with python tool to cfg.

Hey Wayne,

I was actually talking about the kernel dtb. Is there a pinmux dtb as well? I was just aware of the PINMUX_CFG from the config files, but thats a human readable cfg file.

We used the source\public\hardware\nvidia\platform\t19x\jakku\kernel-dts\tegra194-p3668-0000-p3509-0000.dts
file as base and added the pinmux and gpio dtsi from the excel sheet there. But as you pointed out that is wrong.

As I understand the cfg files which are loaded by the boot loader configure the cpu and that configuration is kept, as there is no pinmux config added in the dts at all. The dev guide stops after “generating” the files, without telling the user what to do with them and hence leads to confusion. We assumed the cfg files and the dtsi files need to be used. So PINMUX_CFG and PMC_CFG set in the decive config to the two files received from and we are set?

You don’t need to add pinmux setting dts to kernel dts. But you can check/compare/add the gpio dtsi to your kernel dtb. That would make sure gpio setting is by default output high or output low, or as input.

Are we talking about a custom board here or devkit?

Also, since jp5 is just developer preview, how about you firstly test these on jp4.x first? This could prevent unnecessary bug.

Hey Wayne,

“don’t need to” seems to be a “must not” in our case. When the pinmux dtsi is added the kernel won’t boot with the default setting of the Excel sheet.

We are talking about the devkit. We designed our own board. I am currently designing an operating system meeting our needs. We talked to several people whojetson boards, for example at Siemens. Everyone told us, either use Yocto (which is quite outdated currently), use debian bootstrap, or just do it yourself with l4t, don’t use the nvidia image.
Some people were quite disappointed to find out that there is actually no “easy” way to create an operating system that is customized without in depth knowledge about linux. So I am desingning a framework which will allow our employees to easily understand and customize the image without knowing much about operating systems.

Since all that is quite some work as you might understand we are not doing that for JP 4.x as we are not planning to use it.

Anyway, without the dtsi it boots now. Until we get the next version of the Jetpack with A/B support, you might get away without my annoying questions. Thanks for your answers Wayne. They are very valueable.

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