summaryrefslogtreecommitdiff
path: root/src/dev/alpha
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2011-09-30 00:28:33 -0700
committerGabe Black <gblack@eecs.umich.edu>2011-09-30 00:28:33 -0700
commit51f7a6666027870c24432dcaa56cfc1b4741fdc6 (patch)
tree6dd74cdab55616bae7c974bc6c4fc39e60c9808a /src/dev/alpha
parent35e20c7470a16cbc1187553375269800b980eb78 (diff)
downloadgem5-51f7a6666027870c24432dcaa56cfc1b4741fdc6.tar.xz
SE/FS: Build the devices in SE mode.
Diffstat (limited to 'src/dev/alpha')
-rw-r--r--src/dev/alpha/AlphaBackdoor.py4
-rw-r--r--src/dev/alpha/SConscript2
-rw-r--r--src/dev/alpha/backdoor.cc11
-rw-r--r--src/dev/alpha/backdoor.hh2
-rw-r--r--src/dev/alpha/tsunami.cc2
5 files changed, 18 insertions, 3 deletions
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 <cstddef>
#include <string>
+#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;