From 51f7a6666027870c24432dcaa56cfc1b4741fdc6 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Fri, 30 Sep 2011 00:28:33 -0700 Subject: SE/FS: Build the devices in SE mode. --- src/dev/alpha/AlphaBackdoor.py | 4 +++- src/dev/alpha/SConscript | 2 +- src/dev/alpha/backdoor.cc | 11 ++++++++++- src/dev/alpha/backdoor.hh | 2 ++ src/dev/alpha/tsunami.cc | 2 ++ 5 files changed, 18 insertions(+), 3 deletions(-) (limited to 'src/dev/alpha') diff --git a/src/dev/alpha/AlphaBackdoor.py b/src/dev/alpha/AlphaBackdoor.py index fa9627164..f7402f593 100644 --- a/src/dev/alpha/AlphaBackdoor.py +++ b/src/dev/alpha/AlphaBackdoor.py @@ -26,6 +26,7 @@ # # Authors: Nathan Binkert +from m5.defines import buildEnv from m5.params import * from m5.proxy import * from Device import BasicPioDevice @@ -35,4 +36,5 @@ class AlphaBackdoor(BasicPioDevice): cpu = Param.BaseCPU(Parent.cpu[0], "Processor") disk = Param.SimpleDisk("Simple Disk") terminal = Param.Terminal(Parent.any, "The console terminal") - system = Param.AlphaSystem(Parent.any, "system object") + if buildEnv['FULL_SYSTEM']: # No AlphaSystem in SE mode. + system = Param.AlphaSystem(Parent.any, "system object") diff --git a/src/dev/alpha/SConscript b/src/dev/alpha/SConscript index 32baa6f48..9c8a5b4ce 100644 --- a/src/dev/alpha/SConscript +++ b/src/dev/alpha/SConscript @@ -31,7 +31,7 @@ Import('*') -if env['FULL_SYSTEM'] and env['TARGET_ISA'] == 'alpha': +if env['TARGET_ISA'] == 'alpha': SimObject('AlphaBackdoor.py') SimObject('Tsunami.py') diff --git a/src/dev/alpha/backdoor.cc b/src/dev/alpha/backdoor.cc index 31ab62866..4d9d046de 100644 --- a/src/dev/alpha/backdoor.cc +++ b/src/dev/alpha/backdoor.cc @@ -38,7 +38,11 @@ #include #include +#include "config/full_system.hh" + +#if FULL_SYSTEM //XXX No AlphaSystem in SE mode. #include "arch/alpha/system.hh" +#endif #include "base/inifile.hh" #include "base/str.hh" #include "base/trace.hh" @@ -60,7 +64,10 @@ using namespace AlphaISA; AlphaBackdoor::AlphaBackdoor(const Params *p) : BasicPioDevice(p), disk(p->disk), terminal(p->terminal), - system(p->system), cpu(p->cpu) +#if FULL_SYSTEM //XXX No system pointer in SE mode. + system(p->system), +#endif + cpu(p->cpu) { pioSize = sizeof(struct AlphaAccess); @@ -84,6 +91,7 @@ AlphaBackdoor::AlphaBackdoor(const Params *p) void AlphaBackdoor::startup() { +#if FULL_SYSTEM //XXX No system pointer in SE mode. system->setAlphaAccess(pioAddr); alphaAccess->numCPUs = system->numContexts(); alphaAccess->kernStart = system->getKernelStart(); @@ -92,6 +100,7 @@ AlphaBackdoor::startup() alphaAccess->mem_size = system->physmem->size(); alphaAccess->cpuClock = cpu->frequency() / 1000000; // In MHz alphaAccess->intrClockFrequency = params()->platform->intrFrequency(); +#endif } Tick diff --git a/src/dev/alpha/backdoor.hh b/src/dev/alpha/backdoor.hh index 2acaba9a3..5249ce71f 100644 --- a/src/dev/alpha/backdoor.hh +++ b/src/dev/alpha/backdoor.hh @@ -92,8 +92,10 @@ class AlphaBackdoor : public BasicPioDevice /** the system console (the terminal) is accessable from the console */ Terminal *terminal; +#if FULL_SYSTEM //XXX No AlphaSystem defined in SE mode. /** a pointer to the system we are running in */ AlphaSystem *system; +#endif /** a pointer to the CPU boot cpu */ BaseCPU *cpu; diff --git a/src/dev/alpha/tsunami.cc b/src/dev/alpha/tsunami.cc index 34aab6ed0..16e2bfb28 100644 --- a/src/dev/alpha/tsunami.cc +++ b/src/dev/alpha/tsunami.cc @@ -52,8 +52,10 @@ using namespace TheISA; Tsunami::Tsunami(const Params *p) : Platform(p), system(p->system) { +#if FULL_SYSTEM //XXX No platform pointer in SE mode. // set the back pointer from the system to myself system->platform = this; +#endif for (int i = 0; i < Tsunami::Max_CPUs; i++) intr_sum_type[i] = 0; -- cgit v1.2.3