changeset f33fab6214c4 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=f33fab6214c4
description:
        arm: fix bare-metal memory setup.

        The bare-metal configuration option still configured memory with the 
old scheme
        that no-longer works. This change unifies the code so there aren't any 
differences.

diffstat:

 configs/common/FSConfig.py |  39 ++++++++++++++++++---------------------
 1 files changed, 18 insertions(+), 21 deletions(-)

diffs (59 lines):

diff -r aa23216161fa -r f33fab6214c4 configs/common/FSConfig.py
--- a/configs/common/FSConfig.py        Wed Oct 29 23:18:24 2014 -0500
+++ b/configs/common/FSConfig.py        Wed Oct 29 23:18:26 2014 -0500
@@ -230,11 +230,27 @@
     except:
         self.realview.cf_ctrl.disks = [self.cf0]
 
+    self.mem_ranges = []
+    size_remain = long(Addr(mdesc.mem()))
+    for region in self.realview._mem_regions:
+        if size_remain > long(region[1]):
+            self.mem_ranges.append(AddrRange(region[0], size=region[1]))
+            size_remain = size_remain - long(region[1])
+        else:
+            self.mem_ranges.append(AddrRange(region[0], size=size_remain))
+            size_remain = 0
+            break
+        warn("Memory size specified spans more than one region. Creating" \
+             " another memory controller for that range.")
+
+    if size_remain > 0:
+        fatal("The currently selected ARM platforms doesn't support" \
+              " the amount of DRAM you've selected. Please try" \
+              " another platform")
+
     if bare_metal:
         # EOT character on UART will end the simulation
         self.realview.uart.end_on_eot = True
-        self.mem_ranges = [AddrRange(self.realview.mem_start_addr,
-                                     size = mdesc.mem())]
     else:
         if machine_type == "VExpress_EMM64":
             self.kernel = binary('vmlinux-3.16-aarch64-vexpress-emm64-pcie')
@@ -251,25 +267,6 @@
                      'lpj=19988480 norandmaps rw loglevel=8 ' + \
                      'mem=%s root=/dev/sda1' % mdesc.mem()
 
-        self.mem_ranges = []
-        size_remain = long(Addr(mdesc.mem()))
-        for region in self.realview._mem_regions:
-            if size_remain > long(region[1]):
-                self.mem_ranges.append(AddrRange(region[0], size=region[1]))
-                size_remain = size_remain - long(region[1])
-            else:
-                self.mem_ranges.append(AddrRange(region[0], size=size_remain))
-                size_remain = 0
-                break
-            warn("Memory size specified spans more than one region. Creating" \
-                 " another memory controller for that range.")
-
-        if size_remain > 0:
-            fatal("The currently selected ARM platforms doesn't support" \
-                  " the amount of DRAM you've selected. Please try" \
-                  " another platform")
-
-
         self.realview.setupBootLoader(self.membus, self, binary)
         self.gic_cpu_addr = self.realview.gic.cpu_addr
         self.flags_addr = self.realview.realview_io.pio_addr + 0x30
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to