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>
This commit is contained in:
Nikos Nikoleris
2017-03-17 15:11:14 +00:00
parent dcaa05f033
commit e2bc2142d4
2 changed files with 17 additions and 4 deletions

View File

@@ -1,3 +1,3 @@
TARGET_ISA = 'arm' TARGET_ISA = 'arm'
CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,MinorCPU' CPU_MODELS = 'AtomicSimpleCPU,TimingSimpleCPU,O3CPU,MinorCPU'
PROTOCOL = 'MI_example' PROTOCOL = 'MOESI_CMP_directory'

19
tests/testing/tests.py Normal file → Executable file
View File

@@ -1,6 +1,6 @@
#!/usr/bin/env python2 #!/usr/bin/env python2
# #
# Copyright (c) 2016 ARM Limited # Copyright (c) 2016-2017 ARM Limited
# All rights reserved # All rights reserved
# #
# The license below extends only to copyright in the software and shall # The license below extends only to copyright in the software and shall
@@ -161,6 +161,16 @@ generic_configs = (
'learning-gem5-p1-two-level', '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_categories = ("quick", "long")
all_modes = ("fs", "se") all_modes = ("fs", "se")
@@ -337,8 +347,11 @@ def get_tests(isa,
else: else:
configs += generic_configs configs += generic_configs
if ruby_protocol == 'MI_example': if ruby_protocol == get_default_protocol(isa):
configs += [ "%s-ruby" % (c, ) for c in configs ] 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: elif ruby_protocol is not None:
# Override generic ISA configs when using Ruby (excluding # Override generic ISA configs when using Ruby (excluding
# MI_example which is included in all ISAs by default). This # MI_example which is included in all ISAs by default). This