[PATCH 0/9] ppc/pnv: Introduce the XIVE2 and PHB5 controllers for the POWER10 chip

Cédric Le Goater posted 9 patches 4 years ago
Test asan passed
Test docker-mingw@fedora passed
Test checkpatch passed
Test FreeBSD passed
Test docker-quick@centos7 passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200513151109.453530-1-clg@kaod.org
hw/intc/pnv_xive2_regs.h       |  428 +++++++
include/hw/pci-host/pnv_phb4.h |   11 +
include/hw/ppc/pnv.h           |   30 +
include/hw/ppc/pnv_occ.h       |    2 +
include/hw/ppc/pnv_xive.h      |   71 ++
include/hw/ppc/pnv_xscom.h     |   12 +
include/hw/ppc/xive.h          |    8 +
include/hw/ppc/xive2.h         |   93 ++
include/hw/ppc/xive2_regs.h    |  198 ++++
hw/intc/pnv_xive2.c            | 2026 ++++++++++++++++++++++++++++++++
hw/intc/spapr_xive_kvm.c       |    8 +-
hw/intc/xive.c                 |   14 +-
hw/intc/xive2.c                |  756 ++++++++++++
hw/pci-host/pnv_phb4_pec.c     |   44 +
hw/ppc/pnv.c                   |  243 +++-
hw/ppc/pnv_occ.c               |   17 +
hw/ppc/pnv_psi.c               |   32 +-
hw/intc/Makefile.objs          |    4 +-
18 files changed, 3974 insertions(+), 23 deletions(-)
create mode 100644 hw/intc/pnv_xive2_regs.h
create mode 100644 include/hw/ppc/xive2.h
create mode 100644 include/hw/ppc/xive2_regs.h
create mode 100644 hw/intc/pnv_xive2.c
create mode 100644 hw/intc/xive2.c
[PATCH 0/9] ppc/pnv: Introduce the XIVE2 and PHB5 controllers for the POWER10 chip
Posted by Cédric Le Goater 4 years ago
Hello,

This series completes the PowerNV POWER10 machine with the XIVE2
interrupt controller and the PHB5 PCI host bridge controller.

The XIVE2 interrupt controller of the POWER10 processor follows the
same logic than on POWER9 but the HW interface has been largely
reviewed. To avoid adding too much complexity in the P9 XIVE models,
a new XIVE2 core framework is introduced.

The PHB5 and PHB4 controllers are very similar. Not much changes there
apart from the mapping addresses and ids. There is more to come on
PHB5 regarding interrupt offload on the interrupt controller, but this
is for another round.

This series also adds basic OCC and CPU Quad models which are not very
much exercised by the firmware.

Thanks,

C.

Cédric Le Goater (9):
  ppc/xive: Export PQ get/set routines
  ppc/xive: Export xive_presenter_notify()
  ppc/xive2: Introduce a XIVE2 core framework
  ppc/xive2: Introduce a presenter matching routine
  ppc/pnv: Add a XIVE2 controller to the POWER10 chip.
  ppc/pnv: Add a OCC model for POWER10
  ppc/pnv: Add POWER10 quads
  ppc/pnv: Add model for POWER9 PHB5 PCIe Host bridge
  ppc/psi: Add support for StoreEOI and 64k ESB pages (POWER10)

 hw/intc/pnv_xive2_regs.h       |  428 +++++++
 include/hw/pci-host/pnv_phb4.h |   11 +
 include/hw/ppc/pnv.h           |   30 +
 include/hw/ppc/pnv_occ.h       |    2 +
 include/hw/ppc/pnv_xive.h      |   71 ++
 include/hw/ppc/pnv_xscom.h     |   12 +
 include/hw/ppc/xive.h          |    8 +
 include/hw/ppc/xive2.h         |   93 ++
 include/hw/ppc/xive2_regs.h    |  198 ++++
 hw/intc/pnv_xive2.c            | 2026 ++++++++++++++++++++++++++++++++
 hw/intc/spapr_xive_kvm.c       |    8 +-
 hw/intc/xive.c                 |   14 +-
 hw/intc/xive2.c                |  756 ++++++++++++
 hw/pci-host/pnv_phb4_pec.c     |   44 +
 hw/ppc/pnv.c                   |  243 +++-
 hw/ppc/pnv_occ.c               |   17 +
 hw/ppc/pnv_psi.c               |   32 +-
 hw/intc/Makefile.objs          |    4 +-
 18 files changed, 3974 insertions(+), 23 deletions(-)
 create mode 100644 hw/intc/pnv_xive2_regs.h
 create mode 100644 include/hw/ppc/xive2.h
 create mode 100644 include/hw/ppc/xive2_regs.h
 create mode 100644 hw/intc/pnv_xive2.c
 create mode 100644 hw/intc/xive2.c

