Fault Tolerant BCT & Bootloader for Jetson Tx2

I’m trying to build a Fault Tolerant BCT & Bootloader for Jetson Tx2. My goal is to have 3 boot load partitions. Each boot load is tried 3-5 times before moving on to the next one. No user inaction is possible.

I’ve been following the Runtime Boot Loader Update Process for Jetson TX1 Rel 28.1 (apparently there is no document for the Tx2). Also, I’m using the Nvidia Tegra Linux Driver Package Nov 4 2014 U-boot User Guide - the Changing eMMC Partition Layout section (again - nothing newer appears to be accessed). And lastly the Tegra Linux Driver Page Development Guide Mar 3 2917 Development Guide - the Changing eMMC Partition Layout section.

I’ve figured out that the file Linux_for_Tegra/bootloader//cfg/gnu_linux_tegraboot_emmc_full.xml for the Tx1 has been replaced with Linux_for_Tegra/bootloader//cfg/flash_l4t_t186.xml for the Tx2.

The problem I’m having is that I can’t find anything that explains the parameters in the flash_l4t_t186.xml and all the changes described in Runtime Boot Loader Update Process to modify the xml to create a Fault Tolerant BCT & Bootloader use parameters that relate to the Tx1.

Can anyone tell me how to change the flash_l4t_t186.xml to create multiple boot partitions that execute a number of times before switching to the next bootloader? Or at least how to relate the Tx1 parameters of the Runtime Boot Loader Update Process doc to the Tx2 flash_l4t_t186.xml?


Have you checked the bootloader redundancy section in L4T document?
Is that what you want?

Hi WayneWWW,

Thanks for the reply … Yes I’ve checked out all the documentation from NVidia - all documentation talks about the Tx1 - not the Tx2. The problem is deciphering the flash_l4t_t186.xml. The partition parameters are different and I can’t tell how they relate to the documentation for the Tx1.

Example :
The BSP configuration file contains the partitioning information
for both the Tegra partition table and the GPT.
• Partitions defined after GP1 are visible to Linux.
• Partition NVC contains the tegraboot.
• Partitions NVC-1, NVC-2, and NVC-3 store additional tegraboot instances for redundancy. These
partitions must be defined after BCT and before GP1 to be located in boot partitions.
• Partitions PT, PT-1, PT-2, and PT-3 contain layout information for each BFS, and indicate the beginning
of each BFS.
• Partitions TBC, TBC-1, TBC-2, and TBC-3 contain the
of tegraboot.
• Partitions RP1, RP1-1, RP1-2, and RP1-3 contain tegraboot DTBs.
• Partitions DTB, DTB-1, DTB-2, and DTB-3 contain kernel DTBs.
• Partitions EBT, EBT-1, EBT-2, and EBT-3 contain secondary boot loaders such as U-Boot or cboot.
• Partitions WB0, WB0-1, WB0-2, and WB0-3 contain the warmboot vector.
• Partitions BPF, BPF-1, BPF-2, and BPF-3 contain BPMP microcode.
• Partitions TOS, TOS-1, TOS-2, and TOS-3 contain secure monitor code.

None of these partition names appear in the flash_l4t_t186.xml - they do in the Tx1’s gnu_linux_tegraboot_emmc_full.xml

So to make multiple boot partitions is undocumented for the Tx2.
Do you know how to relate the partition names above the ones that appear in flash_l4t_t186.xml?


But we already had the bootloader redundancy document on rel-28.2 for tx2. Do you see it?

It is in the L4T document.