summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorBlue Swirl <blauwirbel@gmail.com>2010-01-26 21:59:57 +0000
committerBlue Swirl <blauwirbel@gmail.com>2010-01-26 21:59:57 +0000
commit776e1bbb6cf4fe66a93c1a5dd814bbb650deca00 (patch)
tree1b191a039b07ec2e09a229300aa586d9839a57b4 /hw
parentf139a4125682ecd45d96c2d1523443d1be65405c (diff)
downloadqemu-776e1bbb6cf4fe66a93c1a5dd814bbb650deca00.tar.gz
qemu-776e1bbb6cf4fe66a93c1a5dd814bbb650deca00.tar.bz2
qemu-776e1bbb6cf4fe66a93c1a5dd814bbb650deca00.zip
PCI: fix bridge configuration
PCI bridges' qdev info structures must indicate bridge header type, otherwise critical bridge registers (esp. PCI_PRIMARY_BUS, PCI_SECONDARY_BUS, PCI_SUBORDINATE_BUS) will not be writable. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/apb_pci.c1
-rw-r--r--hw/grackle_pci.c1
-rw-r--r--hw/pci.c1
-rw-r--r--hw/unin_pci.c1
4 files changed, 4 insertions, 0 deletions
diff --git a/hw/apb_pci.c b/hw/apb_pci.c
index a72c656818..7f458c60da 100644
--- a/hw/apb_pci.c
+++ b/hw/apb_pci.c
@@ -365,6 +365,7 @@ static PCIDeviceInfo pbm_pci_host_info = {
.qdev.name = "pbm",
.qdev.size = sizeof(PCIDevice),
.init = pbm_pci_host_init,
+ .header_type = PCI_HEADER_TYPE_BRIDGE,
};
static void pbm_register_devices(void)
diff --git a/hw/grackle_pci.c b/hw/grackle_pci.c
index ee4fed53ed..f455c5991b 100644
--- a/hw/grackle_pci.c
+++ b/hw/grackle_pci.c
@@ -181,6 +181,7 @@ static PCIDeviceInfo dec_21154_pci_host_info = {
.qdev.name = "dec-21154",
.qdev.size = sizeof(PCIDevice),
.init = dec_21154_pci_host_init,
+ .header_type = PCI_HEADER_TYPE_BRIDGE,
};
static void grackle_register_devices(void)
diff --git a/hw/pci.c b/hw/pci.c
index b83fd532bc..023f7b6f4a 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -1874,6 +1874,7 @@ static PCIDeviceInfo bridge_info = {
.init = pci_bridge_initfn,
.exit = pci_bridge_exitfn,
.config_write = pci_bridge_write_config,
+ .header_type = PCI_HEADER_TYPE_BRIDGE,
.qdev.props = (Property[]) {
DEFINE_PROP_HEX32("vendorid", PCIBridge, vid, 0),
DEFINE_PROP_HEX32("deviceid", PCIBridge, did, 0),
diff --git a/hw/unin_pci.c b/hw/unin_pci.c
index 3ae4e7a14d..b8a805b7df 100644
--- a/hw/unin_pci.c
+++ b/hw/unin_pci.c
@@ -269,6 +269,7 @@ static PCIDeviceInfo dec_21154_pci_host_info = {
.qdev.name = "dec-21154",
.qdev.size = sizeof(PCIDevice),
.init = dec_21154_pci_host_init,
+ .header_type = PCI_HEADER_TYPE_BRIDGE,
};
static PCIDeviceInfo unin_agp_pci_host_info = {