]> xenbits.xensource.com Git - people/julieng/boot-wrapper-aarch64.git/commit
Add support for 32-bit kernel
authorJean-Philippe Brucker <jean-philippe.brucker@arm.com>
Tue, 22 Sep 2015 09:42:15 +0000 (10:42 +0100)
committerMark Rutland <mark.rutland@arm.com>
Wed, 15 Jun 2016 09:27:35 +0000 (10:27 +0100)
commit259bef910fee48a927e4700e9e82f99e94962098
tree480a6ea46677c13399639827bd781435a7b2be1f
parentc311db0c5821f72604bfdaf40c6cbb0b672017c1
Add support for 32-bit kernel

This patch adds an --enable-aarch32-kernel parameter to ./configure,
which enables dropping into AArch32 state at EL2. Notable differences
with AArch64 boot are:

* SCR.RW is set to 0, to declare all lower levels as AArch32,
* SPSR_EL2 has a 32-bit M[4:0] field,
* kernel parameters are different, but we can still put them into x0-x2,
  because those registers are mapped to r0-r2 (ARM ARM v8 D1.20.1)
* SCTLR.CP15BEN is set, to allow the Linux decompressor to keep using
  its legacy CP15 barriers.
* We also need to make sure MMU is disabled at EL1: hyp-stub in arm64
  resets SCTLR_EL1, but the 32-bit hyp-stub doesn't. Leaving SCTRL.M set
  would break hotplug when no hypervisor is present.
* PSCI function ID for CPU_ON differs.

We don't plan to support spin method on 32-bit. PSCI is automatically
enabled by ./configure, and this patch forbids disabling it.

Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Makefile.am
arch/aarch64/boot.S
arch/aarch64/include/asm/cpu.h
arch/aarch64/psci.S
boot_common.c
configure.ac
include/psci.h