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 the latest 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 v2 : - changed H_INT_SYNC hcall to reflect new api from the specs - added some Reviewed-by's Changes since v1 : - introduced a common subroutine xive_queue_page_alloc() - introduced a xive_teardown_cpu() routine - removed P9 doorbell support when xive is enabled. - fixed xive_esb_read() naming - fixed XIVE mode parsing in CAS (just got the final specs) 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 (8): powerpc/xive: introduce a common routine xive_queue_page_alloc() 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: improve debugging macros arch/powerpc/include/asm/hvcall.h | 13 +- arch/powerpc/include/asm/prom.h | 5 +- arch/powerpc/include/asm/xive.h | 5 + arch/powerpc/kernel/prom_init.c | 34 +- arch/powerpc/platforms/pseries/Kconfig | 1 + arch/powerpc/platforms/pseries/hotplug-cpu.c | 11 +- arch/powerpc/platforms/pseries/kexec.c | 6 +- arch/powerpc/platforms/pseries/setup.c | 8 +- arch/powerpc/platforms/pseries/smp.c | 27 +- arch/powerpc/sysdev/xive/Kconfig | 5 + arch/powerpc/sysdev/xive/Makefile | 1 + arch/powerpc/sysdev/xive/common.c | 76 ++- arch/powerpc/sysdev/xive/native.c | 18 +- arch/powerpc/sysdev/xive/spapr.c | 662 +++++++++++++++++++++++++++ arch/powerpc/sysdev/xive/xive-internal.h | 7 + 15 files changed, 844 insertions(+), 35 deletions(-) create mode 100644 arch/powerpc/sysdev/xive/spapr.c -- 2.13.5