dev-arm: Don't unconditionally overwrite bootloader params
authorJose Marinho <jose.marinho@arm.com>
Wed, 28 Jun 2017 10:14:59 +0000 (11:14 +0100)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Mon, 10 Jul 2017 08:32:03 +0000 (08:32 +0000)
The bootloader arguments were previously defaulting to a predetermined
value even if initialized elsewhere in the platform config script.
This commit fixes this issue by not calling the default initialization
routine if the bootloader is already defined.

Change-Id: Id80af4762b52dc036da29430b2795bb30970a349
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/3967

src/dev/arm/RealView.py

index 323c14c7a1fcd319858907403d7809e483dee203..51aa1cf3c0d9fc815c93f4eb73964d934a930e1b 100644 (file)
@@ -739,7 +739,8 @@ class VExpress_EMM(RealView):
         self.nvmem = SimpleMemory(range = AddrRange('64MB'),
                                   conf_table_reported = False)
         self.nvmem.port = mem_bus.master
-        cur_sys.boot_loader = loc('boot_emm.arm')
+        if not cur_sys.boot_loader:
+            cur_sys.boot_loader = loc('boot_emm.arm')
         cur_sys.atags_addr = 0x8000000
         cur_sys.load_addr_mask = 0xfffffff
         cur_sys.load_offset = 0x80000000
@@ -756,7 +757,8 @@ class VExpress_EMM64(VExpress_EMM):
         self.nvmem = SimpleMemory(range=AddrRange(0, size='64MB'),
                                   conf_table_reported=False)
         self.nvmem.port = mem_bus.master
-        cur_sys.boot_loader = loc('boot_emm.arm64')
+        if not cur_sys.boot_loader:
+            cur_sys.boot_loader = loc('boot_emm.arm64')
         cur_sys.atags_addr = 0x8000000
         cur_sys.load_addr_mask = 0xfffffff
         cur_sys.load_offset = 0x80000000
@@ -927,7 +929,8 @@ Interrupts:
         self.nvmem = SimpleMemory(range=AddrRange(0, size='64MB'),
                                   conf_table_reported=False)
         self.nvmem.port = mem_bus.master
-        cur_sys.boot_loader = [ loc('boot_emm.arm64'), loc('boot_emm.arm') ]
+        if not cur_sys.boot_loader:
+            cur_sys.boot_loader = [ loc('boot_emm.arm64'), loc('boot_emm.arm') ]
         cur_sys.atags_addr = 0x8000000
         # the old load_add_mask 0xfffffff works for 32-bit kernel
         # but not the 64-bit one. The new value 0x7ffffff works for both