2 * linux/arch/arm/mach-sc/headsmp.S
5 * Copyright (c) 2003 ARM Limited
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
12 #include <linux/linkage.h>
13 #include <linux/init.h>
18 * sci smp specific entry point for secondary CPUs.
19 * This provides a "holding pen" into which all secondary cores are held
20 * until we're ready for them to initialise.
22 ENTRY(sci_secondary_startup)
23 mrc p15, 0, r0, c0, c0, 5
27 /*and r0, r0, #0xFFFFFF*/ /* mpidr is 0xf00 0xf01, 0xf02, 0xf03 */
28 and r0, r0, #15 /* mpidr is 0xf00 0xf01, 0xf02, 0xf03 */
35 and r7, r7, #15/* mpidr is 0xf00 0xf01, 0xf02, 0xf03 */
40 * we've been released from the holding pen: secondary_stack
41 * should now contain the SVC stack for this core
49 ENTRY(sci_shark_enter_lowpower)
50 stmfd sp!, {r4-r12, lr}
52 mrc p15, 0, r1, c1, c0, 0
53 bic r0, r1, #(1 << 2) @disable d-cache
54 mcr p15, 0, r0, c1, c0, 0
56 bl v7_flush_dcache_louis
60 mrc p15, 0, r1, c1, c0, 1
62 mcr p15, 0, r1, c1, c0, 1
99 ldmfd sp!, {r4-r12, pc}
100 ENDPROC(sci_shark_enter_lowpower)