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