summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dev/Pci.py1
-rw-r--r--src/dev/pcidev.cc2
-rw-r--r--src/dev/x86/SouthBridge.py1
3 files changed, 3 insertions, 1 deletions
diff --git a/src/dev/Pci.py b/src/dev/Pci.py
index 79ea1f68a..ef7137186 100644
--- a/src/dev/Pci.py
+++ b/src/dev/Pci.py
@@ -98,6 +98,7 @@ class PciDevice(DmaDevice):
BAR3LegacyIO = Param.Bool(False, "Whether BAR3 is hardwired legacy IO")
BAR4LegacyIO = Param.Bool(False, "Whether BAR4 is hardwired legacy IO")
BAR5LegacyIO = Param.Bool(False, "Whether BAR5 is hardwired legacy IO")
+ LegacyIOBase = Param.Addr(0x0, "Base Address for Legacy IO")
CardbusCIS = Param.UInt32(0x00, "Cardbus Card Information Structure")
SubsystemID = Param.UInt16(0x00, "Subsystem ID")
diff --git a/src/dev/pcidev.cc b/src/dev/pcidev.cc
index a24fa8da8..adc12bb55 100644
--- a/src/dev/pcidev.cc
+++ b/src/dev/pcidev.cc
@@ -213,7 +213,7 @@ PciDevice::PciDevice(const Params *p)
for (int i = 0; i < 6; ++i) {
if (legacyIO[i]) {
- BARAddrs[i] = platform->calcPciIOAddr(letoh(config.baseAddr[i]));
+ BARAddrs[i] = p->LegacyIOBase + letoh(config.baseAddr[i]);
config.baseAddr[i] = 0;
} else {
BARAddrs[i] = 0;
diff --git a/src/dev/x86/SouthBridge.py b/src/dev/x86/SouthBridge.py
index 45c49ce3a..911853dd5 100644
--- a/src/dev/x86/SouthBridge.py
+++ b/src/dev/x86/SouthBridge.py
@@ -84,6 +84,7 @@ class SouthBridge(SimObject):
ide.ProgIF = 0x80
ide.InterruptLine = 14
ide.InterruptPin = 1
+ ide.LegacyIOBase = x86IOAddress(0)
def attachIO(self, bus, dma_ports):
# Route interupt signals