xemu/hw/ppc
David Gibson 05929a6c5d spapr: Don't use bus number for building DRC ids
DRC ids are more or less arbitrary, as long as they're consistent.  For
PCI, we notionally build them from the phb's index along with PCI bus
number, slot and function number.

Using bus number is broken, however, because it can change if the guest
re-enumerates the PCI topology for whatever reason (e.g. due to hotplug
of a bridge, which we don't support yet but want to).

Fortunately, there's an alternative.  Bridges are required to have a unique
non-zero "chassis number" that we can use instead.  Adjust the code to
use that instead.

This looks like it would introduce a guest visible breaking change, but
in fact it does not because we don't yet ever use non-zero bus numbers.
Both chassis and bus number are always 0 for the root bus, so there's no
change for the existing cases.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
2019-06-12 10:41:49 +10:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c PPC: E500: Add FSL I2C controller and integrate RTC with it 2019-03-12 14:33:04 +11:00
e500.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
e500plat.c hw/ppc: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
fdt.c target/ppc: Split page size information into a separate allocation 2018-04-27 18:05:22 +10:00
fw_cfg.c hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
Kconfig spapr/xive: add KVM support 2019-05-29 11:39:45 +10:00
mac_newworld.c mac_newworld: use node name instead of alias name for hd device in FWPathProvider 2019-03-12 14:33:04 +11:00
mac_oldworld.c mac_oldworld: use node name instead of alias name for hd device in FWPathProvider 2019-03-12 14:33:04 +11:00
mac.h macio: move MACIOIDEState type declarations to macio.h 2018-08-30 10:42:18 +10:00
Makefile.objs hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
mpc8544_guts.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
mpc8544ds.c ppc: e500: switch E500 based machines to full machine definition 2018-04-27 18:05:23 +10:00
pnv_bmc.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
pnv_core.c ppc/pnv: POWER9 XSCOM quad support 2019-03-12 14:33:04 +11:00
pnv_lpc.c ppc/pnv: add SerIRQ routing registers 2019-03-12 14:33:04 +11:00
pnv_occ.c ppc/pnv: add a OCC model for POWER9 2019-03-12 14:33:04 +11:00
pnv_psi.c ppc/pnv: Fix variable size in pnv_psi_power9_irq_set() 2019-03-19 15:20:14 +11:00
pnv_xscom.c ppc/pnv: add dummy XSCOM registers for PRD initialization 2019-05-29 11:39:47 +10:00
pnv.c ppc/pnv: introduce new skiboot platform properties 2019-05-29 11:39:47 +10:00
ppc4xx_devs.c ppc4xx: Pass array index to function instead of pointer into the array 2019-02-04 18:44:17 +11:00
ppc4xx_pci.c ppc4xx_pci: convert SysBus init method to a realize method 2018-11-08 12:04:40 +11:00
ppc405_boards.c pflash: Clean up after commit 368a354f02, part 2 2019-03-11 22:53:44 +01:00
ppc405_uc.c target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
ppc405.h ppc4xx: Export ECB and PLB emulation 2017-09-08 09:30:55 +10:00
ppc440_bamboo.c elf: Add optional function ptr to load_elf() to parse ELF notes 2019-02-05 16:50:16 +01:00
ppc440_pcix.c ppc440_pcix: convert SysBus init method to a realize method 2018-11-08 12:04:40 +11:00
ppc440_uc.c ppc440: Avoid reporting error when reading non-existent RAM slot 2019-02-04 18:44:17 +11:00
ppc440.h ppc440_uc: Basic emulation of PPC440 DMA controller 2018-07-03 09:56:52 +10:00
ppc_booke.c target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
ppc.c target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
ppce500_spin.c hw/ppc: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
prep_systemio.c prep: add PReP System I/O 2017-01-31 10:10:13 +11:00
prep.c hw/ppc/40p: use 1900 as a base year 2019-05-29 11:39:44 +10:00
rs6000_mc.c hw/ppc: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
sam460ex.c pflash: Clean up after commit 368a354f02, part 2 2019-03-11 22:53:44 +01:00
spapr_caps.c spapr: Don't migrate the hpt_maxpagesize cap to older machine types 2019-05-29 11:39:47 +10:00
spapr_cpu_core.c target/ppc: Set PSSCR_EC on cpu halt to prevent spurious wakeup 2019-05-29 11:39:45 +10:00
spapr_drc.c spapr: Clean up spapr_drc_populate_dt() 2019-06-12 10:41:49 +10:00
spapr_events.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_hcall.c spapr: Print out extra hints when CAS negotiation of interrupt mode fails 2019-05-29 11:39:45 +10:00
spapr_iommu.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_irq.c spapr/irq: add KVM support to the 'dual' machine 2019-05-29 11:39:46 +10:00
spapr_ovec.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_pci_nvlink2.c spapr: Support NVIDIA V100 GPU with NVLink2 2019-04-26 10:41:23 +10:00
spapr_pci_vfio.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_pci.c spapr: Don't use bus number for building DRC ids 2019-06-12 10:41:49 +10:00
spapr_rng.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_rtas_ddw.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_rtas.c target/ppc: Set PSSCR_EC on cpu halt to prevent spurious wakeup 2019-05-29 11:39:45 +10:00
spapr_rtc.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_vio.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr.c spapr: Clean up spapr_drc_populate_dt() 2019-06-12 10:41:49 +10:00
trace-events trace-events: Fix attribution of trace points to source 2019-03-22 16:18:07 +00:00
virtex_ml507.c pflash: Clean up after commit 368a354f02, part 2 2019-03-11 22:53:44 +01:00