arm: fix bare-metal memory setup.
authorAli Saidi <Ali.Saidi@ARM.com>
Thu, 30 Oct 2014 04:18:26 +0000 (23:18 -0500)
committerAli Saidi <Ali.Saidi@ARM.com>
Thu, 30 Oct 2014 04:18:26 +0000 (23:18 -0500)
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.

configs/common/FSConfig.py

index ee9bef929eb1036f3e8687b45366de859abb1a0a..ab8a9e8fad77e5b12f21a54c0e8b0c6c039f1080 100644 (file)
@@ -230,11 +230,27 @@ def makeArmSystem(mem_mode, machine_type, mdesc = None,
     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 @@ def makeArmSystem(mem_mode, machine_type, mdesc = None,
                      '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