Hello,

On a POWER9 sPAPR machine, the Client Architecture Support (CAS)
negotiation process determines whether the guest operates with an
interrupt controller using the legacy model, as found on POWER8, or in
XIVE exploitation mode, the newer POWER9 interrupt model. This
patchset is a first proposal to add XIVE support in the sPAPR machine.

Tested with a QEMU XIVE model for sPAPR machine and with the Power
hypervisor.

Code is here:

  https://github.com/legoater/linux/commits/xive
  https://github.com/legoater/qemu/commits/xive       

Thanks,

C.

Changes since RFC :

 - renamed backend to 'spapr'
 - fixed hotplug support
 - fixed kexec support
 - fixed src_chip value (XIVE_INVALID_CHIP_ID)
 - added doorbell support
 - added some debug logs
 - added  H_INT_ESB hcall
 - took into account '/ibm,plat-res-int-priorities'
 - fixed WARNING in xive_find_target_in_mask()

Cédric Le Goater (10):
  powerpc/xive: fix OV5_XIVE_EXPLOIT bits
  powerpc/xive: guest exploitation of the XIVE interrupt controller
  powerpc/xive: rename xive_poke_esb in xive_esb_read
  powerpc/xive: introduce xive_esb_write
  powerpc/xive: add the HW IRQ number under xive_irq_data
  powerpc/xive: introduce H_INT_ESB hcall
  powerpc/xive: add XIVE exploitation mode to CAS
  powerpc/xive: take into account '/ibm,plat-res-int-priorities'
  powerpc/xive: improve debugging macros
  powerpc/xive: fix the size of the cpumask used in
    xive_find_target_in_mask()

 arch/powerpc/include/asm/hvcall.h            |  13 +-
 arch/powerpc/include/asm/prom.h              |   3 +-
 arch/powerpc/include/asm/xive.h              |   4 +
 arch/powerpc/kernel/prom_init.c              |  15 +-
 arch/powerpc/platforms/pseries/Kconfig       |   1 +
 arch/powerpc/platforms/pseries/hotplug-cpu.c |  10 +-
 arch/powerpc/platforms/pseries/kexec.c       |   6 +-
 arch/powerpc/platforms/pseries/setup.c       |   8 +-
 arch/powerpc/platforms/pseries/smp.c         |  32 +-
 arch/powerpc/sysdev/xive/Kconfig             |   5 +
 arch/powerpc/sysdev/xive/Makefile            |   1 +
 arch/powerpc/sysdev/xive/common.c            |  49 +-
 arch/powerpc/sysdev/xive/native.c            |   2 +
 arch/powerpc/sysdev/xive/spapr.c             | 658 +++++++++++++++++++++++++++
 arch/powerpc/sysdev/xive/xive-internal.h     |   1 +
 15 files changed, 778 insertions(+), 30 deletions(-)
 create mode 100644 arch/powerpc/sysdev/xive/spapr.c

-- 
2.7.5

Reply via email to