aboutsummaryrefslogtreecommitdiff
path: root/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Bus-DevPciIch9.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/virtualbox-ose/files/patch-src-VBox-Devices-Bus-DevPciIch9.cpp')
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Devices-Bus-DevPciIch9.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Bus-DevPciIch9.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Bus-DevPciIch9.cpp
new file mode 100644
index 000000000000..6354f1e1ca65
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-Bus-DevPciIch9.cpp
@@ -0,0 +1,22 @@
+Fix ich9 bios to correctly configure pci bridge1 and pci bridge2
+
+avg: I think that it is a valid report, the patch is not perfect, but
+avg: it fixes the problem for most configurations and demonstrates the problem well
+avg: the explanation for them is that FreeBSD (unlike Linux and maybe other OSes)
+avg: entirely relies on platform doing correct bus numbering
+avg: currently we can not do any re-numbering/corrections
+
+See: http://article.gmane.org/gmane.os.freebsd.devel.emulation/10438
+Submitted by: Gustau Perez i Querol <gperez@entel.upc.edu>
+--- src/VBox/Devices/Bus/DevPciIch9.cpp.orig 2012-06-15 21:22:15.000000000 +0200
++++ src/VBox/Devices/Bus/DevPciIch9.cpp 2012-09-02 14:17:49.804118887 +0200
+@@ -1812,7 +1812,8 @@
+ PICH9PCIBUS pChildBus = PDMINS_2_DATA(pBridge->pDevIns, PICH9PCIBUS);
+ ich9pciInitBridgeTopology(pGlobals, pChildBus);
+ }
+- PCIDevSetByte(pBridgeDev, VBOX_PCI_SUBORDINATE_BUS, pGlobals->uBus);
++ PCIDevSetByte(pBridgeDev, VBOX_PCI_PRIMARY_BUS, 0);
++ PCIDevSetByte(pBridgeDev, VBOX_PCI_SUBORDINATE_BUS, (pGlobals->uBus)-1);
+ Log2(("ich9pciInitBridgeTopology: for bus %p: primary=%d secondary=%d subordinate=%d\n",
+ pBus,
+ PCIDevGetByte(pBridgeDev, VBOX_PCI_PRIMARY_BUS),