summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2016-05-01 22:48:30 +0100
committerAndre Przywara <andre.przywara@arm.com>2016-06-02 01:29:47 +0100
commit44633abadb46ecf9bf661591e48a88f3e2d652ec (patch)
tree5005370a7c1b5d5f56c0b0a012d5611f13a5bc1f
parent6df6f935eaf55bf6938a4479e14b7cc06d36cce2 (diff)
sun50i: enter U-Boot in AArch64
Drop back into non-secure world into the AArch64 state now. This allows U-Boot to run in 64-bit mode, so no need to call back into the firmware to eventually launch 64-bit kernels. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-rw-r--r--plat/sun50iw1p1/aarch64/sunxi_common.c3
-rw-r--r--plat/sun50iw1p1/bl31_sunxi_setup.c4
2 files changed, 2 insertions, 5 deletions
diff --git a/plat/sun50iw1p1/aarch64/sunxi_common.c b/plat/sun50iw1p1/aarch64/sunxi_common.c
index ded47a7..20d185a 100644
--- a/plat/sun50iw1p1/aarch64/sunxi_common.c
+++ b/plat/sun50iw1p1/aarch64/sunxi_common.c
@@ -126,9 +126,6 @@ uint32_t sunxi_get_spsr_for_bl33_entry(int aarch)
switch (aarch) {
case 32:
- /* HACK: keep entering U-Boot in SVC for now */
- mode = MODE32_svc;
-
spsr = SPSR_MODE32(mode, SPSR_T_ARM, SPSR_E_LITTLE,
DISABLE_ALL_EXCEPTIONS);
break;
diff --git a/plat/sun50iw1p1/bl31_sunxi_setup.c b/plat/sun50iw1p1/bl31_sunxi_setup.c
index 4096353..ab40114 100644
--- a/plat/sun50iw1p1/bl31_sunxi_setup.c
+++ b/plat/sun50iw1p1/bl31_sunxi_setup.c
@@ -155,7 +155,7 @@ void bl31_early_platform_setup(bl31_params_t *from_bl2,
* is located and the entry state information
*/
bl33_image_ep_info.pc = plat_get_ns_image_entrypoint();
- bl33_image_ep_info.spsr = sunxi_get_spsr_for_bl33_entry(32);
+ bl33_image_ep_info.spsr = sunxi_get_spsr_for_bl33_entry(64);
SET_SECURITY_STATE(bl33_image_ep_info.h.attr, NON_SECURE);
#else
@@ -183,7 +183,7 @@ void bl31_early_platform_setup(bl31_params_t *from_bl2,
* is located and the entry state information
*/
bl33_image_ep_info.pc = plat_get_ns_image_entrypoint();
- bl33_image_ep_info.spsr = sunxi_get_spsr_for_bl33_entry(32);
+ bl33_image_ep_info.spsr = sunxi_get_spsr_for_bl33_entry(64);
SET_SECURITY_STATE(bl33_image_ep_info.h.attr, NON_SECURE);