Compiles now (with CPU_MODELS=SimpleCPU), but hangs

on execution.

configs/test/test.py:
    Move test binary out of m5-test, don't depend on
    m5-test/Benchmarks.
python/m5/objects/System.py:
    Split out full-system-only parameters (lost in merge).
sim/system.cc:
    Need to be able to instantiate System directly in SE mode
    (lost in merge).
sim/system.hh:
    A few more functions here are FS-only.
configs/test/hello:
    Add in binary.

--HG--
rename : configs/test.py => configs/test/test.py
extra : convert_revision : 4051b18772e0a0dcb97eb591d4373683be9f4395
This commit is contained in:
Steve Reinhardt 2006-03-10 10:01:29 -05:00
parent f102365bfe
commit e3d96aa889
6 changed files with 50 additions and 17 deletions

View file

@ -1,8 +0,0 @@
from m5 import *
AddToPath('/z/stever/bk/m5-test')
import Benchmarks
mem = PhysicalMemory()
cpu = SimpleCPU(workload=Benchmarks.HelloWorld(), mem=mem)
system = System(physmem=mem, cpu=cpu)
root = Root(system=system)

BIN
configs/test/hello Executable file

Binary file not shown.

10
configs/test/test.py Normal file
View file

@ -0,0 +1,10 @@
from m5 import *
class HelloWorld(LiveProcess):
executable = '../configs/test/hello'
cmd = 'hello'
mem = PhysicalMemory()
cpu = SimpleCPU(workload=HelloWorld(), mem=mem)
system = System(physmem=mem, cpu=cpu)
root = Root(system=system)

View file

@ -2,10 +2,11 @@ from m5 import *
class System(SimObject): class System(SimObject):
type = 'System' type = 'System'
physmem = Param.PhysicalMemory(Parent.any, "phsyical memory")
if build_env['FULL_SYSTEM']:
boot_cpu_frequency = Param.Frequency(Self.cpu[0].clock.frequency, boot_cpu_frequency = Param.Frequency(Self.cpu[0].clock.frequency,
"boot processor frequency") "boot processor frequency")
memctrl = Param.MemoryController(Parent.any, "memory controller") memctrl = Param.MemoryController(Parent.any, "memory controller")
physmem = Param.PhysicalMemory(Parent.any, "phsyical memory")
init_param = Param.UInt64(0, "numerical value to pass into simulator") init_param = Param.UInt64(0, "numerical value to pass into simulator")
bin = Param.Bool(False, "is this system binned") bin = Param.Bool(False, "is this system binned")
binned_fns = VectorParam.String([], "functions broken down and binned") binned_fns = VectorParam.String([], "functions broken down and binned")

View file

@ -217,5 +217,35 @@ printSystems()
System::printSystems(); System::printSystems();
} }
#if FULL_SYSTEM
// In full system mode, only derived classes (e.g. AlphaLinuxSystem)
// can be created directly.
DEFINE_SIM_OBJECT_CLASS_NAME("System", System) DEFINE_SIM_OBJECT_CLASS_NAME("System", System)
#else
BEGIN_DECLARE_SIM_OBJECT_PARAMS(System)
SimObjectParam<Memory *> physmem;
END_DECLARE_SIM_OBJECT_PARAMS(System)
BEGIN_INIT_SIM_OBJECT_PARAMS(System)
INIT_PARAM(physmem, "physical memory")
END_INIT_SIM_OBJECT_PARAMS(System)
CREATE_SIM_OBJECT(System)
{
System::Params *p = new System::Params;
p->name = getInstanceName();
p->physmem = physmem;
return new System(p);
}
REGISTER_SIM_OBJECT("System", System)
#endif

View file

@ -101,6 +101,7 @@ class System : public SimObject
protected: protected:
#if FULL_SYSTEM
/** /**
* Fix up an address used to match PCs for hooking simulator * Fix up an address used to match PCs for hooking simulator
* events on to target function executions. See comment in * events on to target function executions. See comment in
@ -125,7 +126,6 @@ class System : public SimObject
return NULL; return NULL;
} }
#if FULL_SYSTEM
/** Add a function-based event to kernel code. */ /** Add a function-based event to kernel code. */
template <class T> template <class T>
T *System::addKernelFuncEvent(const char *lbl) T *System::addKernelFuncEvent(const char *lbl)