aboutsummaryrefslogtreecommitdiff
path: root/hw/arm
diff options
context:
space:
mode:
authorEdgar E. Iglesias <edgar.iglesias@xilinx.com>2016-02-03 13:46:33 +0000
committerPeter Maydell <peter.maydell@linaro.org>2016-02-03 13:46:33 +0000
commit48d21a576a9cd5fd223bda416abb68b5c2818b52 (patch)
tree85774194b92bdef7cb35d85dc8b830dacf5d386c /hw/arm
parent6a43e0b6e1f6bcd6b11656967422f4217258200a (diff)
hw/arm: Setup EL1 and EL2 in AArch64 mode for 64bit Linux boots
When booting Linux on AArch64 enabled cores, setup EL1 and EL2 to use AArch64. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/arm')
-rw-r--r--hw/arm/boot.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index 7742dd3cb6..d05a9986ed 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -488,7 +488,9 @@ static void do_cpu_reset(void *opaque)
* adjust.
*/
if (env->aarch64) {
+ env->cp15.scr_el3 |= SCR_RW;
if (arm_feature(env, ARM_FEATURE_EL2)) {
+ env->cp15.hcr_el2 |= HCR_RW;
env->pstate = PSTATE_MODE_EL2h;
} else {
env->pstate = PSTATE_MODE_EL1h;