Switch ARMv7 Cortex-A processor to ARM mode right before jumping to target

Peter Robinson pbrobinson at gmail.com
Tue Apr 7 10:52:31 CEST 2026


Hi Anatol,

> I’m facing an instruction set mismatch issue on ARMv7. The system uses
> a proprietary U-Boot–based bootloader (based on v2022.07) that runs in
> ARM mode and then jumps directly to my application. The application
> itself (Zephyr-based) is built in Thumb mode by default, which leads
> to problems when execution is handed off.
>
> Unfortunately, I cannot modify or rebuild the U-Boot binaries, as they
> are closed-source in this case. The only control I have is through the
> U-Boot environment (uboot_env).
>
> Given these constraints, is there any way - via U-Boot environment
> configuration - to switch the processor into Thumb mode right before
> jumping to the application?
>
> If not, are there any recommended workarounds for handling this ARM
> <=> Thumb transition when the bootloader itself cannot be modified?
>
> Thanks in advance for your help!

So unfortunately you're going to need to go to the vendor to solve
that problem, there's not much we can do, we don't know what changes
the vendor has made, or even what options they've enabled/disabled.

Do note that U-Boot is GPL software so they should be releasing it as
open source, U-Boot isn't closed-source as you state, the vendor can't
just pick and choose, the requirements of the license are very clear
if they wish to use U-Boot.

Peter


More information about the U-Boot mailing list