changeset b423e1d0735e in /z/repo/gem5 details: http://repo.gem5.org/gem5?cmd=changeset;node=b423e1d0735e description: arm, tests: Update config files to more recent kernels and create 64-bit regressions.
This changes the default ARM system to a Versatile Express-like system that supports 2GB of memory and PCI devices and updates the default kernels/file-systems for AArch64 ARM systems (64-bit) to support up to 32GB of memory and PCI devices. Some platforms that are no longer supported have been pruned from the configuration files. In addition a set of 64-bit ARM regressions have been added to the regression system. diffstat: configs/common/Benchmarks.py | 2 +- configs/common/FSConfig.py | 15 +++++-- configs/common/Options.py | 2 +- configs/example/fs.py | 4 +- src/arch/arm/ArmSystem.py | 4 +- tests/SConscript | 15 +++++++- tests/configs/arm_generic.py | 22 +++++++---- tests/configs/base_config.py | 4 +- tests/configs/realview64-minor-dual.py | 45 +++++++++++++++++++++++ tests/configs/realview64-minor.py | 44 ++++++++++++++++++++++ tests/configs/realview64-o3-checker.py | 46 +++++++++++++++++++++++ tests/configs/realview64-o3-dual.py | 46 +++++++++++++++++++++++ tests/configs/realview64-o3.py | 45 +++++++++++++++++++++++ tests/configs/realview64-simple-atomic-dual.py | 45 +++++++++++++++++++++++ tests/configs/realview64-simple-atomic.py | 45 +++++++++++++++++++++++ tests/configs/realview64-simple-timing-dual.py | 45 +++++++++++++++++++++++ tests/configs/realview64-simple-timing.py | 44 ++++++++++++++++++++++ tests/configs/realview64-switcheroo-atomic.py | 50 ++++++++++++++++++++++++++ tests/configs/realview64-switcheroo-full.py | 50 ++++++++++++++++++++++++++ tests/configs/realview64-switcheroo-o3.py | 50 ++++++++++++++++++++++++++ tests/configs/realview64-switcheroo-timing.py | 50 ++++++++++++++++++++++++++ 21 files changed, 651 insertions(+), 22 deletions(-) diffs (truncated from 877 to 300 lines): diff -r e57f5bffc553 -r b423e1d0735e configs/common/Benchmarks.py --- a/configs/common/Benchmarks.py Wed Oct 29 23:18:27 2014 -0500 +++ b/configs/common/Benchmarks.py Wed Oct 29 23:18:27 2014 -0500 @@ -56,7 +56,7 @@ 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 -r e57f5bffc553 -r b423e1d0735e configs/common/FSConfig.py --- a/configs/common/FSConfig.py Wed Oct 29 23:18:27 2014 -0500 +++ b/configs/common/FSConfig.py Wed Oct 29 23:18:27 2014 -0500 @@ -182,7 +182,7 @@ 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 @@ 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) @@ -253,9 +258,9 @@ self.realview.uart.end_on_eot = True 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') diff -r e57f5bffc553 -r b423e1d0735e configs/common/Options.py --- a/configs/common/Options.py Wed Oct 29 23:18:27 2014 -0500 +++ b/configs/common/Options.py Wed Oct 29 23:18:27 2014 -0500 @@ -241,7 +241,7 @@ 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 -r e57f5bffc553 -r b423e1d0735e configs/example/fs.py --- a/configs/example/fs.py Wed Oct 29 23:18:27 2014 -0500 +++ b/configs/example/fs.py Wed Oct 29 23:18:27 2014 -0500 @@ -82,8 +82,8 @@ 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 diff -r e57f5bffc553 -r b423e1d0735e src/arch/arm/ArmSystem.py --- a/src/arch/arm/ArmSystem.py Wed Oct 29 23:18:27 2014 -0500 +++ b/src/arch/arm/ArmSystem.py Wed Oct 29 23:18:27 2014 -0500 @@ -42,8 +42,6 @@ class ArmMachineType(Enum): map = {'RealView_EB' : 827, 'RealView_PBX' : 1901, - 'VExpress_ELT' : 2272, - 'VExpress_CA9' : 2272, 'VExpress_EMM' : 2272, 'VExpress_EMM64' : 2272} @@ -77,7 +75,7 @@ type = 'LinuxArmSystem' cxx_header = "arch/arm/linux/system.hh" load_addr_mask = 0x0fffffff - machine_type = Param.ArmMachineType('RealView_PBX', + machine_type = Param.ArmMachineType('VExpress_EMM', "Machine id from http://www.arm.linux.org.uk/developer/machines/") atags_addr = Param.Addr("Address where default atags structure should " \ "be written") diff -r e57f5bffc553 -r b423e1d0735e tests/SConscript --- a/tests/SConscript Wed Oct 29 23:18:27 2014 -0500 +++ b/tests/SConscript Wed Oct 29 23:18:27 2014 -0500 @@ -332,7 +332,20 @@ 'realview-switcheroo-atomic', 'realview-switcheroo-timing', 'realview-switcheroo-o3', - 'realview-switcheroo-full'] + 'realview-switcheroo-full', + 'realview64-simple-atomic', + 'realview64-simple-atomic-dual', + 'realview64-simple-timing', + 'realview64-simple-timing-dual', + 'realview64-o3', + 'realview64-o3-checker', + 'realview64-o3-dual', + 'realview64-minor', + 'realview64-minor-dual', + 'realview64-switcheroo-atomic', + 'realview64-switcheroo-timing', + 'realview64-switcheroo-o3', + 'realview64-switcheroo-full'] if env['TARGET_ISA'] == 'x86': configs += ['pc-simple-atomic', 'pc-simple-timing', diff -r e57f5bffc553 -r b423e1d0735e tests/configs/arm_generic.py --- a/tests/configs/arm_generic.py Wed Oct 29 23:18:27 2014 -0500 +++ b/tests/configs/arm_generic.py Wed Oct 29 23:18:27 2014 -0500 @@ -44,6 +44,7 @@ from Caches import * from base_config import * from O3_ARM_v7a import * +from Benchmarks import SysConfig class ArmSESystemUniprocessor(BaseSESystemUniprocessor): """Syscall-emulation builder for ARM uniprocessor systems. @@ -70,16 +71,21 @@ ARM-specific create_system method to a class deriving from one of the generic base systems. """ - def __init__(self, machine_type): + def __init__(self, machine_type, **kwargs): """ Arguments: machine_type -- String describing the platform to simulate + num_cpus -- integer number of CPUs in the system """ self.machine_type = machine_type + self.num_cpus = kwargs.get('num_cpus', 1) + self.mem_size = kwargs.get('mem_size', '256MB') def create_system(self): + sc = SysConfig(None, self.mem_size, None) system = FSConfig.makeArmSystem(self.mem_mode, - self.machine_type, None, False) + self.machine_type, self.num_cpus, + sc, False) # We typically want the simulator to panic if the kernel # panics or oopses. This prevents the simulator from running @@ -94,7 +100,7 @@ BaseFSSystem): """Basic ARM full system builder.""" - def __init__(self, machine_type='RealView_PBX', **kwargs): + def __init__(self, machine_type='VExpress_EMM', **kwargs): """Initialize an ARM system that supports full system simulation. Note: Keyword arguments that are not listed below will be @@ -104,7 +110,7 @@ machine_type -- String describing the platform to simulate """ BaseSystem.__init__(self, **kwargs) - LinuxArmSystemBuilder.__init__(self, machine_type) + LinuxArmSystemBuilder.__init__(self, machine_type, **kwargs) def create_caches_private(self, cpu): # Use the more representative cache configuration @@ -121,13 +127,13 @@ test cases. """ - def __init__(self, machine_type='RealView_PBX', **kwargs): + def __init__(self, machine_type='VExpress_EMM', **kwargs): BaseFSSystemUniprocessor.__init__(self, **kwargs) - LinuxArmSystemBuilder.__init__(self, machine_type) + LinuxArmSystemBuilder.__init__(self, machine_type, **kwargs) class LinuxArmFSSwitcheroo(LinuxArmSystemBuilder, BaseFSSwitcheroo): """Uniprocessor ARM system prepared for CPU switching""" - def __init__(self, machine_type='RealView_PBX', **kwargs): + def __init__(self, machine_type='VExpress_EMM', **kwargs): BaseFSSwitcheroo.__init__(self, **kwargs) - LinuxArmSystemBuilder.__init__(self, machine_type) + LinuxArmSystemBuilder.__init__(self, machine_type, **kwargs) diff -r e57f5bffc553 -r b423e1d0735e tests/configs/base_config.py --- a/tests/configs/base_config.py Wed Oct 29 23:18:27 2014 -0500 +++ b/tests/configs/base_config.py Wed Oct 29 23:18:27 2014 -0500 @@ -58,7 +58,8 @@ __metaclass__ = ABCMeta def __init__(self, mem_mode='timing', mem_class=SimpleMemory, - cpu_class=TimingSimpleCPU, num_cpus=1, checker=False): + cpu_class=TimingSimpleCPU, num_cpus=1, checker=False, + mem_size=None): """Initialize a simple base system. Keyword Arguments: @@ -67,6 +68,7 @@ cpu_class -- CPU class to use num_cpus -- Number of CPUs to instantiate checker -- Set to True to add checker CPUs + mem_size -- Override the default memory size """ self.mem_mode = mem_mode self.mem_class = mem_class diff -r e57f5bffc553 -r b423e1d0735e tests/configs/realview64-minor-dual.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/configs/realview64-minor-dual.py Wed Oct 29 23:18:27 2014 -0500 @@ -0,0 +1,45 @@ +# Copyright (c) 2012 ARM Limited +# All rights reserved. +# +# The license below extends only to copyright in the software and shall +# not be construed as granting a license to any other intellectual +# property including but not limited to intellectual property relating +# to a hardware implementation of the functionality of the software +# licensed hereunder. You may use the software subject to the license +# terms below provided that you ensure that this notice is replicated +# unmodified and in its entirety in all distributions of the software, +# modified or unmodified, in source code or in binary form. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# Authors: Andreas Sandberg + +from m5.objects import * +from arm_generic import * + +root = LinuxArmFSSystem(machine_type='VExpress_EMM64', + mem_mode='timing', + mem_class=DDR3_1600_x64, + cpu_class=MinorCPU, + num_cpus=2).create_root() diff -r e57f5bffc553 -r b423e1d0735e tests/configs/realview64-minor.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/configs/realview64-minor.py Wed Oct 29 23:18:27 2014 -0500 @@ -0,0 +1,44 @@ +# Copyright (c) 2014 ARM Limited +# All rights reserved. +# +# The license below extends only to copyright in the software and shall +# not be construed as granting a license to any other intellectual +# property including but not limited to intellectual property relating +# to a hardware implementation of the functionality of the software +# licensed hereunder. You may use the software subject to the license +# terms below provided that you ensure that this notice is replicated +# unmodified and in its entirety in all distributions of the software, +# modified or unmodified, in source code or in binary form. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT _______________________________________________ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev