General device tree question + UEFI specific question

I have 2 questions please:

1. General device tree question:
I have a NVIDIA Xavier NX with a custom board which worked well with 4.x kernel and Cboot.
Now after migrating to JP5.0.2 with 5.x kernel and UEFI it hangs on boot with the following error: “ParseGicMsiBase: cannot retrieve property ‘msi-parent’: FDT_ERR_NOTFOUND”

I don’t have prior experience working with device tree internals and my question is how can I start investigating this problem.
I familiar with the general concept of device trees and how to compile and use them. My lack of knowledge is mainly in the specific properties and values inside the .dts/.dtsi files.

I don’t know how one decides which properties are needed in each device tree node, what are their specific names (properties strings) and what their suitable values. For that reason I don’t know how to try and fix my issue.

Where I look for information, which documents I have to read in order to get the specific strings names and needed info, from where I start?

Because my lack of experience with this subject I’ll be happy to get an answer as much detailed as possible and maybe the steps I can take in order to start investigating the issue and learn this subject as well.

2. UEFI:
Does UEFI use its own device tree which differ from the one the kernel use?
I’m asking this because this error occurs during the UEFI stage.

*note: I opened a similar topic in the past with this problem asking for practical help but this topic is mainly for asking guidance regarding how a newbie can start learn the subject without prior expereince.

Thank you very much

this looks like follow-up of Topic 227006, do you still see the same boot hang failure?

Yes but @WayneWWW helps me with that. Now he’s waiting for some input from me.
This topic is for guidance / learning path tips for the whole subject in general. Something like “how to start”

hello BSP_User,

>> Q1
device tree is used to store all the needed information, they’re hardware specific settings, or platform specific settings. this is used by the driver to parse the configuration and apply user-space controls.
please visit Jetson Linux 35.1 | NVIDIA Developer and check [Driver Package (BSP) Sources]. you should extract kernel_src.tbz2, there’s hardware/ folder to contain device tree sources.
for image flashing, it’s kernel-dtb partition to store this device tree blob.

>> Q2
actually, if you look into flashing logs, you’ll see this binary file flashed to Orin platform. i.e. uefi_jetson_with_dtb.bin
it means… this is the UEFI image, uefi_jetsion.bin plus *.dtb file for Orin series.
please also check flash configuration, it’s TBCDTB_FILE to assign the *.dtb file. it’s tegraflash will concatenate the dtb to the UEFI binary for flashing to cpu-bootloader partition.

hope this helps to clarify your question.

1 Like

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