[PATCH 00/19] MIPS: Initial multi-cluster support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This series cleans up some MIPS Coherent Processing System (CPS) code,
and then introduces the first portions of support for multi-cluster
systems, which are introduced with CM 3.5 & the MIPS I6500 core. My hope
is that this initial groundwork can go in first, then patches adding
support to the necessary drivers, power management & SMP code can follow
culminating in a later patchset to enable actually booting CPUs in
secondary clusters.

Applies to mips-for-linux-next as of aa9a357f236f.


Paul Burton (19):
  MIPS: CM: Rename mips_cm_base to mips_gcr_base
  MIPS: CM: Specify register size when generating accessors
  MIPS: CM: Use BIT/GENMASK for register fields, order & drop shifts
  MIPS: CPC: Use common CPS accessor generation macros
  MIPS: CPC: Use BIT/GENMASK for register fields, order & drop shifts
  MIPS: CPS: Introduce register modify (set/clear/change) accessors
  MIPS: CPS: Use change_*, set_* & clear_* where appropriate
  MIPS: CPS: Add CM/CPC 3.5 register definitions
  MIPS: Add accessor & bit definitions for GlobalNumber
  MIPS: CPS: Use GlobalNumber macros rather than magic numbers
  MIPS: Abstract CPU core & VP(E) ID access through accessor functions
  MIPS: Store core & VP IDs in GlobalNumber-style variable
  MIPS: Unify checks for sibling CPUs
  MIPS: Add CPU cluster number accessors
  MIPS: CM: Add cluster & block args to mips_cm_lock_other()
  MIPS: SMP: Allow boot_secondary SMP op to return errors
  MIPS: CPS: Have asm/mips-cps.h include CM & CPC headers
  MIPS: CPS: Cluster support for topology functions
  MIPS: CPS: Detect CPUs in secondary clusters

 arch/mips/cavium-octeon/smp.c         |   8 +-
 arch/mips/include/asm/cpu-info.h      |  62 +++-
 arch/mips/include/asm/mips-cm.h       | 567 +++++++++++++++-------------------
 arch/mips/include/asm/mips-cpc.h      | 177 ++++++-----
 arch/mips/include/asm/mips-cps.h      | 239 ++++++++++++++
 arch/mips/include/asm/mipsregs.h      |  13 +
 arch/mips/include/asm/smp-ops.h       |   4 +-
 arch/mips/include/asm/topology.h      |   2 +-
 arch/mips/kernel/cps-vec.S            |   4 +-
 arch/mips/kernel/cpu-probe.c          |  39 ++-
 arch/mips/kernel/mips-cm.c            |  94 +++---
 arch/mips/kernel/mips-cpc.c           |  17 +-
 arch/mips/kernel/pm-cps.c             |  15 +-
 arch/mips/kernel/proc.c               |   6 +-
 arch/mips/kernel/smp-bmips.c          |   6 +-
 arch/mips/kernel/smp-cmp.c            |   3 +-
 arch/mips/kernel/smp-cps.c            | 145 +++++----
 arch/mips/kernel/smp-mt.c             |   6 +-
 arch/mips/kernel/smp-up.c             |   3 +-
 arch/mips/kernel/smp.c                |  20 +-
 arch/mips/kernel/traps.c              |  11 +-
 arch/mips/loongson64/loongson-3/smp.c |  14 +-
 arch/mips/mm/c-r4k.c                  |   2 +-
 arch/mips/mm/sc-mips.c                |  47 ++-
 arch/mips/mti-malta/malta-dtshim.c    |   4 +-
 arch/mips/mti-malta/malta-init.c      |   3 +-
 arch/mips/mti-malta/malta-int.c       |   1 -
 arch/mips/mti-malta/malta-setup.c     |   4 +-
 arch/mips/netlogic/common/smp.c       |   6 +-
 arch/mips/oprofile/op_model_mipsxx.c  |   4 +-
 arch/mips/paravirt/paravirt-smp.c     |   3 +-
 arch/mips/pci/pci-malta.c             |   6 +-
 arch/mips/pistachio/init.c            |   3 +-
 arch/mips/ralink/mt7621.c             |   5 +-
 arch/mips/sgi-ip27/ip27-smp.c         |   3 +-
 arch/mips/sibyte/bcm1480/smp.c        |   3 +-
 arch/mips/sibyte/sb1250/smp.c         |   3 +-
 arch/mips/vdso/gettimeofday.c         |   1 -
 drivers/cpuidle/cpuidle-cps.c         |   2 +-
 drivers/irqchip/irq-mips-cpu.c        |   2 +-
 drivers/irqchip/irq-mips-gic.c        |   6 +-
 41 files changed, 922 insertions(+), 641 deletions(-)
 create mode 100644 arch/mips/include/asm/mips-cps.h

-- 
2.14.0





[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux