resources: Updated system configs to run with gem5-20.1
Change-Id: I2c7775f946d67e676bc033fb0ebc32dbe8e127e8
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5-resources/+/34500
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: Jason Lowe-Power <power.jg@gmail.com>
diff --git a/src/parsec/configs-mesi-two-level/system/fs_tools.py b/src/parsec/configs-mesi-two-level/system/fs_tools.py
index c5b07a8..91f6646 100755
--- a/src/parsec/configs-mesi-two-level/system/fs_tools.py
+++ b/src/parsec/configs-mesi-two-level/system/fs_tools.py
@@ -32,7 +32,7 @@
def __init__(self, filename):
super(CowDisk, self).__init__()
- self.driveID = 'master'
+ self.driveID = 'device0'
self.image = CowDiskImage(child=RawDiskImage(read_only=True),
read_only=False)
self.image.child.image_file = filename
diff --git a/src/parsec/configs-mesi-two-level/system/ruby_system.py b/src/parsec/configs-mesi-two-level/system/ruby_system.py
index 922a025..cea2c2a 100755
--- a/src/parsec/configs-mesi-two-level/system/ruby_system.py
+++ b/src/parsec/configs-mesi-two-level/system/ruby_system.py
@@ -27,6 +27,7 @@
#
import m5
+import math
from m5.objects import *
from m5.util import convert
from .fs_tools import *
@@ -131,10 +132,20 @@
self._createMemoryControllers(1, DDR3_1600_8x8)
def _createMemoryControllers(self, num, cls):
- self.mem_cntrls = [
- cls(range = self.mem_ranges[0])
- for i in range(num)
- ]
+ intlv_bits = int(math.log(num, 2))
+ mem_ctrls = []
+ for i in range(num):
+ interface = cls()
+ interface.range = AddrRange(self.mem_ranges[0].start,
+ size = self.mem_ranges[0].size(),
+ intlvHighBit = 7,
+ xorHighBit = 20,
+ intlvBits = intlv_bits,
+ intlvMatch = i)
+ ctrl = MemCtrl()
+ ctrl.dram = interface
+ mem_ctrls.append(ctrl)
+ self.mem_cntrls = mem_ctrls
def initFS(self, cpus):
self.pc = Pc()
diff --git a/src/parsec/configs/system/fs_tools.py b/src/parsec/configs/system/fs_tools.py
index c5b07a8..91f6646 100755
--- a/src/parsec/configs/system/fs_tools.py
+++ b/src/parsec/configs/system/fs_tools.py
@@ -32,7 +32,7 @@
def __init__(self, filename):
super(CowDisk, self).__init__()
- self.driveID = 'master'
+ self.driveID = 'device0'
self.image = CowDiskImage(child=RawDiskImage(read_only=True),
read_only=False)
self.image.child.image_file = filename
diff --git a/src/parsec/configs/system/system.py b/src/parsec/configs/system/system.py
index a9f2a8a..f2a5b4f 100644
--- a/src/parsec/configs/system/system.py
+++ b/src/parsec/configs/system/system.py
@@ -217,18 +217,24 @@
def _createMemoryControllers(self, num, cls):
kernel_controller = self._createKernelMemoryController(cls)
-
ranges = self._getInterleaveRanges(self.mem_ranges[-1], num, 7, 20)
-
- self.mem_cntrls = [
- cls(range = ranges[i],
- port = self.membus.master)
- for i in range(num)
- ] + [kernel_controller]
+ mem_ctrls = []
+ for i in range(num):
+ interface = cls()
+ interface.range = ranges[i]
+ ctrl = MemCtrl()
+ ctrl.dram = interface
+ ctrl.port = self.membus.master
+ mem_ctrls.append(ctrl)
+ self.mem_cntrls = mem_ctrls + [kernel_controller]
def _createKernelMemoryController(self, cls):
- return cls(range = self.mem_ranges[0],
- port = self.membus.master)
+ interface = cls()
+ interface.range = self.mem_ranges[0]
+ ctrl = MemCtrl()
+ ctrl.dram = interface
+ ctrl.port = self.membus.master
+ return ctrl
def _getInterleaveRanges(self, rng, num, intlv_low_bit, xor_low_bit):
from math import log