summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configs/test/fs.py24
-rw-r--r--configs/test/test.py20
-rw-r--r--src/arch/alpha/ev5.cc2
-rw-r--r--src/arch/sparc/regfile.hh3
4 files changed, 41 insertions, 8 deletions
diff --git a/configs/test/fs.py b/configs/test/fs.py
index fdbf86abe..05b38991c 100644
--- a/configs/test/fs.py
+++ b/configs/test/fs.py
@@ -1,7 +1,18 @@
-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__)
@@ -181,7 +192,11 @@ class LinuxAlphaSystem(LinuxAlphaSystem):
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')
@@ -213,3 +228,8 @@ def DualRoot(ClientSystem, ServerSystem):
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()
diff --git a/configs/test/test.py b/configs/test/test.py
index 0c6359148..8bdea16ac 100644
--- a/configs/test/test.py
+++ b/configs/test/test.py
@@ -1,9 +1,17 @@
+# 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()
@@ -12,11 +20,15 @@ if 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()
@@ -32,8 +44,10 @@ system = System(physmem = mem, cpu = cpu)
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()
diff --git a/src/arch/alpha/ev5.cc b/src/arch/alpha/ev5.cc
index dddefeb28..7d6894733 100644
--- a/src/arch/alpha/ev5.cc
+++ b/src/arch/alpha/ev5.cc
@@ -41,7 +41,7 @@
#include "cpu/thread_context.hh"
#include "kern/kernel_stats.hh"
#include "sim/debug.hh"
-#include "sim/sim_events.hh"
+#include "sim/sim_exit.hh"
#if FULL_SYSTEM
diff --git a/src/arch/sparc/regfile.hh b/src/arch/sparc/regfile.hh
index aaf1fcf24..760edc41e 100644
--- a/src/arch/sparc/regfile.hh
+++ b/src/arch/sparc/regfile.hh
@@ -61,8 +61,7 @@ namespace SparcISA
const int HprStart = 64;
const int MiscStart = 96;
-
- const uint64_t Bit64 = 0x8000000000000000;
+ const uint64_t Bit64 = (1ULL << 63);
class IntRegFile
{