xref: /linux/arch/arm/mach-shmobile/platsmp.c (revision 0d456bad36d42d16022be045c8a53ddbb59ee478)
1 /*
2  * SMP support for R-Mobile / SH-Mobile
3  *
4  * Copyright (C) 2010  Magnus Damm
5  * Copyright (C) 2011  Paul Mundt
6  *
7  * Based on vexpress, Copyright (C) 2002 ARM Ltd, All Rights Reserved
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License version 2 as
11  * published by the Free Software Foundation.
12  */
13 #include <linux/init.h>
14 #include <linux/smp.h>
15 #include <asm/hardware/gic.h>
16 
17 void __init shmobile_smp_init_cpus(unsigned int ncores)
18 {
19 	unsigned int i;
20 
21 	if (ncores > nr_cpu_ids) {
22 		pr_warn("SMP: %u cores greater than maximum (%u), clipping\n",
23 			ncores, nr_cpu_ids);
24 		ncores = nr_cpu_ids;
25 	}
26 
27 	for (i = 0; i < ncores; i++)
28 		set_cpu_possible(i, true);
29 
30 	set_smp_cross_call(gic_raise_softirq);
31 }
32