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-10-08  6:47 Alison Wang
  0 siblings, 0 replies; 3+ 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] 3+ messages in thread

* [U-Boot] [PATCH v6 0/2] armv8: Support loading 32-bit OS in AArch32 execution state
  2016-09-09  8:44 Alison Wang
@ 2016-10-05 19:00 ` york sun
  0 siblings, 0 replies; 3+ messages in thread
From: york sun @ 2016-10-05 19:00 UTC (permalink / raw)
  To: u-boot

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

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

* [U-Boot] [PATCH v6 0/2] armv8: Support loading 32-bit OS in AArch32 execution state
@ 2016-09-09  8:44 Alison Wang
  2016-10-05 19:00 ` york sun
  0 siblings, 1 reply; 3+ 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] 3+ messages in thread

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

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-08  6:47 [U-Boot] [PATCH v6 0/2] armv8: Support loading 32-bit OS in AArch32 execution state Alison Wang
  -- strict thread matches above, loose matches on Subject: below --
2016-09-09  8:44 Alison Wang
2016-10-05 19:00 ` york sun

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.