[Skiboot] [PATCH 00/22] xive: new interfaces, fixes and cleanups in a new driver

Cédric Le Goater clg at kaod.org
Wed Sep 4 03:03:51 AEST 2019


This series defines the high level XIVE interface for other drivers
using interrupts in OPAL : PHBs, PSI, NPU, and an operation backend to
prepare ground for the new processors and drivers (P10). The first use
of this backend is for a new P9 driver, which includes cleanups and

The current driver offers a XICS emulation layer for older kernel
without XIVE native support. This emulation layer adds extra
complexity to the driver and a removal is proposed in the last
patches, but only in the new driver. Older kernels might still be
using it, none that are officially supported for P9.

The old XIVE driver is not removed, even if not used anymore, as it
would be interesting to keep it for the XICS emulation layer. We need
to find a way to activate it at runtime (I don't think we can use the
NVRAM though) or restrict its use to the XICS layer.

The new P10 driver is based on top of these new interfaces but it is
too early to include it.

Comments on how 



Cédric Le Goater (22):
  xive: introduce header files for the registers
  xive: minor cleanup of the interface
  xive: use MMIO access for VC_EQC_CONFIG
  xive: introduce an operation backend for current and new drivers
  xive/p9: add a new driver
  xive/p9: remove code not using indirect mode
  xive/p9: remove code not using block group mode
  xive/p9: remove dead code
  xive/p9: obsolete OPAL_XIVE_IRQ_*_VIA_FW flags
  xive/p9: obsolete OPAL_XIVE_IRQ_SHIFT_BUG flags
  xive/p9: fix EQ bitmap assignment when allocation fails
  xive/p9: fix silent escalation EQ setup
  xive/p9: cleanup all EQs when a VP block is freed.
  xive/p9: remove ACK# setting in the NVT
  xive/p9: introduce NVT_SHIFT
  xive/p9: remove XIVE_INT_SAFETY_GAP
  xive/p9: use predefined bitmasks to manipulate EQ addresses
  xive/p9: introduce the ESB magic MMIO offsets
  xive/p9: remove XICS emulation
  xive/p9: remove percpu logging
  xive/p9: remove XICS emulation OPAL calls
  xive/p9: rework IRQ number encoding

 include/interrupts.h   |    1 -
 include/opal-api.h     |    6 +-
 include/skiboot.h      |    1 -
 include/xive-p9-regs.h |  399 ++++
 include/xive-regs.h    |  115 ++
 include/xive.h         |  488 +----
 core/fast-reboot.c     |    2 +-
 hw/phb4.c              |    1 +
 hw/slw.c               |    1 +
 hw/xive-p9.c           | 4081 ++++++++++++++++++++++++++++++++++++++++
 hw/xive.c              |  151 +-
 hw/Makefile.inc        |    2 +-
 12 files changed, 4754 insertions(+), 494 deletions(-)
 create mode 100644 include/xive-p9-regs.h
 create mode 100644 include/xive-regs.h
 create mode 100644 hw/xive-p9.c


More information about the Skiboot mailing list