summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Nikoleris <nikos.nikoleris@arm.com>2017-03-17 15:11:14 +0000
committerNikos Nikoleris <nikos.nikoleris@arm.com>2017-06-13 15:54:21 +0000
commite2bc2142d4ce6c7cd655939f7430956837343aed (patch)
tree5031997e90667eb3a3c941c4900e9f4546ca9550
parentdcaa05f033ed898fa398fb2f4d3cc51335b7a013 (diff)
downloadgem5-e2bc2142d4ce6c7cd655939f7430956837343aed.tar.xz
scons: Make MOESI_CMP_directory the default ARM ruby protocol
Previously ARM binaries were by default compiled with the MI_example protocol. The MI_example protocol cannot properly support load/store exclusive instructions and therefore it cannot be used to simulate multicore ARM systems. This change changes to MOESI_CMP_directory as the default ruby protocol for ARM systems. Change-Id: I942d950ba466aea9a75f3d8764f9f3eddd0c3baa Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2906 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
-rw-r--r--build_opts/ARM2
-rwxr-xr-x[-rw-r--r--]tests/testing/tests.py19
2 files changed, 17 insertions, 4 deletions
diff --git a/build_opts/ARM b/build_opts/ARM
index b175fd0ad..c47307816 100644
--- a/build_opts/ARM
+++ b/build_opts/ARM
@@ -1,3 +1,3 @@
TARGET_ISA = 'arm'
CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,MinorCPU'
-PROTOCOL = 'MI_example'
+PROTOCOL = 'MOESI_CMP_directory'
diff --git a/tests/testing/tests.py b/tests/testing/tests.py
index c9a2a06b2..a83f5988b 100644..100755
--- a/tests/testing/tests.py
+++ b/tests/testing/tests.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python2
#
-# Copyright (c) 2016 ARM Limited
+# Copyright (c) 2016-2017 ARM Limited
# All rights reserved
#
# The license below extends only to copyright in the software and shall
@@ -161,6 +161,16 @@ generic_configs = (
'learning-gem5-p1-two-level',
)
+default_ruby_protocol = {
+ "arm" : "MOESI_CMP_directory",
+}
+
+def get_default_protocol(arch):
+ try:
+ return default_ruby_protocol[arch]
+ except KeyError:
+ return 'MI-example'
+
all_categories = ("quick", "long")
all_modes = ("fs", "se")
@@ -337,8 +347,11 @@ def get_tests(isa,
else:
configs += generic_configs
- if ruby_protocol == 'MI_example':
- configs += [ "%s-ruby" % (c, ) for c in configs ]
+ if ruby_protocol == get_default_protocol(isa):
+ if ruby_protocol == 'MI_example':
+ configs += [ "%s-ruby" % (c, ) for c in configs ]
+ else:
+ configs += [ "%s-ruby-%s" % (c, ruby_protocol) for c in configs ]
elif ruby_protocol is not None:
# Override generic ISA configs when using Ruby (excluding
# MI_example which is included in all ISAs by default). This