summaryrefslogtreecommitdiffstats
path: root/hw/spapr.h
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2011-10-30 17:16:46 +0000
committerAlexander Graf <agraf@suse.de>2011-10-31 04:53:01 +0100
commit3384f95c59e5db381cf3e605c8acec71baf0e6b8 (patch)
tree0017d1bff22a76c111676e8d5fc9be1c9dab3394 /hw/spapr.h
parent02d4eae4b0be19d84996105cf6e0cc33f41e3833 (diff)
downloadhqemu-3384f95c59e5db381cf3e605c8acec71baf0e6b8.zip
hqemu-3384f95c59e5db381cf3e605c8acec71baf0e6b8.tar.gz
pseries: Add partial support for PCI
This patch adds a PCI bus to the pseries machine. This instantiates the qemu generic PCI bus code, advertises a PCI host bridge in the guest's device tree and implements the RTAS methods specified by PAPR to access PCI config space. It also sets up the memory regions we need to provide windows into the PCI memory and IO space, and advertises those to the guest. However, because qemu can't yet emulate an IOMMU, which is mandatory on pseries, PCI devices which use DMA (i.e. most of them) will not work with this code alone. Still, this is enough to support the virtio_pci device (which probably _should_ use emulated PCI DMA, but is specced to use direct hypervisor access to guest physical memory instead). [agraf] remove typedef which could cause compile errors Signed-off-by: Alexey Kardashevskiy <aik@au1.ibm.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'hw/spapr.h')
-rw-r--r--hw/spapr.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/spapr.h b/hw/spapr.h
index 6657c33..df88f6a 100644
--- a/hw/spapr.h
+++ b/hw/spapr.h
@@ -4,10 +4,12 @@
#include "hw/xics.h"
struct VIOsPAPRBus;
+struct sPAPRPHBState;
struct icp_state;
typedef struct sPAPREnvironment {
struct VIOsPAPRBus *vio_bus;
+ QLIST_HEAD(, sPAPRPHBState) phbs;
struct icp_state *icp;
target_phys_addr_t ram_limit;
OpenPOWER on IntegriCloud