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