On 11/09/2016 07:02 PM, Alison Wang 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. > - Support loading 32-bit OS with PSCI enabled. > > Changes in v7: > - Move the call for armv8_switch_to_el2_m into the first patch. > > Changes in v6: > - Modified armv8_switch_to_el1(). It will always jump to ep when switching to > AArch64 or AArch32 modes. > - Make other platforms compatible with the new armv8_switch_to_el2() and > armv8_switch_to_el1(). > - Make secondary_switch_to_el1() always jump to ep when switching to AArch64 > or AArch32 modes. > > Changes in v5: > - Modified armv8_switch_to_el2(). It will always jump to ep when switching to > AArch64 or AArch32 modes. > - Make secondary_switch_to_el2() always jump to ep when switching to AArch64 > or AArch32 modes. > > Changes in v4: > - Correct config ARM64_SUPPORT_AARCH32. > - Omit arch and ftaddr arguments. > - Rename "xreg5" to "tmp". > - Use xxx_RES1 to combine all RES1 fields in xxx register. > - Use an immediate cmp directly. > - Use #ifdef for CONFIG_ARM64_SUPPORT_AARCH32. > > Changes in v3: > - Comments the functions and the arguments. > - Rename the real parameters. > - Use the macros instead of the magic values. > - Remove the redundant codes. > - Clean up all of the mess in boot_jump_linux(). > - Add CONFIG_ARM64_SUPPORT_AARCH32 to detect for some ARM64 system doesn't > support AArch32 state. > - Adjust the arguments for armv8_switch_to_el2_m and armv8_switch_to_el1_m. > > Changes in v2: > - armv8_switch_to_el2_aarch32() is removed. armv8_switch_to_el2_m is used > to switch to AArch64 EL2 or AArch32 Hyp. > - armv8_switch_to_el1_aarch32() is removed. armv8_switch_to_el1_m is used > to switch to AArch64 EL1 or AArch32 SVC. > - Support to call armv8_switch_to_el2_m and armv8_switch_to_el1_m. > > ---------------------------------------------------------------- > Alison Wang (3): > armv8: Support loading 32-bit OS in AArch32 execution state
Squashed with Alex Graf's patch "ls2080: efi_loader: Move EL2 switch to function call based version". > armv8: fsl-layerscape: SMP support for loading 32-bit OS > armv8: fsl-layerscape: Support loading 32-bit OS with PSCI enabled > This set is applied to fsl-qoriq, awaiting upstream. Thanks. York _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot