All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v6 0/2] armv8: Support loading 32-bit OS in AArch32 execution state
@ 2016-09-09  8:44 Alison Wang
  2016-09-09  8:44 ` [U-Boot] [PATCH v6 1/2] " Alison Wang
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Alison Wang @ 2016-09-09  8:44 UTC (permalink / raw)
  To: u-boot

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

 arch/arm/Kconfig                              |   6 ++
 arch/arm/cpu/armv8/fsl-layerscape/lowlevel.S  |  61 ++++++++++++---
 arch/arm/cpu/armv8/fsl-layerscape/mp.c        |  10 +++
 arch/arm/cpu/armv8/start.S                    |   8 ++
 arch/arm/cpu/armv8/transition.S               |   8 +-
 arch/arm/include/asm/arch-fsl-layerscape/mp.h |   6 ++
 arch/arm/include/asm/macro.h                  | 176 +++++++++++++++++++++++++++++++++-----------
 arch/arm/include/asm/system.h                 | 119 +++++++++++++++++++++++++++++-
 arch/arm/lib/bootm.c                          |  45 +++++++++--
 arch/arm/mach-rmobile/lowlevel_init_gen3.S    |   9 ++-
 common/image-fit.c                            |  19 ++++-
 11 files changed, 401 insertions(+), 66 deletions(-)

^ permalink raw reply	[flat|nested] 7+ messages in thread
* [U-Boot] [PATCH v6 0/2] armv8: Support loading 32-bit OS in AArch32 execution state
@ 2016-10-08  6:47 Alison Wang
  0 siblings, 0 replies; 7+ messages in thread
From: Alison Wang @ 2016-10-08  6:47 UTC (permalink / raw)
  To: u-boot



> -----????-----
> ???: york sun [mailto:york.sun at nxp.com]
> ????: Thursday, October 06, 2016 3:00 AM
> ???: Alison Wang <b18965@freescale.com>; agraf at suse.de; Scott Wood
> <scott.wood@nxp.com>; Stuart Yoder <stuart.yoder@nxp.com>; Leo Li
> <leoyang.li@nxp.com>; fenghua at phytium.com.cn; linus.walleij at linaro.org;
> ryan.harkin at linaro.org; monstr at monstr.eu; thomas.ab at samsung.com;
> mk7.kang at samsung.com; u-boot at lists.denx.de
> ??: Jason Jin <jason.jin@nxp.com>
> ??: Re: [PATCH v6 0/2] armv8: Support loading 32-bit OS in AArch32
> execution state
> 
> 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.
[Alison Wang] Sorry for the mistake. I will split the patches correctly
in v7.

Thanks.

Best Regards,
Alison Wang

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-10-08  6:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-09  8:44 [U-Boot] [PATCH v6 0/2] armv8: Support loading 32-bit OS in AArch32 execution state Alison Wang
2016-09-09  8:44 ` [U-Boot] [PATCH v6 1/2] " Alison Wang
2016-09-19 14:24   ` Alexander Graf
2016-09-09  8:44 ` [U-Boot] [PATCH v6 2/2] armv8: fsl-layerscape: SMP support for loading 32-bit OS Alison Wang
2016-09-19 14:27   ` Alexander Graf
2016-10-05 19:00 ` [U-Boot] [PATCH v6 0/2] armv8: Support loading 32-bit OS in AArch32 execution state york sun
2016-10-08  6:47 Alison Wang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.