summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorten Rasmussen <Morten.Rasmussen@arm.com>2012-08-06 15:38:39 +0100
committerMarc Zyngier <marc.zyngier@arm.com>2012-08-08 18:08:19 +0100
commite7ae96aefcd7ed8985ac85dc5e30bb0e6fd89671 (patch)
tree17b9d57cf22d5bb9d69688f42a853bbf2f8e1ed2
parente2320bc0892503f1e1af5104884320506d5a3553 (diff)
Adds support for big.LITTLE MP booting.bL-MP-support
-rw-r--r--Makefile1
-rw-r--r--boot.S21
2 files changed, 20 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 14091bf..558f820 100644
--- a/Makefile
+++ b/Makefile
@@ -27,6 +27,7 @@ CPPFLAGS += -DUSE_INITRD
CPPFLAGS += -DVEXPRESS
CPPFLAGS += -DSMP
CPPFLAGS += -march=armv7-a
+CPPFLAGS += -DCCI
# MPS (Cortex-M3) definitions
#CPPFLAGS += -DCORTEX_M
diff --git a/boot.S b/boot.S
index a74784f..6838e20 100644
--- a/boot.S
+++ b/boot.S
@@ -25,12 +25,13 @@ _start:
mcr p15, 0, r0, c14, c0, 0 @ CNTFRQ
1:
#endif
+
@
@ CPU initialisation
@
mrc p15, 0, r0, c0, c0, 5 @ MPIDR (ARMv7 only)
- and r0, r0, #15 @ CPU number
- cmp r0, #0 @ primary CPU?
+ bfc r0, #24, #8 @ CPU number
+ cmp r0, #0 @ primary CPU?
beq 2f
@
@@ -53,6 +54,7 @@ _start:
ldr r1, [r0]
cmp r1, #0
beq 1b
+
mov pc, r1 @ branch to the given address
#endif
@@ -73,6 +75,21 @@ _start:
orr r1, #0x0001 @ cr
str r1, [r0, #0x30]
+#ifdef CCI
+ @
+ @ Turn on CCI snoops
+ @
+ mov r3, #3
+ ldr r4, =0x2c090000
+ mov r5, #0x4000 @ A15
+ str r3, [r4, r5]
+ mov r5, #0x5000 @ A7
+ str r3, [r4, r5]
+1: ldr r3, [r4, #0xc] @ status reg
+ tst r3, #1
+ bne 1b
+#endif
+
@
@ Kernel parameters
@