hw/pci: introduce PCI Expander Bridge (PXB)
commit40d14bef8012087ade60f254487d31db822a1a44
authorMarcel Apfelbaum <marcel.a@redhat.com>
Tue, 2 Jun 2015 11:23:06 +0000 (2 14:23 +0300)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 3 Jun 2015 16:19:18 +0000 (3 18:19 +0200)
tree7376bc48c8cbfc2d3e63668a557307f9f1a08b06
parentcb2ed8b3c66284f226c523231e2c09e60bbb34bb
hw/pci: introduce PCI Expander Bridge (PXB)

PXB is a "light-weight" host bridge whose purpose is to enable
the main host bridge to support multiple PCI root buses
for pc machines.

As oposed to PCI-2-PCI bridge's secondary bus, PXB's bus
is a primary bus and can be associated with a NUMA node
(different from the main host bridge) allowing the guest OS
to recognize the proximity of a pass-through device to
other resources as RAM and CPUs.

The PXB is composed from:
 - A primary PCI bus (can be associated with a NUMA node)
   Acts like a normal pci bus and from the functionality point
   of view is an "expansion" of the bus behind the
   main host bridge.
 - A pci-2-pci bridge behind the primary PCI bus where the actual
   devices will be attached.
 - A host-bridge PCI device
   Situated on the bus behind the main host bridge, allows
   the BIOS to configure the bus number and IO/mem resources.
   It does not have its own config/data register for configuration
   cycles, this being handled by the main host bridge.
-  A host-bridge sysbus to comply with QEMU current design.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
hw/pci-bridge/Makefile.objs
hw/pci-bridge/pci_expander_bridge.c [new file with mode: 0644]
include/hw/pci/pci.h