183014579SKukjin Kim/* 283014579SKukjin Kim * linux/arch/arm/mach-exynos4/headsmp.S 383014579SKukjin Kim * 483014579SKukjin Kim * Cloned from linux/arch/arm/mach-realview/headsmp.S 583014579SKukjin Kim * 683014579SKukjin Kim * Copyright (c) 2003 ARM Limited 783014579SKukjin Kim * All Rights Reserved 883014579SKukjin Kim * 983014579SKukjin Kim * This program is free software; you can redistribute it and/or modify 1083014579SKukjin Kim * it under the terms of the GNU General Public License version 2 as 1183014579SKukjin Kim * published by the Free Software Foundation. 1283014579SKukjin Kim */ 1383014579SKukjin Kim#include <linux/linkage.h> 1483014579SKukjin Kim#include <linux/init.h> 1583014579SKukjin Kim 1683014579SKukjin Kim __CPUINIT 1783014579SKukjin Kim 1883014579SKukjin Kim/* 1983014579SKukjin Kim * exynos4 specific entry point for secondary CPUs. This provides 2083014579SKukjin Kim * a "holding pen" into which all secondary cores are held until we're 2183014579SKukjin Kim * ready for them to initialise. 2283014579SKukjin Kim */ 2383014579SKukjin KimENTRY(exynos4_secondary_startup) 2483014579SKukjin Kim mrc p15, 0, r0, c0, c0, 5 2583014579SKukjin Kim and r0, r0, #15 2683014579SKukjin Kim adr r4, 1f 2783014579SKukjin Kim ldmia r4, {r5, r6} 2883014579SKukjin Kim sub r4, r4, r5 2983014579SKukjin Kim add r6, r6, r4 3083014579SKukjin Kimpen: ldr r7, [r6] 3183014579SKukjin Kim cmp r7, r0 3283014579SKukjin Kim bne pen 3383014579SKukjin Kim 3483014579SKukjin Kim /* 3583014579SKukjin Kim * we've been released from the holding pen: secondary_stack 3683014579SKukjin Kim * should now contain the SVC stack for this core 3783014579SKukjin Kim */ 3883014579SKukjin Kim b secondary_startup 3983014579SKukjin Kim 4083014579SKukjin Kim1: .long . 4183014579SKukjin Kim .long pen_release 42