qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/19] ppc/pnv: Add support for user created PHB3/PHB4 devices
@ 2021-12-13 13:28 Cédric Le Goater
  2021-12-13 13:28 ` [PATCH v2 01/19] ppc/pnv: Change the maximum of PHB3 devices for Power8NVL Cédric Le Goater
                   ` (19 more replies)
  0 siblings, 20 replies; 29+ messages in thread
From: Cédric Le Goater @ 2021-12-13 13:28 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Frederic Barrat, Daniel Henrique Barboza, Greg Kurz,
	Cédric Le Goater

Hello,

On the POWER8 processor, powernv8 machine, PHB3 devices can simply be
created with :

   -device pnv-phb3,chip-id=0,index=1 

with a maximum of 3 PHB3s per chip, each PHB3 adding a new PCIe bus.

On the POWER9 processor, powernv9 machine, the logic is different. The
the chip comes with 3 PHB4 PECs (PCI Express Controller) and each PEC
can have several PHBs :

  * PEC0 provides 1 PHB  (PHB0)
  * PEC1 provides 2 PHBs (PHB1 and PHB2)
  * PEC2 provides 3 PHBs (PHB3, PHB4 and PHB5)

The PEC devices can be created with :

   -device pnv-phb4-pec,chip-id=0,index=1

And the number of added PHB4 devices depends on the PEC index. Each
PHB4 adds a new PCIe bus.

The following changes are mostly cleanups and improvements of the
PHB3/4 realize routines to enable support. One important change is
related to the way the powernv machine populates the device tree. It
depends on the object hierarchy and it is necessary to reparent user
created devices to the chip they belong to (see PATCH 5). PHB3 is a
little more sophisticated because of its SysBusDevice nature (see
PATCH 6).

It would be preferable for libvirt and user to add one PHB4 (one PCIe
bus) at a time but that's another step. The plan is to merge real soon
the first patches which are required cleanups of the models and give
some more time for the last ones.

Thanks,

C.

Changes in v2:

 - Addressed Frederic's comments 
 - Reworked patchset order to allow pluggable devices at the end.
 
Cédric Le Goater (19):
  ppc/pnv: Change the maximum of PHB3 devices for Power8NVL
  ppc/pnv: Introduce a "chip" property under the PHB3 model
  ppc/pnv: Use the chip class to check the index of PHB3 devices
  ppc/pnv: Drop the "num-phbs" property
  ppc/pnv: Move mapping of the PHB3 CQ regions under pnv_pbcq_realize()
  ppc/pnv: Use QOM hierarchy to scan PHB3 devices
  ppc/pnv: Introduce a num_pecs class attribute for PHB4 PEC devices
  ppc/pnv: Introduce version and device_id class atributes for PHB4
    devices
  ppc/pnv: Introduce a "chip" property under the PHB4 model
  ppc/pnv: Introduce a num_stack class attribute
  ppc/pnv: Compute the PHB index from the PHB4 PEC model
  ppc/pnv: Remove "system-memory" property from PHB4 PEC
  ppc/pnv: Move realize of PEC stacks under the PEC model
  ppc/pnv: Use QOM hierarchy to scan PEC PHB4 devices
  ppc/pnv: Introduce support for user created PHB3 devices
  ppc/pnv: Reparent user created PHB3 devices to the PnvChip
  ppc/pnv: Complete user created PHB3 devices
  ppc/pnv: Introduce support for user created PHB4 devices
  ppc/pnv: Move num_phbs under Pnv8Chip

 include/hw/pci-host/pnv_phb3.h |   3 +
 include/hw/pci-host/pnv_phb4.h |   5 +
 include/hw/ppc/pnv.h           |   7 +-
 hw/pci-host/pnv_phb3.c         |  29 ++++-
 hw/pci-host/pnv_phb3_pbcq.c    |  11 ++
 hw/pci-host/pnv_phb4_pec.c     |  94 ++++++++++++--
 hw/ppc/pnv.c                   | 218 ++++++++++++++++++---------------
 7 files changed, 256 insertions(+), 111 deletions(-)

-- 
2.31.1



^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2022-01-04 10:09 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-13 13:28 [PATCH v2 00/19] ppc/pnv: Add support for user created PHB3/PHB4 devices Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 01/19] ppc/pnv: Change the maximum of PHB3 devices for Power8NVL Cédric Le Goater
2021-12-13 18:30   ` Daniel Henrique Barboza
2021-12-13 13:28 ` [PATCH v2 02/19] ppc/pnv: Introduce a "chip" property under PHB3 Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 03/19] ppc/pnv: Use the chip class to check the index of PHB3 devices Cédric Le Goater
2021-12-13 18:33   ` Daniel Henrique Barboza
2021-12-13 13:28 ` [PATCH v2 04/19] ppc/pnv: Drop the "num-phbs" property Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 05/19] ppc/pnv: Move mapping of the PHB3 CQ regions under pnv_pbcq_realize() Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 06/19] ppc/pnv: Use QOM hierarchy to scan PHB3 devices Cédric Le Goater
2021-12-13 18:37   ` Daniel Henrique Barboza
2021-12-13 13:28 ` [PATCH v2 07/19] ppc/pnv: Introduce a num_pecs class attribute for PHB4 PEC devices Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 08/19] ppc/pnv: Introduce version and device_id class atributes for PHB4 devices Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 09/19] ppc/pnv: Introduce a "chip" property under the PHB4 model Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 10/19] ppc/pnv: Introduce a num_stack class attribute Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 11/19] ppc/pnv: Compute the PHB index from the PHB4 PEC model Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 12/19] ppc/pnv: Remove "system-memory" property from PHB4 PEC Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 13/19] ppc/pnv: Move realize of PEC stacks under the PEC model Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 14/19] ppc/pnv: Use QOM hierarchy to scan PEC PHB4 devices Cédric Le Goater
2021-12-13 18:39   ` Daniel Henrique Barboza
2021-12-13 13:28 ` [PATCH v2 15/19] ppc/pnv: Introduce support for user created PHB3 devices Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 16/19] ppc/pnv: Reparent user created PHB3 devices to the PnvChip Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 17/19] ppc/pnv: Complete user created PHB3 devices Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 18/19] ppc/pnv: Introduce support for user created PHB4 devices Cédric Le Goater
2021-12-13 13:28 ` [PATCH v2 19/19] ppc/pnv: Move num_phbs under Pnv8Chip Cédric Le Goater
2022-01-04  9:53   ` Daniel Henrique Barboza
2022-01-04 10:07     ` Cédric Le Goater
2021-12-15 16:56 ` [PATCH v2 00/19] ppc/pnv: Add support for user created PHB3/PHB4 devices Cédric Le Goater
2022-01-04  9:56   ` Daniel Henrique Barboza
2022-01-04 10:07     ` Cédric Le Goater

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).