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