-- 
2.25.4


Re: [PATCH 0/9] ppc/pnv: Introduce the XIVE2 and PHB5 controllers for the POWER10 chip
Posted by Greg Kurz 3 years, 12 months ago
On Wed, 13 May 2020 17:11:00 +0200
Cédric Le Goater <clg@kaod.org> wrote:

> Hello,
> 
> This series completes the PowerNV POWER10 machine with the XIVE2
> interrupt controller and the PHB5 PCI host bridge controller.
> 
> The XIVE2 interrupt controller of the POWER10 processor follows the
> same logic than on POWER9 but the HW interface has been largely
> reviewed. To avoid adding too much complexity in the P9 XIVE models,
> a new XIVE2 core framework is introduced.
> 
> The PHB5 and PHB4 controllers are very similar. Not much changes there
> apart from the mapping addresses and ids. There is more to come on
> PHB5 regarding interrupt offload on the interrupt controller, but this
> is for another round.
> 
> This series also adds basic OCC and CPU Quad models which are not very
> much exercised by the firmware.
> 
> Thanks,
> 
> C.
> 

This series is huge and it requires great knowledge of the HW, that I don't
have (who does? ;-), to do a real review. I'll stick to find obvious errors
and nits...

> Cédric Le Goater (9):
>   ppc/xive: Export PQ get/set routines
>   ppc/xive: Export xive_presenter_notify()
>   ppc/xive2: Introduce a XIVE2 core framework
>   ppc/xive2: Introduce a presenter matching routine
>   ppc/pnv: Add a XIVE2 controller to the POWER10 chip.
>   ppc/pnv: Add a OCC model for POWER10
>   ppc/pnv: Add POWER10 quads
>   ppc/pnv: Add model for POWER9 PHB5 PCIe Host bridge
>   ppc/psi: Add support for StoreEOI and 64k ESB pages (POWER10)
> 
>  hw/intc/pnv_xive2_regs.h       |  428 +++++++
>  include/hw/pci-host/pnv_phb4.h |   11 +
>  include/hw/ppc/pnv.h           |   30 +
>  include/hw/ppc/pnv_occ.h       |    2 +
>  include/hw/ppc/pnv_xive.h      |   71 ++
>  include/hw/ppc/pnv_xscom.h     |   12 +
>  include/hw/ppc/xive.h          |    8 +
>  include/hw/ppc/xive2.h         |   93 ++
>  include/hw/ppc/xive2_regs.h    |  198 ++++
>  hw/intc/pnv_xive2.c            | 2026 ++++++++++++++++++++++++++++++++
>  hw/intc/spapr_xive_kvm.c       |    8 +-
>  hw/intc/xive.c                 |   14 +-
>  hw/intc/xive2.c                |  756 ++++++++++++
>  hw/pci-host/pnv_phb4_pec.c     |   44 +
>  hw/ppc/pnv.c                   |  243 +++-
>  hw/ppc/pnv_occ.c               |   17 +
>  hw/ppc/pnv_psi.c               |   32 +-
>  hw/intc/Makefile.objs          |    4 +-
>  18 files changed, 3974 insertions(+), 23 deletions(-)
>  create mode 100644 hw/intc/pnv_xive2_regs.h
>  create mode 100644 include/hw/ppc/xive2.h
>  create mode 100644 include/hw/ppc/xive2_regs.h
>  create mode 100644 hw/intc/pnv_xive2.c
>  create mode 100644 hw/intc/xive2.c
>