Due to popular demand, I got involved in the dirty arts of SMP
programming :). This patch set adds support for the MPC8544DS board
(e500v2) to run with up to 32 virtual CPUs.

This works fine with emulation and Linux guests. It also works with
KVM when disabling the DEC trick in ppc_spin.c - something seems to
be broken in KVM there.

For non-Linux guests, TLB invalidation broadcasting is still missing,
but for now this is enough to get Linux up and running.

I've used the chance while touching the code to also clean up ugly
code that just diverged over time between the 3 KVM capable PPC
targets (frequency device-tree entries). They're intertwined with
this series, but I hope not too hard to understand, so they don't
hurt being there.

Alexander Graf (23):
  PPC: Add secondary CPU spinning code
  PPC: Move openpic to target specific code compilation
  PPC: Add CPU definitions for up to 32 guest CPUs
  PPC: Add CPU local MMIO regions to MPIC
  PPC: Extend MPIC MMIO range
  PPC: Fix IPI support in MPIC
  PPC: Remove cINT code from MPIC
  PPC: Bump MPIC up to 32 supported CPUs
  PPC: E500: create multiple envs
  PPC: E500: Generate IRQ lines for many CPUs
  PPC: E500: Use spin code for secondary CPUs
  device tree: add nop_node
  PPC: bamboo: Move host fdt copy to target
  PPC: KVM: Add generic function to read host clockfreq
  PPC: E500: Use generic kvm function for freq
  PPC: E500: Remove mpc8544_copy_soc_cell
  PPC: bamboo: Use kvm api for freq and clock frequencies
  PPC: KVM: Remove kvmppc_read_host_property
  PPC: KVM: Add stubs for kvm helper functions
  PPC: E500: Update freqs for all CPUs
  PPC: E500: Remove unneeded CPU nodes
  PPC: E500: Update cpu-release-addr property in cpu nodes
  PPC: E500: Bump CPU count to 32

 Makefile.objs          |    1 -
 Makefile.target        |    2 +
 device_tree.c          |   11 ++
 device_tree.h          |    1 +
 hw/openpic.c           |  148 ++++++++++------
 hw/ppc440_bamboo.c     |   16 ++-
 hw/ppce500_mpc8544ds.c |  159 +++++++++---------
 pc-bios/mpc8544ds.dtb  |  Bin 2277 -> 9699 bytes
 pc-bios/mpc8544ds.dts  |  437 ++++++++++++++++++++++++++++++++++++++++++++++++
 pc-bios/ppc_spin.c     |   97 +++++++++++
 pc-bios/ppc_spin.elf   |  Bin 0 -> 66553 bytes
 target-ppc/kvm.c       |   65 +++++++
 target-ppc/kvm_ppc.c   |   65 -------
 target-ppc/kvm_ppc.h   |   39 +++--
 14 files changed, 823 insertions(+), 218 deletions(-)
 create mode 100644 pc-bios/ppc_spin.c
 create mode 100755 pc-bios/ppc_spin.elf


Reply via email to