-from m5 import *
+import m5
+from m5.objects import *
import os
from SysPaths import *
+parser = optparse.OptionParser(option_list=m5.standardOptions)
+
+parser.add_option("-t", "--timing", action="store_true")
+
+(options, args) = parser.parse_args()
+
+if args:
+ print "Error: script doesn't take any positional arguments"
+ sys.exit(1)
+
# Base for tests is directory containing this file.
test_base = os.path.dirname(__file__)
read_only=True)
simple_disk = SimpleDisk(disk=Parent.raw_image)
intrctrl = IntrControl()
- cpu = AtomicSimpleCPU(mem=Parent.magicbus2)
+ if options.timing:
+ cpu = TimingSimpleCPU()
+ else:
+ cpu = AtomicSimpleCPU()
+ cpu.mem = Parent.magicbus2
sim_console = SimConsole(listener=ConsoleListener(port=3456))
kernel = binary('vmlinux')
pal = binary('ts_osfpal')
root = DualRoot(ClientSystem = LinuxAlphaSystem(readfile=script('netperf-stream-nt-client.rcS')),
ServerSystem = LinuxAlphaSystem(readfile=script('netperf-server.rcS')))
+m5.instantiate(root)
+
+exit_event = m5.simulate()
+
+print 'Exiting @', m5.curTick(), 'because', exit_event.getCause()
+# Simple test script
+#
+# Alpha: "m5 test.py"
+# MIPS: "m5 test.py -a Mips -c hello_mips"
+
import os, optparse, sys
import m5
from m5.objects import *
+# parse command-line arguments
parser = optparse.OptionParser(option_list=m5.standardOptions)
+parser.add_option("-c", "--cmd", default="hello")
+parser.add_option("-a", "--arch", choices=["Alpha", "Mips"], default="Alpha")
parser.add_option("-t", "--timing", action="store_true")
(options, args) = parser.parse_args()
print "Error: script doesn't take any positional arguments"
sys.exit(1)
+# build configuration
this_dir = os.path.dirname(__file__)
-process = AlphaLiveProcess()
-process.executable = os.path.join(this_dir, 'hello')
-process.cmd = 'hello'
+print "arch =", options.arch
+process_class = eval(options.arch + "LiveProcess")
+
+process = process_class()
+process.executable = os.path.join(this_dir, options.cmd)
+process.cmd = options.cmd
magicbus = Bus()
mem = PhysicalMemory()
system.c1 = Connector(side_a = mem, side_b = magicbus)
root = Root(system = system)
+# instantiate configuration
m5.instantiate(root)
+# simulate until program terminates
exit_event = m5.simulate()
print 'Exiting @', m5.curTick(), 'because', exit_event.getCause()