summaryrefslogtreecommitdiff
path: root/configs/common
diff options
context:
space:
mode:
authorNilay Vaish <nilay@cs.wisc.edu>2012-04-05 11:09:19 -0500
committerNilay Vaish <nilay@cs.wisc.edu>2012-04-05 11:09:19 -0500
commit4f4a710457af4a9c8e72632995b55f106110ac9c (patch)
tree816cc9af7167d0d016df34768fdf701ea5d3a140 /configs/common
parentf1a60906132fb816f80917d830b34df5e5d87ad4 (diff)
downloadgem5-4f4a710457af4a9c8e72632995b55f106110ac9c.tar.xz
Config: corrects the way Ruby attaches to the DMA ports
With recent changes to the memory system, a port cannot be assigned a peer port twice. While making use of the Ruby memory system in FS mode, DMA ports were assigned peer twice, once for the classic memory system and once for the Ruby memory system. This patch removes this double assignment of peer ports.
Diffstat (limited to 'configs/common')
-rw-r--r--configs/common/FSConfig.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/configs/common/FSConfig.py b/configs/common/FSConfig.py
index 4c2d0a66c..de2d9181d 100644
--- a/configs/common/FSConfig.py
+++ b/configs/common/FSConfig.py
@@ -134,16 +134,14 @@ def makeLinuxAlphaRubySystem(mem_mode, mdesc = None):
self.tsunami.attachIO(self.piobus)
self.tsunami.ide.pio = self.piobus.master
self.tsunami.ide.config = self.piobus.master
- self.tsunami.ide.dma = self.piobus.slave
self.tsunami.ethernet.pio = self.piobus.master
self.tsunami.ethernet.config = self.piobus.master
- self.tsunami.ethernet.dma = self.piobus.slave
#
# Store the dma devices for later connection to dma ruby ports.
# Append an underscore to dma_devices to avoid the SimObjectVector check.
#
- self._dma_devices = [self.tsunami.ide, self.tsunami.ethernet]
+ self._dma_ports = [self.tsunami.ide.dma, self.tsunami.ethernet.dma]
self.simple_disk = SimpleDisk(disk=RawDiskImage(image_file = mdesc.disk(),
read_only = True))
@@ -408,8 +406,10 @@ def connectX86RubySystem(x86_sys):
# the piobus a direct connection to physical memory
#
x86_sys.piobus.master = x86_sys.physmem.port
-
- x86_sys.pc.attachIO(x86_sys.piobus)
+ # add the ide to the list of dma devices that later need to attach to
+ # dma controllers
+ x86_sys._dma_ports = [x86_sys.pc.south_bridge.ide.dma]
+ x86_sys.pc.attachIO(x86_sys.piobus, x86_sys._dma_ports)
def makeX86System(mem_mode, numCPUs = 1, mdesc = None, self = None, Ruby = False):
@@ -432,9 +432,6 @@ def makeX86System(mem_mode, numCPUs = 1, mdesc = None, self = None, Ruby = False
# Create and connect the busses required by each memory system
if Ruby:
connectX86RubySystem(self)
- # add the ide to the list of dma devices that later need to attach to
- # dma controllers
- self._dma_devices = [self.pc.south_bridge.ide]
else:
connectX86ClassicSystem(self, numCPUs)