How to flash a new u-boot on Turris Omnia

So, anyone who wants to update the bootloader, can get relevant info here → Omnia - Turris Documentation
This is also relevant for situation something borked and you need to resurrect the dead Omnia (like power outage during the bootloader update).

To update the bootloader, you can use the tftp method described in the manual, but there is much more! You can upload the new bootloader via serial, or use the USB stick.

In case you made a decision to use the USB stick, here is the process:

  • get the u-boot binary
  • store it on the USB drive, formatted to ext/btrfs/fat FS
  • connect to Omnia over serial
  • break the bootloader by pressing any key
  • plug the USB stick
  • start the USB system by typing usb start
  • load the u-boot binary to memory by load usb 0 ${kernel_addr_r} name-of-uboot-binary
  • initialize the SPI flash memory by sf probe
  • update the u-boot by sf update ${kernel_addr_r} 0 ${filesize}
  • jump into new u-boot by typing reset

As an alternative, you can update it from the running system by installing the turris-nor-update package and issuing the nor-update -d for developer version of u-boot or just nor-update command to install the stable version.

The experimental/developer u-boot for Omnia with features like boot from the SATA driver card, boot from NVMe, support for GPT formatted drives, and much more, is located here → https://repo.turris.cz/hbl/omnia/packages/turrispackages/omnia-uboot_2022.04-1-ddr_arm_cortex-a9_vfpv3-d16.ipk

6 Likes