Hi,
I wish to modify the MB1/MB2 BCTs as described in bringup & adaptation section.
My problem is that there are many .dtb files in the relevant directories and I didn’t find the final dtb composed from all these smaller parts.
I looked in the primary dtb (the one mentioned in the configuration file) but didn’t find the relevant settings there.
where can I find the final dtb containing the BCTs and verify is the one that actually being flashed?
Are you using the devkit or custom board for Orin NX?
What’s your Jetpack version in use?
There are many dtb files in the BSP package for different platforms and also boot stages.
You could just check the flash log to know which dtb is in use.
During flashing process I recognize that the flashed dtb is $DTB_FILE (tegra234-p3767-0000-p3768-0000-a0.dtb). This dtb doesn’t contain the BCT options. Which variable responsible to indicate this configuration file the specific dtb containig the BCT options?
which bootloader? (MB1/MB2/UEFI)
What I mean is:
at which point we split into two separate bootloaders?
obviously the ROM state machine is unique. From there we jump into two possible bootloaders? or we jump to additional unique bootloader which on its turn he jumps to one of two possible bootloaders?
Do we also get two copies of UEFI which load the suitable kernel?
In case of A/B mechanism, the file:
Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-device-p3767-0000.dts (MB1 BCT)
is not being used (because its general and not relate to specific A/B partition) or that A MB1 BCT and B MB1 BCT both are constructed from him?
The A/B switch will not happen randomly. When you full flash the board, each A/B slot will have same binary. The boot flow won’t be like “I want to boot from A MB1 then B MB2 and then again A UEFI”. There won’t be such flow. It will only switch to the other slot when error happened. A/B is a mechanism to prevent the other partition goes dead. Not for you to go boot separately.
As for your 2nd question, both A/B BCT are constructed from that file. MB1 bct file is more like a list of parameters.
I have last 3 questions please regarding this matter:
As stated in the adaptation guide: T23x Boot Configuration Table — Jetson Linux Developer Guide documentation
I wish to edit the different BCTs for my target.
Since there are many files in Linux_for_Tegra/bootloader/t186ref/BCT
I got lost so I tried to find the config file that states which .dts is converted to .bin and flashed.
KevinFFF helped me here:
but only by looking at the flash log.
I wish to find the file that tells the flash process which .dts to use for the target BCTs (and then I will know which exact files I will need to modify in order to modify the BCTs)
Following is the storage device configuration being used by MB1:
If I use only internal qspi and external nvm , can I remove the sd, ufs, sdmmc nodes from here? (my logic is that I don’t use them in my system hence can remove them from the BCT)
Is it possible to flash all partitions into external nvme only without flashing anything into the internal qspi?
My goal is to flash only the nvme from my host via USB and plug it into new SoMs without flashing their internal qspi at all.
Finding the file used in flash log is the method eaily for you to know which file is in use. You could also track the board config used in the flash command.
We would not suggest you to do that because that would not affect anything in your use case.
You could also remove the entry of boot-device in UEFI menu.
No, the SoM should be flashed at least once to have required boot contents.