183014579SKukjin Kim/* 283014579SKukjin Kim * 383014579SKukjin Kim * Cloned from linux/arch/arm/mach-realview/headsmp.S 483014579SKukjin Kim * 583014579SKukjin Kim * Copyright (c) 2003 ARM Limited 683014579SKukjin Kim * All Rights Reserved 783014579SKukjin Kim * 883014579SKukjin Kim * This program is free software; you can redistribute it and/or modify 983014579SKukjin Kim * it under the terms of the GNU General Public License version 2 as 1083014579SKukjin Kim * published by the Free Software Foundation. 1183014579SKukjin Kim */ 1283014579SKukjin Kim#include <linux/linkage.h> 1383014579SKukjin Kim#include <linux/init.h> 1483014579SKukjin Kim 15458ad21dSBen Dooks#include <asm/assembler.h> 16458ad21dSBen Dooks 1783014579SKukjin Kim/* 1883014579SKukjin Kim * exynos4 specific entry point for secondary CPUs. This provides 1983014579SKukjin Kim * a "holding pen" into which all secondary cores are held until we're 2083014579SKukjin Kim * ready for them to initialise. 2183014579SKukjin Kim */ 2283014579SKukjin KimENTRY(exynos4_secondary_startup) 23458ad21dSBen DooksARM_BE8(setend be) 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 39f7597c02SRob HerringENDPROC(exynos4_secondary_startup) 4083014579SKukjin Kim 41f7597c02SRob Herring .align 2 4283014579SKukjin Kim1: .long . 4383014579SKukjin Kim .long pen_release 44