Switching Between A/B Boot Chains - Developer Preview

For the Developer Preview Release, users can follow the below instructions to try out the limited A/B support in this release. Full support of this feature will be included in the GA release.

By default, the Jetson system would boot from slot A. To boot from slot B, users will need to make configurations modifications and re-flash the device.

For NVIDIA® Jetson AGX Orin™

  1. Edit the file Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-br-bct-p3701-0000.dts:

    -  u32_non_gpio_select_boot_chain = <0>;
    +  u32_non_gpio_select_boot_chain = <1>;
    
  2. Flash the system

  3. Cold reset the system once flashing is completed

  4. Verifying the boot chain:

    Boot from chain A:
    [0000.382] I> Scratch RSV109: 0x00000001    active chain: 0
    [0000.388] I> Slot: 0
    
    Boot from chain B:
    [0000.382] I> Scratch RSV109: 0x00000012    active chain: 1
    [0000.388] I> Slot: 1
    

For NVIDIA® Jetson AGX Xavier™ and NVIDIA® Jetson Xavier™ NX

  1. Edit the config file

  • For NVIDIA® Jetson AGX Xavier™

Edit the file Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-br-bct-sdmmc.cfg:

#DeviceParam[0].SdmmcParams.SdmmcConfig = 3;
+NonGPIOSelectBootChain = 1
  • For NVIDIA® Jetson Xavier™ NX

Edit the file Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-br-bct-qspi.cfg:

-GPIOSelectBootChain = 1;
-GPIOConfigAddressBootChain = 0x022136e0;
-GPIOPadctlAddressBootChain = 0x02431008;
+NonGPIOSelectBootChain = 1
  1. Generate SMD image for booting from slot B following the below - Edit the Linux_for_Tegra/bootloader/smd_info.cfg:

    --- a/bootloader/smd_info.cfg
    +++ b/bootloader/l4t_smd_info.cfg
    @@ -30,7 +30,7 @@
    
    # slot info order is important!
    # <priority>    <suffix>  <boot_successful>
    -15                  _a        1
    +14                  _a        1
    +15                  _b        1
    
  • Generate the SMD:

    $ cd ./Linux_for_Tegra/bootloader
    $ cp slot_metadata.bin slot_metadata.bin.backup
    $ ./nv_smd_generator smd_info.cfg  slot_metadata.bin
    
  1. Flash the system

  2. Verifying the boot chain:

    Boot from chain A:
    [0000.352] I> Boot chain mechanism: A/B
    [0000.356] I> Current Boot-Chain Slot: 0
    
    Boot from chain B:
    [0000.331] I> Boot chain mechanism: A/B
    [0000.335] I> Current Boot-Chain Slot: 1