OS Update 6->7 without Bootloader Update

Hello,

we are currently testing OS updates on our Verdin IMX8MP based devices currently.
Our tests include a major update from Torizon OS 6 to 7.

We have used a bootloader update inbetween (U-Boot 2022.04-6.8.1+git.a31fdd543bee → U-Boot 2024.07-7.1.0+git.3f772959501c) and everything worked fine.

Then we did a test updating from 6 to 7 without a bootloader update inbetween and were expecting a rollback to 6.
But it was just working as it was with the bootloader update included.
We have also checked the actual running version and on our device bootloader “U-Boot 2022.04-6.8.1+git.a31fdd543bee“ can load Torizon OS “7.6.1-build.38“ and there seems to be no problem.

Is there any downside when we have a device that uses an old bootloader and a new OS version?

Best Regards,

Erik

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Bootloader Compatibility and Potential Issues

Your observation about U-Boot 2022.04-6.8.1 successfully loading Torizon OS 7.6.1 is correct - newer versions of the bootloader are generally compatible with older OS versions(1). However, there are important considerations when running an older bootloader with a newer OS.

Recommended Upgrade Sequence

The proper sequence for major OS upgrades is clearly defined(1):

  1. Upgrade to the latest version of the OS within the same series (e.g., if running TorizonCore 6.6.0, update to 6.8.0+)
  2. Upgrade the bootloader to the appropriate version for the major transition
  3. Upgrade the OS to the new major version (7.x.y)

For your Verdin iMX8MP, the recommended bootloader version for OS major upgrade 6.x.y → 7.x.y is 2024.07-7.1.0+git.3f772959501c-r4(1).

Potential Downsides of Skipping Bootloader Updates

Missing Features and Functionality

The bootloader binary contains more than just the code to load the operating system(1). For i.MX 8-based devices like your Verdin iMX8MP, the bootloader is actually a container holding multiple pieces of firmware including:

  • FDR memory timings
  • System Controller Unit (SCU) firmware
  • ARM Trusted Firmware (ATF)
  • Potential Cortex-M4 auxiliary firmware

When these components are updated, they may add new functionality and improve existing low-level functionality to be leveraged by the OS(1).

Boot Stability Concerns

The documentation specifically warns that “skipping the step of upgrading the OS to the latest version in the series before updating the bootloader may cause some devices (e.g., the verdin-imx8mp) to hang during boot”(1). While your current setup works, this suggests potential stability issues.

Known Functionality Regressions

There are documented cases where certain functionality doesn’t work properly with older bootloaders. For example, the EXT4LOAD method for loading M7 firmware was functional in Torizon OS 6 but has been reported as non-functional in Torizon OS 7 with certain bootloader versions(2).

Security Implications

If you’re using or planning to use Secure Boot features, the older bootloader may lack important security hardening modifications that were introduced in newer versions(3). These include:

  • Enhanced command whitelisting
  • Improved kernel command-line protection
  • Better self-overwriting protection

Recommendation

While your current setup appears functional, I recommend updating the bootloader to the version specified for your platform to ensure:

  • Access to all intended features of Torizon OS 7
  • Optimal boot stability
  • Full compatibility with future updates
  • Access to the latest security enhancements

The bootloader update process is well-documented and uses the same A/B partitioning scheme as OS updates for safety(1).

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Greetings @erik.weber,

It is not always strictly required to update the bootloader when updating the major version of the OS. However, we highly recommend it. This is because we do not test the old bootloader against the new OS version, meaning we can’t guarantee it won’t break in the future.

For example, the old bootloader works with 7.6.1 as you said. But, maybe it breaks on 7.7.0, or 7.8.0, etc. We simply can’t guarantee it will continue to work. That is why we recommend users to update the bootloader when updating the major version of the OS, to reduce this possible risk.

In the end the choice is up to you, as well as accepting any such risk.

Best Regards,
Jeremias