diff options
Diffstat (limited to 'src/cpu/testers/memtest/MemTest.py')
-rw-r--r-- | src/cpu/testers/memtest/MemTest.py | 57 |
1 files changed, 37 insertions, 20 deletions
diff --git a/src/cpu/testers/memtest/MemTest.py b/src/cpu/testers/memtest/MemTest.py index ad3ee9233..d09537639 100644 --- a/src/cpu/testers/memtest/MemTest.py +++ b/src/cpu/testers/memtest/MemTest.py @@ -1,3 +1,15 @@ +# Copyright (c) 2015 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. +# # Copyright (c) 2005-2007 The Regents of The University of Michigan # All rights reserved. # @@ -25,6 +37,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # Authors: Nathan Binkert +# Andreas Hansson from MemObject import MemObject from m5.params import * @@ -33,26 +46,30 @@ from m5.proxy import * class MemTest(MemObject): type = 'MemTest' cxx_header = "cpu/testers/memtest/memtest.hh" - max_loads = Param.Counter(0, "number of loads to execute") - atomic = Param.Bool(False, "Execute tester in atomic mode? (or timing)\n") - memory_size = Param.Int(65536, "memory size") - percent_dest_unaligned = Param.Percent(50, - "percent of copy dest address that are unaligned") - percent_reads = Param.Percent(65, "target read percentage") - issue_dmas = Param.Bool(False, "this memtester should issue dma requests") - percent_source_unaligned = Param.Percent(50, - "percent of copy source address that are unaligned") - percent_functional = Param.Percent(50, "percent of access that are functional") - percent_uncacheable = Param.Percent(10, - "target uncacheable percentage") + + # Interval of packet injection, the size of the memory range + # touched, and an optional stop condition + interval = Param.Cycles(1, "Interval between request packets") + size = Param.Unsigned(65536, "Size of memory region to use (bytes)") + max_loads = Param.Counter(0, "Number of loads to execute before exiting") + + # Control the mix of packets and if functional accesses are part of + # the mix or not + percent_reads = Param.Percent(65, "Percentage reads") + percent_functional = Param.Percent(50, "Percentage functional accesses") + percent_uncacheable = Param.Percent(10, "Percentage uncacheable") + + # Determine how often to print progress messages and what timeout + # to use for checking progress of both requests and responses progress_interval = Param.Counter(1000000, - "progress report interval (in accesses)") - trace_addr = Param.Addr(0, "address to trace") + "Progress report interval (in accesses)") + progress_check = Param.Cycles(5000000, "Cycles before exiting " \ + "due to lack of progress") - test = MasterPort("Port to the memory system to test") - functional = MasterPort("Port to the functional memory " \ - "used for verification") - suppress_func_warnings = Param.Bool(False, - "suppress warnings when functional accesses fail.\n") - sys = Param.System(Parent.any, "System Parameter") + port = MasterPort("Port to the memory system") + system = Param.System(Parent.any, "System this tester is part of") + # Add the ability to supress error responses on functional + # accesses as Ruby needs this + suppress_func_warnings = Param.Bool(False, "Suppress warnings when "\ + "functional accesses fail.") |