[U-Boot] [PATCH v8 0/3] armv8: Support loading 32-bit OS in AArch32 execution state

york sun york.sun at nxp.com
Fri Nov 11 17:00:03 CET 2016


On 11/11/2016 05:58 AM, Ryan Harkin wrote:
> Hi Alison,
>
> On 10 November 2016 at 02:49, Alison Wang <b18965 at freescale.com> wrote:
>> This series is to support loading a 32-bit OS, the execution state will change from AArch64 to AArch32 when jumping to kernel. The architecture information will be got through checking FIT image, then U-Boot will load 32-bit OS or 64-bit OS automatically.
>>
>> Spin-table method is used for secondary cores to load 32-bit OS.
>> The architecture information will be got through checking FIT image and saved in the os_arch element of spin-table, then the secondary cores will check os_arch and jump to 32-bit OS or 64-bit OS automatically.
>>
>> PSCI method can also be used for secondary cores to load 32-bit OS.
>> As PSCI and secure monitor firmware framework are enabled, loading 32-bit OS is supported in such case. The default target exception level returned to U-Boot is EL2, so the corresponding work to switch to AArch32 EL2 and jump to 32-bit OS are done in U-Boot and secure firmware together.
>>
>> ---------------------------------------
>> Changes in v8:
>> - Fix the issue when U-Boot is running in EL2 or EL1.
>
> Thanks for sticking with this.  Great news: it works for my setup.
>
> I tested booting an arm64 kernel on FVP Foundation and AEMv8 modes and
> on Juno R0, R1 and R2.  I also tested and Versatile Express TC2 can
> still load it's Aarch32 kernel.
>
> I didn't test running an Aarch32 kernel or any of the new
> functionality on my ARMv8 platforms.
>
> But I checked and the patches are bisect-able on my ARMv8 platforms.
>
> Tested-by: Ryan Harkin <ryan.harkin at linaro.org>
>

Great! Thanks to Ryan and Alison to work this out.

York




More information about the U-Boot mailing list