xref: /openbmc/linux/arch/arm/mach-mvebu/headsmp-a9.S (revision 0e2be4c1)
11ee89e22SGregory CLEMENT/*
21ee89e22SGregory CLEMENT * SMP support: Entry point for secondary CPUs of Marvell EBU
31ee89e22SGregory CLEMENT * Cortex-A9 based SOCs (Armada 375 and Armada 38x).
41ee89e22SGregory CLEMENT *
51ee89e22SGregory CLEMENT * Copyright (C) 2014 Marvell
61ee89e22SGregory CLEMENT *
71ee89e22SGregory CLEMENT * Gregory CLEMENT <gregory.clement@free-electrons.com>
81ee89e22SGregory CLEMENT * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
91ee89e22SGregory CLEMENT *
101ee89e22SGregory CLEMENT * This file is licensed under the terms of the GNU General Public
111ee89e22SGregory CLEMENT * License version 2.  This program is licensed "as is" without any
121ee89e22SGregory CLEMENT * warranty of any kind, whether express or implied.
131ee89e22SGregory CLEMENT */
141ee89e22SGregory CLEMENT
151ee89e22SGregory CLEMENT#include <linux/linkage.h>
161ee89e22SGregory CLEMENT#include <linux/init.h>
171ee89e22SGregory CLEMENT
180e2be4c1SThomas Petazzoni#include <asm/assembler.h>
190e2be4c1SThomas Petazzoni
201ee89e22SGregory CLEMENT	__CPUINIT
2187384cc0SGregory CLEMENT#define CPU_RESUME_ADDR_REG 0xf10182d4
2287384cc0SGregory CLEMENT
2387384cc0SGregory CLEMENT.global armada_375_smp_cpu1_enable_code_start
2487384cc0SGregory CLEMENT.global armada_375_smp_cpu1_enable_code_end
2587384cc0SGregory CLEMENT
2687384cc0SGregory CLEMENTarmada_375_smp_cpu1_enable_code_start:
270e2be4c1SThomas PetazzoniARM_BE8(setend	be)
280e2be4c1SThomas Petazzoni	adr     r0, 1f
290e2be4c1SThomas Petazzoni	ldr	r0, [r0]
3087384cc0SGregory CLEMENT	ldr     r1, [r0]
310e2be4c1SThomas PetazzoniARM_BE8(rev	r1, r1)
3287384cc0SGregory CLEMENT	mov     pc, r1
330e2be4c1SThomas Petazzoni1:
3487384cc0SGregory CLEMENT	.word   CPU_RESUME_ADDR_REG
3587384cc0SGregory CLEMENTarmada_375_smp_cpu1_enable_code_end:
3687384cc0SGregory CLEMENT
371ee89e22SGregory CLEMENTENTRY(mvebu_cortex_a9_secondary_startup)
380e2be4c1SThomas PetazzoniARM_BE8(setend	be)
391ee89e22SGregory CLEMENT	bl      v7_invalidate_l1
401ee89e22SGregory CLEMENT	b	secondary_startup
411ee89e22SGregory CLEMENTENDPROC(mvebu_cortex_a9_secondary_startup)
42