diff options
author | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2017-03-17 15:11:14 +0000 |
---|---|---|
committer | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2017-06-13 15:54:21 +0000 |
commit | e2bc2142d4ce6c7cd655939f7430956837343aed (patch) | |
tree | 5031997e90667eb3a3c941c4900e9f4546ca9550 | |
parent | dcaa05f033ed898fa398fb2f4d3cc51335b7a013 (diff) | |
download | gem5-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/ARM | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | tests/testing/tests.py | 19 |
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 |