summaryrefslogtreecommitdiff
path: root/tests/configs/arm_generic.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/configs/arm_generic.py')
-rw-r--r--tests/configs/arm_generic.py52
1 files changed, 34 insertions, 18 deletions
diff --git a/tests/configs/arm_generic.py b/tests/configs/arm_generic.py
index a243f137f..c074f99cf 100644
--- a/tests/configs/arm_generic.py
+++ b/tests/configs/arm_generic.py
@@ -73,7 +73,7 @@ class LinuxArmSystemBuilder(object):
ARM-specific create_system method to a class deriving from one of
the generic base systems.
"""
- def __init__(self, machine_type, **kwargs):
+ def __init__(self, machine_type, aarch64_kernel, **kwargs):
"""
Arguments:
machine_type -- String describing the platform to simulate
@@ -84,9 +84,21 @@ class LinuxArmSystemBuilder(object):
self.num_cpus = kwargs.get('num_cpus', 1)
self.mem_size = kwargs.get('mem_size', '256MB')
self.use_ruby = kwargs.get('use_ruby', False)
+ self.aarch64_kernel = aarch64_kernel
def create_system(self):
- sc = SysConfig(None, self.mem_size, None)
+ if self.aarch64_kernel:
+ gem5_kernel = "vmlinux.arm64"
+ disk_image = "m5_exit.squashfs.arm64"
+ else:
+ gem5_kernel = "vmlinux.arm"
+ disk_image = "m5_exit.squashfs.arm"
+
+ default_kernels = {
+ "VExpress_GEM5_V1": gem5_kernel,
+ }
+
+ sc = SysConfig(None, self.mem_size, disk_image, "/dev/sda")
system = FSConfig.makeArmSystem(self.mem_mode,
self.machine_type, self.num_cpus,
sc, False, ruby=self.use_ruby)
@@ -97,26 +109,21 @@ class LinuxArmSystemBuilder(object):
system.panic_on_panic = True
system.panic_on_oops = True
- default_kernels = {
- "VExpress_EMM": "vmlinux.aarch32.ll_20131205.0-gem5",
- "VExpress_EMM64": "vmlinux.aarch64.20140821",
- }
system.kernel = SysPaths.binary(default_kernels[self.machine_type])
- default_dtbs = {
- "VExpress_EMM": "vexpress.aarch32.ll_20131205.0-gem5.{}cpu.dtb" \
- .format(self.num_cpus),
- "VExpress_EMM64": "vexpress.aarch64.20140821.dtb",
- }
- system.dtb_filename = SysPaths.binary(default_dtbs[self.machine_type])
self.init_system(system)
+
+ system.generateDtb(m5.options.outdir, 'system.dtb')
return system
class LinuxArmFSSystem(LinuxArmSystemBuilder,
BaseFSSystem):
"""Basic ARM full system builder."""
- def __init__(self, machine_type='VExpress_EMM', **kwargs):
+ def __init__(self,
+ machine_type='VExpress_GEM5_V1',
+ aarch64_kernel=True,
+ **kwargs):
"""Initialize an ARM system that supports full system simulation.
Note: Keyword arguments that are not listed below will be
@@ -126,7 +133,8 @@ class LinuxArmFSSystem(LinuxArmSystemBuilder,
machine_type -- String describing the platform to simulate
"""
BaseFSSystem.__init__(self, **kwargs)
- LinuxArmSystemBuilder.__init__(self, machine_type, **kwargs)
+ LinuxArmSystemBuilder.__init__(
+ self, machine_type, aarch64_kernel, **kwargs)
def create_caches_private(self, cpu):
# Use the more representative cache configuration
@@ -143,13 +151,21 @@ class LinuxArmFSSystemUniprocessor(LinuxArmSystemBuilder,
test cases.
"""
- def __init__(self, machine_type='VExpress_EMM', **kwargs):
+ def __init__(self,
+ machine_type='VExpress_GEM5_V1',
+ aarch64_kernel=True,
+ **kwargs):
BaseFSSystemUniprocessor.__init__(self, **kwargs)
- LinuxArmSystemBuilder.__init__(self, machine_type, **kwargs)
+ LinuxArmSystemBuilder.__init__(
+ self, machine_type, aarch64_kernel, **kwargs)
class LinuxArmFSSwitcheroo(LinuxArmSystemBuilder, BaseFSSwitcheroo):
"""Uniprocessor ARM system prepared for CPU switching"""
- def __init__(self, machine_type='VExpress_EMM', **kwargs):
+ def __init__(self,
+ machine_type='VExpress_GEM5_V1',
+ aarch64_kernel=True,
+ **kwargs):
BaseFSSwitcheroo.__init__(self, **kwargs)
- LinuxArmSystemBuilder.__init__(self, machine_type, **kwargs)
+ LinuxArmSystemBuilder.__init__(
+ self, machine_type, aarch64_kernel, **kwargs)