diff options
author | Morten Rasmussen <Morten.Rasmussen@arm.com> | 2012-08-06 15:38:39 +0100 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2012-08-08 18:08:19 +0100 |
commit | e7ae96aefcd7ed8985ac85dc5e30bb0e6fd89671 (patch) | |
tree | 17b9d57cf22d5bb9d69688f42a853bbf2f8e1ed2 | |
parent | e2320bc0892503f1e1af5104884320506d5a3553 (diff) |
Adds support for big.LITTLE MP booting.bL-MP-support
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | boot.S | 21 |
2 files changed, 20 insertions, 2 deletions
@@ -27,6 +27,7 @@ CPPFLAGS += -DUSE_INITRD CPPFLAGS += -DVEXPRESS CPPFLAGS += -DSMP CPPFLAGS += -march=armv7-a +CPPFLAGS += -DCCI # MPS (Cortex-M3) definitions #CPPFLAGS += -DCORTEX_M @@ -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 @ |