18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * SMP support: Entry point for secondary CPUs 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Copyright (C) 2012 Marvell 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * Yehuda Yitschak <yehuday@marvell.com> 78c2ecf20Sopenharmony_ci * Gregory CLEMENT <gregory.clement@free-electrons.com> 88c2ecf20Sopenharmony_ci * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 98c2ecf20Sopenharmony_ci * 108c2ecf20Sopenharmony_ci * This file is licensed under the terms of the GNU General Public 118c2ecf20Sopenharmony_ci * License version 2. This program is licensed "as is" without any 128c2ecf20Sopenharmony_ci * warranty of any kind, whether express or implied. 138c2ecf20Sopenharmony_ci * 148c2ecf20Sopenharmony_ci * This file implements the assembly entry point for secondary CPUs in 158c2ecf20Sopenharmony_ci * an SMP kernel. The only thing we need to do is to add the CPU to 168c2ecf20Sopenharmony_ci * the coherency fabric by writing to 2 registers. Currently the base 178c2ecf20Sopenharmony_ci * register addresses are hard coded due to the early initialisation 188c2ecf20Sopenharmony_ci * problems. 198c2ecf20Sopenharmony_ci */ 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci#include <linux/linkage.h> 228c2ecf20Sopenharmony_ci#include <linux/init.h> 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci#include <asm/assembler.h> 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci/* 278c2ecf20Sopenharmony_ci * Armada XP specific entry point for secondary CPUs. 288c2ecf20Sopenharmony_ci * We add the CPU to the coherency fabric and then jump to secondary 298c2ecf20Sopenharmony_ci * startup 308c2ecf20Sopenharmony_ci */ 318c2ecf20Sopenharmony_ciENTRY(armada_xp_secondary_startup) 328c2ecf20Sopenharmony_ci ARM_BE8(setend be ) @ go BE8 if entered LE 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci bl ll_add_cpu_to_smp_group 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci bl ll_enable_coherency 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci b secondary_startup 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ciENDPROC(armada_xp_secondary_startup) 41