1/* 2 * 3 * Cloned from linux/arch/arm/mach-realview/headsmp.S 4 * 5 * Copyright (c) 2003 ARM Limited 6 * All Rights Reserved 7 * 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. 11 */ 12#include <linux/linkage.h> 13#include <linux/init.h> 14 15/* 16 * exynos4 specific entry point for secondary CPUs. This provides 17 * a "holding pen" into which all secondary cores are held until we're 18 * ready for them to initialise. 19 */ 20ENTRY(exynos4_secondary_startup) 21 mrc p15, 0, r0, c0, c0, 5 22 and r0, r0, #15 23 adr r4, 1f 24 ldmia r4, {r5, r6} 25 sub r4, r4, r5 26 add r6, r6, r4 27pen: ldr r7, [r6] 28 cmp r7, r0 29 bne pen 30 31 /* 32 * we've been released from the holding pen: secondary_stack 33 * should now contain the SVC stack for this core 34 */ 35 b secondary_startup 36ENDPROC(exynos4_secondary_startup) 37 38 .align 2 391: .long . 40 .long pen_release 41