/* * This file is based ARM realview platform. * Copyright (C) ARM Limited. * * This file is licensed under the terms of the GNU General Public * License version 2. This program is licensed "as is" without any * warranty of any kind, whether express or implied. */ #ifndef ASMARM_ARCH_SMP_H #define ASMARM_ARCH_SMP_H #include /* This is required to wakeup the secondary core */ extern void u8500_secondary_startup(void); #define hard_smp_processor_id() \ ({ \ unsigned int cpunum; \ __asm__("mrc p15, 0, %0, c0, c0, 5" \ : "=r" (cpunum)); \ cpunum &= 0x0F; \ }) /* * We use IRQ1 as the IPI */ static inline void smp_cross_call(const struct cpumask *mask, int ipi) { gic_raise_softirq(mask, ipi); } #endif