Updating UBOOT on TEGRA K1 without using recovery mode / usb

We would like to know how to update uboot on TEGRA K1 without putting the board into recovery mode.

Once deployed, our tegra-based boards are in sealed units with access to only serial and ethernet. We have a way to write to the boot loader partition, and any user partition from a web page to support remote software updates. We have no problem updating any of the user partitions using this method but we noticed that it does not work for updating UBOOT. Doing a dump of the EBT partition using Nvidia’s nvflash tool shows that the contents of the uboot partition is correct, but the board will not boot until flashing the identical image using recovery mode and a usb connection.

Questions:

  1. Is there some CRC of the boot image stored somewhere that is checked and if not valid prevents UBOOT from loading?
  2. If so is there an easy way to disable this?
  3. is there a mini-boot loader that runs first that then loads uboot? I noticed there is a couple of protected partitions at the beginning of flash and perhaps fastboot is loaded here?

Remote update of all software components is an extremely important feature for us. We currently have over 1000 units deployed, and many more shipping soon.

Any help from Nvidia on this would be greatly appreciated.

Hi RickDL,

We are working on documentation for this use case; we will post an update when it is ready.

To answer your questions:

  1. Yes. The BCT contains a bootloader hash; when the bootloader is updated, the BCT hash must be regenerated. Please refer to the Tegra Public Appnotes for more information on the BCT and bootloader relationship:
    http://http.download.nvidia.com/tegra-public-appnotes/index.html

  2. The integrity check cannot be disabled

  3. No. This is also explained in the public appnotes document-- the bootROM will transition control to the bootloader (in this case, U-Boot) directly, after the check has been made.