From mboxrd@z Thu Jan 1 00:00:00 1970 From: york sun Date: Wed, 5 Oct 2016 19:00:13 +0000 Subject: [U-Boot] [PATCH v6 0/2] armv8: Support loading 32-bit OS in AArch32 execution state References: <1473410650-34445-1-git-send-email-b18965@freescale.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 09/09/2016 01:56 AM, 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. > > --------------------------------------- > 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(). > > 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 (2): > armv8: Support loading 32-bit OS in AArch32 execution state > armv8: fsl-layerscape: SMP support for loading 32-bit OS Alison, The change overall is OK, but the way you split the patches is not. If you apply the first patch and then compile, you will see all our armv8 platforms are broken. You changed the definition of macro armv8_switch_to_el2_m in the first patch, but you change the call in the second patch. York