summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIcenowy Zheng <[email protected]>2018-07-21 16:20:22 +0800
committerJagan Teki <[email protected]>2018-07-31 11:38:13 +0530
commit80197801f4786fef257119981c977ed6debdf539 (patch)
tree30f283b201dc92b045cc09a8bd9772bd6e94bcd8
parente77b7496c603a0cba079795ec5e181ce18bbd2fd (diff)
sunxi: change RMR64's RVBAR address for H6
Allwinner H6 has a different RVBAR address with A64/H5. Add conditional RVBAR configuration into the code which does RMR switch. Signed-off-by: Icenowy Zheng <[email protected]> Reviewed-by: Andre Przywara <[email protected]> Acked-by: Maxime Ripard <[email protected]> Reviewed-by: Jagan Teki <[email protected]> Tested-by: Jagan Teki <[email protected]>
-rw-r--r--arch/arm/include/asm/arch-sunxi/boot0.h4
-rw-r--r--arch/arm/mach-sunxi/rmr_switch.S6
2 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/include/asm/arch-sunxi/boot0.h b/arch/arm/include/asm/arch-sunxi/boot0.h
index c826fec4152..54c144afd8c 100644
--- a/arch/arm/include/asm/arch-sunxi/boot0.h
+++ b/arch/arm/include/asm/arch-sunxi/boot0.h
@@ -26,7 +26,11 @@
.word 0xf57ff06f // isb sy
.word 0xe320f003 // wfi
.word 0xeafffffd // b @wfi
+#ifndef CONFIG_MACH_SUN50I_H6
.word 0x017000a0 // writeable RVBAR mapping address
+#else
+ .word 0x09010040 // writeable RVBAR mapping address
+#endif
#ifdef CONFIG_SPL_BUILD
.word CONFIG_SPL_TEXT_BASE
#else
diff --git a/arch/arm/mach-sunxi/rmr_switch.S b/arch/arm/mach-sunxi/rmr_switch.S
index cefa93001ba..fafd306f95b 100644
--- a/arch/arm/mach-sunxi/rmr_switch.S
+++ b/arch/arm/mach-sunxi/rmr_switch.S
@@ -26,9 +26,15 @@
@ reference and to be able to regenerate a (probably fixed) version of this
@ code found in encoded form in boot0.h.
+#include <config.h>
+
.text
+#ifndef CONFIG_MACH_SUN50I_H6
ldr r1, =0x017000a0 @ MMIO mapped RVBAR[0] register
+#else
+ ldr r1, =0x09010040 @ MMIO mapped RVBAR[0] register
+#endif
ldr r0, =0x57aA7add @ start address, to be replaced
str r0, [r1]
dsb sy