Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/evbarm/awin Only look at the ID register if we are ...
details: https://anonhg.NetBSD.org/src/rev/42cb18241eb4
branches: trunk
changeset: 333487:42cb18241eb4
user: matt <matt%NetBSD.org@localhost>
date: Wed Nov 05 17:46:51 2014 +0000
description:
Only look at the ID register if we are configured for multiple SoCs.
Make sure that the ID register is dealt with correctly for BE as well.
diffstat:
sys/arch/evbarm/awin/awin_start.S | 21 +++++++++++++++++++--
1 files changed, 19 insertions(+), 2 deletions(-)
diffs (57 lines):
diff -r 3d1c8a7ce5a2 -r 42cb18241eb4 sys/arch/evbarm/awin/awin_start.S
--- a/sys/arch/evbarm/awin/awin_start.S Wed Nov 05 17:03:40 2014 +0000
+++ b/sys/arch/evbarm/awin/awin_start.S Wed Nov 05 17:46:51 2014 +0000
@@ -41,7 +41,7 @@
#include <arm/allwinner/awin_reg.h>
#include <evbarm/awin/platform.h>
-RCSID("$NetBSD: awin_start.S,v 1.5 2014/10/30 01:15:30 jmcneill Exp $")
+RCSID("$NetBSD: awin_start.S,v 1.6 2014/11/05 17:46:51 matt Exp $")
#if defined(VERBOSE_INIT_ARM)
#define XPUTC(n) mov r0, n; bl xputc
@@ -151,26 +151,43 @@
// Make sure the cache is flushed out to RAM for the other CPUs
bl _C_LABEL(armv7_dcache_wbinv_all)
+#if defined(ALLWINNER_A20) + defined(ALLWINNER_A31) + defined(ALLWINNER_A80) > 1
// Read SoC ID
movw r5, #:lower16:(AWIN_CORE_PBASE+AWIN_SRAM_OFFSET)
movt r5, #:upper16:(AWIN_CORE_PBASE+AWIN_SRAM_OFFSET)
ldr r1, [r5, #AWIN_SRAM_VER_REG]
- orr r1, r1, AWIN_SRAM_VER_R_EN
+#ifdef __ARMEB__
+ orr r1, r1, #(AWIN_SRAM_VER_R_EN << 8) # it's bit 15
+#else
+ orr r1, r1, #AWIN_SRAM_VER_R_EN
+#endif
str r1, [r5, #AWIN_SRAM_VER_REG]
dsb
ldr r1, [r5, #AWIN_SRAM_VER_REG]
+#ifdef __ARMEB__
+ rev r1, r1
+#endif
lsr r1, r1, #16
+#endif /* ALLWINNER_A20 + ALLWINNER_A31 + ALLWINNER_A80 > 1 */
// MP init based on SoC ID
#if defined(ALLWINNER_A20)
+# if defined(ALLWINNER_A31) || defined(ALLWINNER_A80)
movw r0, #AWIN_SRAM_VER_KEY_A20
cmp r1, r0
bleq a20_mpinit
+# else
+ bl a20_mpinit
+# endif
#endif
#if defined(ALLWINNER_A31)
+# if defined(ALLWINNER_A20) || defined(ALLWINNER_A80)
movw r0, #AWIN_SRAM_VER_KEY_A31
cmp r1, r0
bleq a31_mpinit
+# else
+ bl a31_mpinit
+# endif
#endif
XPUTC2(#62)
Home |
Main Index |
Thread Index |
Old Index