qemu-e2k/hw/pci-host
Daniel Henrique Barboza 392c278302 pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port
When creating a pnv_phb3_root_port using the command line, the first
root port is created successfully, but the second fails with the
following error:

qemu-system-ppc64: -device pnv-phb3-root-port,bus=phb3-root.0,id=pcie.3:
Can't add chassis slot, error -16

This error comes from the realize() function of its parent type,
rp_realize() from TYPE_PCIE_ROOT_PORT. pcie_chassis_add_slot() fails
with -EBUSY if there's an existing PCIESlot that has the same
chassis/slot value, regardless of being in a different bus.

One way to prevent this error is simply set chassis and slot values in
the command line. However, since phb3 root buses only supports a single
root port, we can just get an unique chassis/slot value by checking
which root bus the pnv_phb3_root_port is going to be attached, get the
equivalent phb3 device and use its chip-id and index values, which are
guaranteed to be unique.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220105212338.49899-2-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-01-12 11:28:27 +01:00
..
Kconfig hw/pci-host/Kconfig: Add missing dependency MV64361 -> I8259 2021-07-20 20:10:03 +02:00
bonito.c hw/pci-host/bonito: Allow PCI config accesses smaller than 32-bit 2021-07-02 17:34:55 +02:00
designware.c pci-host: designware: add pcie-msi read method 2021-02-08 15:15:32 +01:00
gpex-acpi.c Revert "acpi/gpex: Inform os to keep firmware resource map" 2021-08-03 16:32:34 -04:00
gpex.c hw/pci-host/gpex: Don't fault for unmapped parts of MMIO and PIO windows 2021-04-30 11:16:52 +01:00
grackle.c grackle: use qdev gpios for PCI IRQs 2020-10-18 16:21:42 +01:00
i440fx.c hw/pci: remove all references to find_i440fx function 2021-09-04 17:34:05 -04:00
meson.build hw/pci-host: Rename Raven ASIC PCI bridge as raven.c 2021-07-11 22:29:04 +02:00
mv643xx.h hw/pci-host: Add emulation of Marvell MV64361 PPC system controller 2021-05-04 11:41:25 +10:00
mv64361.c ppc/pegasos2: Access MV64361 registers via their memory region 2021-10-21 11:42:47 +11:00
pam.c hw/pci-host/pam: Replace magic number by PAM_REGIONS_COUNT definition 2020-12-13 17:07:05 +01:00
pnv_phb3.c pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port 2022-01-12 11:28:27 +01:00
pnv_phb3_msi.c dma: Let dma_memory_read/write() take MemTxAttrs argument 2021-12-30 17:16:32 +01:00
pnv_phb3_pbcq.c ppc/pnv: Move mapping of the PHB3 CQ regions under pnv_pbcq_realize() 2021-12-17 17:57:19 +01:00
pnv_phb4.c pnv_phb4.c: do not set 'root-bus' as bus name 2022-01-04 07:55:34 +01:00
pnv_phb4_pec.c ppc/pnv: Remove the PHB4 "device-id" property 2022-01-04 07:55:34 +01:00
ppce500.c Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
q35.c hw/i386: Add a default_bus_bypass_iommu pc machine option 2021-07-16 11:10:45 -04:00
raven.c pci: Rename pci_root_bus_new_inplace() to pci_root_bus_init() 2021-09-30 13:42:10 +01:00
remote.c multi-process: setup PCI host bridge for remote device 2021-02-10 09:23:22 +00:00
sabre.c Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
sh_pci.c hw/sh4: Coding style: White space fixes 2021-10-30 11:46:40 +02:00
trace-events hw/pci-host/bonito: Trace PCI config accesses smaller than 32-bit 2021-07-02 10:41:16 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
uninorth.c hw: Use the PCI_DEVFN() macro from 'hw/pci/pci.h' 2021-01-04 23:24:44 +01:00
versatile.c pci: Rename pci_root_bus_new_inplace() to pci_root_bus_init() 2021-09-30 13:42:10 +01:00
xen_igd_pt.c xen: Use ERRP_GUARD() 2020-07-10 15:18:09 +02:00
xilinx-pcie.c hw/mips/boston: Fix Lesser GPL version number 2020-11-03 16:51:13 +01:00