summaryrefslogtreecommitdiff
path: root/dev
diff options
context:
space:
mode:
authorNathan Binkert <binkertn@umich.edu>2005-06-28 01:09:13 -0400
committerNathan Binkert <binkertn@umich.edu>2005-06-28 01:09:13 -0400
commitd172447a7ae945139d0c3465b8504cd6b77ae819 (patch)
treef5f0e9e811ef97d1f2a50dfaef634aac77916643 /dev
parent769234f69e10a923fb4251996746b31d84c9357a (diff)
downloadgem5-d172447a7ae945139d0c3465b8504cd6b77ae819.tar.xz
Pass the location of the m5 console backdoor to the console
instead of compiling it into the console version dev/alpha_access.h: move serialization stuff to alpha_console.hh define the ALPHA_ACCESS_BASE in m5 instead of in console.c and have m5 pass the value to the console dev/alpha_console.cc: dev/alpha_console.hh: Move serialization stuff into a derived class of AlphaAccess sim/system.cc: pass the value of ALPHA_ACCESS_BASE to the console code via the m5AlphaAccess console variable. --HG-- extra : convert_revision : 0ea4ba239f03d6dad51a6efae0385aa543064117
Diffstat (limited to 'dev')
-rw-r--r--dev/alpha_access.h19
-rw-r--r--dev/alpha_console.cc6
-rw-r--r--dev/alpha_console.hh8
3 files changed, 18 insertions, 15 deletions
diff --git a/dev/alpha_access.h b/dev/alpha_access.h
index 07350d622..b62966ea0 100644
--- a/dev/alpha_access.h
+++ b/dev/alpha_access.h
@@ -33,15 +33,17 @@
* System Console Memory Mapped Register Definition
*/
-#define ALPHA_ACCESS_VERSION (1302)
+#define ALPHA_ACCESS_VERSION (1303)
-#ifndef CONSOLE
-#include <iosfwd>
-#include <string>
-class Checkpoint;
-#else
+#ifdef CONSOLE
typedef unsigned uint32_t;
typedef unsigned long uint64_t;
+#else
+#ifdef ALPHA_TLASER
+#define ALPHA_ACCESS_BASE ULL(0xfffffc8000a00000)
+#else
+#define ALPHA_ACCESS_BASE ULL(0xfffffd0200000000)
+#endif
#endif
// This structure hacked up from simos
@@ -74,11 +76,6 @@ struct AlphaAccess
uint64_t bootStrapImpure; // 70:
uint32_t bootStrapCPU; // 78:
uint32_t align2; // 7C: Dummy placeholder for alignment
-
-#ifndef CONSOLE
- void serialize(std::ostream &os);
- void unserialize(Checkpoint *cp, const std::string &section);
-#endif
};
#endif // __ALPHA_ACCESS_H__
diff --git a/dev/alpha_console.cc b/dev/alpha_console.cc
index 2cbe60f47..3c009d4bd 100644
--- a/dev/alpha_console.cc
+++ b/dev/alpha_console.cc
@@ -69,7 +69,7 @@ AlphaConsole::AlphaConsole(const string &name, SimConsole *cons, SimpleDisk *d,
pioInterface->addAddrRange(RangeSize(addr, size));
}
- alphaAccess = new AlphaAccess;
+ alphaAccess = new Access;
alphaAccess->last_offset = size - 1;
alphaAccess->version = ALPHA_ACCESS_VERSION;
@@ -268,7 +268,7 @@ AlphaConsole::cacheAccess(MemReqPtr &req)
}
void
-AlphaAccess::serialize(ostream &os)
+AlphaConsole::Access::serialize(ostream &os)
{
SERIALIZE_SCALAR(last_offset);
SERIALIZE_SCALAR(version);
@@ -291,7 +291,7 @@ AlphaAccess::serialize(ostream &os)
}
void
-AlphaAccess::unserialize(Checkpoint *cp, const std::string &section)
+AlphaConsole::Access::unserialize(Checkpoint *cp, const std::string &section)
{
UNSERIALIZE_SCALAR(last_offset);
UNSERIALIZE_SCALAR(version);
diff --git a/dev/alpha_console.hh b/dev/alpha_console.hh
index 63e0d3ae4..eb59626f5 100644
--- a/dev/alpha_console.hh
+++ b/dev/alpha_console.hh
@@ -72,8 +72,14 @@ class SimpleDisk;
class AlphaConsole : public PioDevice
{
protected:
+ struct Access : public AlphaAccess
+ {
+ void serialize(std::ostream &os);
+ void unserialize(Checkpoint *cp, const std::string &section);
+ };
+
union {
- AlphaAccess *alphaAccess;
+ Access *alphaAccess;
uint8_t *consoleData;
};