platsmp.c 782 B

12345678910111213141516171819202122232425262728293031
  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. void __init shmobile_smp_init_cpus(unsigned int ncores)
  17. {
  18. unsigned int i;
  19. if (ncores > nr_cpu_ids) {
  20. pr_warn("SMP: %u cores greater than maximum (%u), clipping\n",
  21. ncores, nr_cpu_ids);
  22. ncores = nr_cpu_ids;
  23. }
  24. for (i = 0; i < ncores; i++)
  25. set_cpu_possible(i, true);
  26. set_smp_cross_call(gic_raise_softirq);
  27. }