Jetson Tx2 - flashing

In order to enable copying both the kernel and the dtb file to your TX2 you will have to modify the /boot/extlinux/extlinux.conf file. This is the file that is read by U-Boot to figure out how to boot up the kernel

This is what mine looks like:

TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL NVIDIA TX2 Devboard
      LINUX /boot/Image
      INITRD /boot/initrd
      FDT /boot/tegra186-quill-p3310-1000-c03-00-base.dtb
      APPEND ${cbootargs} quiet

LABEL backup
      MENU LABEL NVIDIA TX2 Devboard Backup
      LINUX /boot/Image.back
      INITRD /boot/initrd
      FDT /boot/back.dtb
      APPEND ${cbootargs} quiet


# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
# fallback to the original kernel. To do this:
#
# 1, Make a backup of the original kernel
#      sudo cp /boot/Image /boot/Image.backup
#
# 2, Copy your custom kernel into /boot/Image
#
# 3, Uncomment below menu setting lines for the original kernel
#
# 4, Reboot

# LABEL backup
#    MENU LABEL backup kernel
#    LINUX /boot/Image.backup
#    INITRD /boot/initrd
#    APPEND ${cbootargs}

I think the default extlinux.conf that the TX2 initially gets flashed with omits the FDT entry, and U-Boot pulls an FDT that is baked into U-Boot itself. This can be frustrating because you can’t update the Device Tree the same way you would with the kernel.

Although I am not sure if cboot, the bootloader before u-boot, modifies this device tree in some way.

In my extlinux.conf I’ve added the ‘backup’ entry (as the note on the bottom suggests) and I also copied the /boot/Image to /boot/Image.back and copied the /boot/tegra186-quill-p3310-1000-c03-00-base.dtb to /boot/back.dtb that way if I mess something up I can always select the backup boot over the serial console.

If you wanted you could also omit the FDT entry in the backup so it behaves ‘normally’.

Dave