⭐️ New U-Boot v2025.04 available for the Omega2 ⭐️
-
What’s new:
- A bootloader based on U-boot v2025.04 is now available for the Omega2 modules
- Support for the Omega2 is being upstreamed into mainline u-boot
What can I expect from this bootloader?
U-Boot is a big step up from the legacy bootloader:
- More firmware flashing and recovery options
- Support available for more modern features: enhanced command line utilities, support for scripting, networking
- End-users can customize U-Boot behaviour without rebuilding from source
- Based on an active, maintainable, and extendable code base
The U-Boot bootloader is more developer-focused and does not have web-based firmware recovery like the legacy bootloader. Instead, more flexible command line options for firmware flashing and recovery are available.
How can I get and use this new bootloader?
Try out the new U-Boot on your device by following the upgrade procedure here: https://documentation.onioniot.com/bootloader/upgrading-old-bootloader
Just be aware: updating the bootloader has the potential to be a destructive action and can lead to a device becoming bricked or unusable.
More information on the new bootloader and using it can be found on the new documentation site: https://documentation.onioniot.com/bootloader/overview
There’s articles on:
- Activating the U-Boot Command Prompt
- Flashing Firmware over Ethernet
- Flashing Firmware over Serial
- How to upgrade the U-Boot bootloader
- Stop auto-boot into Linux with keyboard input
How is it built?
The https://github.com/OnionIoT/u-boot-wrapper GitHub repo is used to build and release U-Boot images for the Omega2 family.
This repo has a
profile
configuration file that specifies which repo to use, which commit in that repo, as well as information about the target. It currently points to Onion’s fork of u-boot, but when Omega2 support is upstreamed, it will point to the u-boot/u-boot tree.Users interested in building their own U-Boot can check out the README in the OnionIoT/u-boot-wrapper repo. However, I do encourage you to check out the environment setup and scripting abilities of modern U-Boot to see if that will suit your customization needs before resorting to building your own custom version. More information on U-boot scripting here:
- https://docs.u-boot.org/en/latest/usage/cmdline.html
- https://docs.u-boot.org/en/latest/usage/index.html#shell-commands
Also, based on your feedback of the fragility of the legacy bootloader environment, we’ve created multi-arch Docker images for compiling U-Boot. Learn more about that here:
- https://github.com/OnionIoT/u-boot-wrapper?tab=readme-ov-file#using-docker
- https://github.com/OnionIoT/u-boot-wrapper?tab=readme-ov-file#method-2-using-onions-docker-image
How can I give feedback?
Reply here! I’ll be around to chat!
If you have feedback on an Onion documentation article about U-Boot, please drop a comment in the article itself. If it’s a a more in-depth suggestion or bug report about the documentation, please create an issue in the OnionIoT/documentation repo.
If you have questions or problems U-Boot itself, create an issue in the OnionIoT/u-boot-wrapper repo or post here on the Onion Community Forum
What’s next?
- Support for the Omega2 modules is currently being mainlined into the u-boot tree
- At some point in the future, the new U-Boot bootloader will be flashed on Omega2 devices during production - don’t worry we’ll give plenty of notice before this happens!!
TL;DR
A modern U-Boot bootloader is available for the Omega2 that offers modern, developer-focused functionality.
Try it out by following the instructions on upgrading the old bootloader. Let us know what you think!