All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alison Wang <b18965@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v6 0/2] armv8: Support loading 32-bit OS in AArch32 execution state
Date: Fri, 9 Sep 2016 16:44:08 +0800	[thread overview]
Message-ID: <1473410650-34445-1-git-send-email-b18965@freescale.com> (raw)

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(-)

             reply	other threads:[~2016-09-09  8:44 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-09  8:44 Alison Wang [this message]
2016-09-09  8:44 ` [U-Boot] [PATCH v6 1/2] armv8: Support loading 32-bit OS in AArch32 execution state 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1473410650-34445-1-git-send-email-b18965@freescale.com \
    --to=b18965@freescale.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.