diff options
Diffstat (limited to 'configs')
-rw-r--r-- | configs/common/Benchmarks.py | 2 | ||||
-rw-r--r-- | configs/common/FSConfig.py | 54 | ||||
-rw-r--r-- | configs/common/Options.py | 2 | ||||
-rw-r--r-- | configs/example/fs.py | 4 |
4 files changed, 32 insertions, 30 deletions
diff --git a/configs/common/Benchmarks.py b/configs/common/Benchmarks.py index 41d5435f9..44cbef976 100644 --- a/configs/common/Benchmarks.py +++ b/configs/common/Benchmarks.py @@ -56,7 +56,7 @@ class SysConfig: elif buildEnv['TARGET_ISA'] == 'x86': return env.get('LINUX_IMAGE', disk('x86root.img')) elif buildEnv['TARGET_ISA'] == 'arm': - return env.get('LINUX_IMAGE', disk('linux-arm-ael.img')) + return env.get('LINUX_IMAGE', disk('linux-aarch32-ael.img')) else: print "Don't know what default disk image to use for %s ISA" % \ buildEnv['TARGET_ISA'] diff --git a/configs/common/FSConfig.py b/configs/common/FSConfig.py index ee9bef929..b94a7394a 100644 --- a/configs/common/FSConfig.py +++ b/configs/common/FSConfig.py @@ -182,7 +182,7 @@ def makeSparcSystem(mem_mode, mdesc = None): return self -def makeArmSystem(mem_mode, machine_type, mdesc = None, +def makeArmSystem(mem_mode, machine_type, num_cpus = 1, mdesc = None, dtb_filename = None, bare_metal=False): assert machine_type @@ -209,12 +209,17 @@ def makeArmSystem(mem_mode, machine_type, mdesc = None, self.realview = RealViewPBX() elif machine_type == "RealView_EB": self.realview = RealViewEB() - elif machine_type == "VExpress_ELT": - self.realview = VExpress_ELT() elif machine_type == "VExpress_EMM": self.realview = VExpress_EMM() + if not dtb_filename: + dtb_filename = 'vexpress.aarch32.ll_20131205.0-gem5.%dcpu.dtb' % num_cpus elif machine_type == "VExpress_EMM64": self.realview = VExpress_EMM64() + if os.path.split(mdesc.disk())[-1] == 'linux-aarch32-ael.img': + print "Selected 64-bit ARM architecture, updating default disk image..." + mdesc.diskname = 'linaro-minimal-aarch64.img' + if not dtb_filename: + dtb_filename = 'vexpress.aarch64.20140821.dtb' else: print "Unknown Machine Type" sys.exit(1) @@ -230,16 +235,32 @@ 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') + self.kernel = binary('vmlinux.aarch64.20140821') elif machine_type == "VExpress_EMM": - self.kernel = binary('vmlinux-3.3-arm-vexpress-emm-pcie') + self.kernel = binary('vmlinux.aarch32.ll_20131205.0-gem5') else: self.kernel = binary('vmlinux.arm.smp.fb.2.6.38.8') @@ -251,25 +272,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 diff --git a/configs/common/Options.py b/configs/common/Options.py index 39355293d..19c504d97 100644 --- a/configs/common/Options.py +++ b/configs/common/Options.py @@ -241,7 +241,7 @@ def addFSOptions(parser): parser.add_option("--bare-metal", action="store_true", help="Provide the raw system without the linux specific bits") parser.add_option("--machine-type", action="store", type="choice", - choices=ArmMachineType.map.keys(), default="RealView_PBX") + choices=ArmMachineType.map.keys(), default="VExpress_EMM") parser.add_option("--dtb-filename", action="store", type="string", help="Specifies device tree blob file to use with device-tree-"\ "enabled kernels") diff --git a/configs/example/fs.py b/configs/example/fs.py index 584748299..19a2bd358 100644 --- a/configs/example/fs.py +++ b/configs/example/fs.py @@ -82,8 +82,8 @@ def build_test_system(np): test_sys = makeLinuxX86System(test_mem_mode, options.num_cpus, bm[0], options.ruby) elif buildEnv['TARGET_ISA'] == "arm": - test_sys = makeArmSystem(test_mem_mode, options.machine_type, bm[0], - options.dtb_filename, + test_sys = makeArmSystem(test_mem_mode, options.machine_type, + options.num_cpus, bm[0], options.dtb_filename, bare_metal=options.bare_metal) if options.enable_context_switch_stats_dump: test_sys.enable_context_switch_stats_dump = True |