From: Daniel Henrique Barboza <danielhb413@gmail.com>
To: qemu-devel@nongnu.org
Cc: danielhb413@gmail.com, qemu-ppc@nongnu.org, clg@kaod.org,
david@gibson.dropbear.id.au
Subject: [PATCH v2 00/18] user creatable pnv-phb3/pnv-phb4 devices
Date: Wed, 5 Jan 2022 18:23:20 -0300 [thread overview]
Message-ID: <20220105212338.49899-1-danielhb413@gmail.com> (raw)
Hi,
This second version was rebased with upstream and includes fixed/amended
versions of relevant patches that were sent to the mailing list and aren't
upstream yet. In this process 4 patches from v1 were discarded, becoming
either irrelevant or squashed into others.
The patches are organized as follows:
- patches 1-4: enable user creatable phb3/phb4 root ports
- patches 5-10: enable user creatable pnv-phb3 devices
- patches 11-18: enable user creatable pnv-phb4 devices
Here are some examples of what we're able to do with this series:
* powernv8 machine with -nodefaults,2 pnv-phb3s with 'pcie.N' name,
one of them with a root port and a netcard:
$ qemu-system-ppc64 -m 4G -machine powernv8,accel=tcg -smp 2,cores=2,threads=1 \
-bios skiboot.lid -kernel vmlinux -initrd buildroot.rootfs.cpio \
-append 'console=hvc0 ro xmon=on' \
-nodefaults \
-serial mon:stdio -nographic \
-device pnv-phb3,chip-id=0,index=0,id=pcie.0 \
-device pnv-phb3,chip-id=0,index=2,id=pcie.2 \
-device pnv-phb3-root-port,bus=pcie.2,id=pcie.5 \
-netdev bridge,helper=/usr/libexec/qemu-bridge-helper,br=virbr0,id=net0 \
-device e1000e,netdev=net0,mac=C0:ff:EE:00:01:04,bus=pcie.5,addr=0x0
* powernv9 machine with -nodefaults, 3 of the available 12 pnv-phb4 devices
created, 2 root ports, one of the port with a pcie-pci-bridge and
devices connected in the bridge:
$ qemu-system-ppc64 -m 4G -machine powernv9 \
-smp 2,sockets=2,cores=1,threads=1 \
-accel tcg,thread=multi -bios skiboot.lid \
-kernel vmlinux -initrd buildroot.rootfs.cpio \
-append 'console=hvc0 ro xmon=on' \
-nodefaults \
-serial mon:stdio -nographic \
-device pnv-phb4,chip-id=0,index=0,id=pcie.0 \
-device pnv-phb4,chip-id=0,index=4,id=pcie.1 \
-device pnv-phb4,chip-id=1,index=3,id=pcie.2 \
-device pnv-phb4-root-port,id=root0,bus=pcie.2 \
-device pnv-phb4-root-port,id=root1,bus=pcie.1 \
-device pcie-pci-bridge,id=bridge1,bus=root0,addr=0x0 \
-device nvme,bus=bridge1,addr=0x1,drive=drive0,serial=1234 \
-drive file=./simics-disk.raw,if=none,id=drive0,format=raw,cache=none \
-device e1000e,netdev=net0,mac=C0:ff:EE:00:01:04,bus=bridge1,addr=0x3 \
-netdev bridge,helper=/usr/libexec/qemu-bridge-helper,br=virbr0,id=net0 \
-device nec-usb-xhci,bus=bridge1,addr=0x2
* powernv8/9 with default settings can be used as usual. The work done
in this series didn't change the name of the buses created by the
default root ports (named pcie.0...N):
$ qemu-system-ppc64 -m 4G \
-machine powernv9 -smp 2,sockets=2,cores=1,threads=1 \
-accel tcg,thread=multi -bios skiboot.lid \
-kernel vmlinux -initrd buildroot.rootfs.cpio \
-append 'console=hvc0 ro xmon=on' \
-serial mon:stdio -nographic \
-device pcie-pci-bridge,id=bridge1,bus=pcie.0,addr=0x0 \
-device nvme,bus=bridge1,addr=0x1,drive=drive0,serial=1234 \
-drive file=./simics-disk.raw,if=none,id=drive0,format=raw,cache=none \
-device e1000e,netdev=net0,mac=C0:ff:EE:00:01:04,bus=bridge1,addr=0x3 \
-netdev bridge,helper=/usr/libexec/qemu-bridge-helper,br=virbr0,id=net0 \
-device nec-usb-xhci,bus=bridge1,addr=0x2
Changes from v1:
- rebased with upstream at 7d4ae4d497807
- added relevant patches that aren't upstream yet from "ppc/pnv:
Preliminary cleanups before user created PHBs" [1] and "ppc/pnv: Add
support for user created PHB3/PHB4 devices" [2] series
- renamed phb3/phb4 default buses name to 'pnv-phb3-root' and
'pnv-phb4-root'
- renamed pnv_pec_get_phb_id() to pnv_phb4_pec_get_phb_id()
- patch 'introduce pnv_pec_init_stack_xscom()' moved to patch 16 to
be closer with patch 17 that uses it
- v1 link: https://lists.gnu.org/archive/html/qemu-devel/2021-12/msg04427.html
[1] https://lists.gnu.org/archive/html/qemu-devel/2021-12/msg03810.html
[2] https://lists.gnu.org/archive/html/qemu-devel/2021-12/msg01548.html
Cédric Le Goater (5):
ppc/pnv: Attach PHB3 root port device when defaults are enabled
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: Move num_phbs under Pnv8Chip
Daniel Henrique Barboza (13):
pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port
pnv_phb4.c: add unique chassis and slot for pnv_phb4_root_port
pnv_phb4.c: make pnv-phb4-root-port user creatable
pnv_phb4.c: check if root port exists in rc_config functions
pnv_phb3.h: change TYPE_PNV_PHB3_ROOT_BUS name
pnv_phb4.c: introduce pnv_phb4_set_stack_phb_props()
pnv_phb4_pec.c: move pnv_pec_phb_offset() to pnv_phb4.c
pnv_phb4_pec: use pnv_phb4_pec_get_phb_id() in pnv_pec_dt_xscom()
pnv_phb4.h: turn phb into a pointer in struct PnvPhb4PecStack
pnv_phb4_pec.c: use 'default_enabled()' to init stack->phb
pnv_phb4.c: introduce pnv_pec_init_stack_xscom()
ppc/pnv: Introduce user creatable pnv-phb4 devices
pnv_phb4.c: change TYPE_PNV_PHB4_ROOT_BUS name
hw/pci-host/pnv_phb3.c | 57 ++++++++--
hw/pci-host/pnv_phb4.c | 193 ++++++++++++++++++++++++++++++---
hw/pci-host/pnv_phb4_pec.c | 86 ++++++---------
hw/ppc/pnv.c | 55 ++++++++--
include/hw/pci-host/pnv_phb3.h | 4 +-
include/hw/pci-host/pnv_phb4.h | 15 ++-
include/hw/ppc/pnv.h | 8 +-
7 files changed, 322 insertions(+), 96 deletions(-)
--
2.33.1
next reply other threads:[~2022-01-05 21:26 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-05 21:23 Daniel Henrique Barboza [this message]
2022-01-05 21:23 ` [PATCH v2 01/18] pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port Daniel Henrique Barboza
2022-01-06 7:39 ` Cédric Le Goater
2022-01-05 21:23 ` [PATCH v2 02/18] pnv_phb4.c: add unique chassis and slot for pnv_phb4_root_port Daniel Henrique Barboza
2022-01-06 7:39 ` Cédric Le Goater
2022-01-05 21:23 ` [PATCH v2 03/18] ppc/pnv: Attach PHB3 root port device when defaults are enabled Daniel Henrique Barboza
2022-01-05 21:23 ` [PATCH v2 04/18] pnv_phb4.c: make pnv-phb4-root-port user creatable Daniel Henrique Barboza
2022-01-06 7:40 ` Cédric Le Goater
2022-01-05 21:23 ` [PATCH v2 05/18] pnv_phb4.c: check if root port exists in rc_config functions Daniel Henrique Barboza
2022-01-06 7:40 ` Cédric Le Goater
2022-01-05 21:23 ` [PATCH v2 06/18] ppc/pnv: Introduce support for user created PHB3 devices Daniel Henrique Barboza
2022-01-05 21:23 ` [PATCH v2 07/18] ppc/pnv: Reparent user created PHB3 devices to the PnvChip Daniel Henrique Barboza
2022-01-05 21:23 ` [PATCH v2 08/18] ppc/pnv: Complete user created PHB3 devices Daniel Henrique Barboza
2022-01-05 21:23 ` [PATCH v2 09/18] ppc/pnv: Move num_phbs under Pnv8Chip Daniel Henrique Barboza
2022-01-05 21:23 ` [PATCH v2 10/18] pnv_phb3.h: change TYPE_PNV_PHB3_ROOT_BUS name Daniel Henrique Barboza
2022-01-06 7:41 ` Cédric Le Goater
2022-01-05 21:23 ` [PATCH v2 11/18] pnv_phb4.c: introduce pnv_phb4_set_stack_phb_props() Daniel Henrique Barboza
2022-01-06 14:18 ` Cédric Le Goater
2022-01-05 21:23 ` [PATCH v2 12/18] pnv_phb4_pec.c: move pnv_pec_phb_offset() to pnv_phb4.c Daniel Henrique Barboza
2022-01-06 14:18 ` Cédric Le Goater
2022-01-05 21:23 ` [PATCH v2 13/18] pnv_phb4_pec: use pnv_phb4_pec_get_phb_id() in pnv_pec_dt_xscom() Daniel Henrique Barboza
2022-01-06 14:19 ` Cédric Le Goater
2022-01-05 21:23 ` [PATCH v2 14/18] pnv_phb4.h: turn phb into a pointer in struct PnvPhb4PecStack Daniel Henrique Barboza
2022-01-06 14:24 ` Cédric Le Goater
2022-01-06 14:36 ` Cédric Le Goater
2022-01-05 21:23 ` [PATCH v2 15/18] pnv_phb4_pec.c: use 'default_enabled()' to init stack->phb Daniel Henrique Barboza
2022-01-06 14:33 ` Cédric Le Goater
2022-01-05 21:23 ` [PATCH v2 16/18] pnv_phb4.c: introduce pnv_pec_init_stack_xscom() Daniel Henrique Barboza
2022-01-06 14:38 ` Cédric Le Goater
2022-01-05 21:23 ` [PATCH v2 17/18] ppc/pnv: Introduce user creatable pnv-phb4 devices Daniel Henrique Barboza
2022-01-06 14:49 ` Cédric Le Goater
2022-01-07 21:17 ` Daniel Henrique Barboza
2022-01-08 11:11 ` Cédric Le Goater
2022-01-08 12:58 ` Daniel Henrique Barboza
2022-01-05 21:23 ` [PATCH v2 18/18] pnv_phb4.c: change TYPE_PNV_PHB4_ROOT_BUS name Daniel Henrique Barboza
2022-01-06 14:19 ` Cédric Le Goater
2022-01-06 8:18 ` [PATCH v2 00/18] user creatable pnv-phb3/pnv-phb4 devices Cédric Le Goater
2022-01-06 12:36 ` Daniel Henrique Barboza
2022-01-06 17:35 ` Cédric Le Goater
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220105212338.49899-1-danielhb413@gmail.com \
--to=danielhb413@gmail.com \
--cc=clg@kaod.org \
--cc=david@gibson.dropbear.id.au \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.