Load dtb in uboot TX2 R28.1

for some reason, we want to select different dtb in uboot stage. but acording to the doc, the dtb save in kernel-dtb partition. I try to use cmd: fdtload myself dtb which saved in /boot/dtb, and run sysboot, but I get some wrong.
and I fond that the dtb file in kernel-dtb is end with encrypt. why ? It’s there any way to do this?

hello 897065259,

please also refer to TX2 Boot Flow for the details of signed and encrypted.

you may generate encrypt dtb file locally with the flash script by including --no-flash option;
please note that, you should put device into recovery-mode for parse the board information.

once you generate encrypt dtb file, please copy that to target device; then you could replace the kernel-dtb partition with dd command.
you should also check the kernel-dtb partition with $ ls -al /dev/disk/by-partlabel

there’s also external page https://elinux.org/Jetson/TX2_DTB for your reference.

thank you very much.
I read the TX2 Boot Flow, and I have some questions:
1:BL and Kernel will use separate device trees stored in separate partitions.
Does it mean the kernel’s dtb is stored in partition:kernel-dtb?
2: TBoot-BPMP is responsible for:• Loading the bootloader device tree and passing the device tree load address to CPU-BL
the dtb there is for Uboot? or Kernel?

3: if the dtb in question 2 is for Kernel, so there is no way to change dtb file in uboot stage, right?

hello 897065259,

may I know what’s the use-case to select different dtb in u-boot ?

To update the kernel image, copy the Image file to /boot, and restart the board to make it works.
To update the device tree, you should re-flash (or, using dd to overwrite) the kernel-dtb partition.

you may still have another approach to change dtb files during boot-up by bootloader redundancy.
please refer to TX2 Bootloader Update and Redundancy, for a bootloader update process.