projects
/
gem5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dev: Refactor UART->Terminal interface
[gem5.git]
/
src
/
dev
/
alpha
/
backdoor.cc
diff --git
a/src/dev/alpha/backdoor.cc
b/src/dev/alpha/backdoor.cc
index 66f682e66cea9952897babf71da486f61d4fb41d..5187e5bae16a7048899af0f385435d264fdbb9ab 100644
(file)
--- a/
src/dev/alpha/backdoor.cc
+++ b/
src/dev/alpha/backdoor.cc
@@
-35,6
+35,8
@@
* Alpha Console Backdoor Definition
*/
* Alpha Console Backdoor Definition
*/
+#include "dev/alpha/backdoor.hh"
+
#include <cstddef>
#include <string>
#include <cstddef>
#include <string>
@@
-44,9
+46,12
@@
#include "base/trace.hh"
#include "cpu/base.hh"
#include "cpu/thread_context.hh"
#include "base/trace.hh"
#include "cpu/base.hh"
#include "cpu/thread_context.hh"
-#include "dev/alpha/backdoor.hh"
+#include "debug/AlphaBackdoor.hh"
+#include "dev/alpha/tsunami.hh"
+#include "dev/alpha/tsunami_cchip.hh"
+#include "dev/alpha/tsunami_io.hh"
#include "dev/platform.hh"
#include "dev/platform.hh"
-#include "dev/simple_disk.hh"
+#include "dev/s
torage/s
imple_disk.hh"
#include "dev/terminal.hh"
#include "mem/packet.hh"
#include "mem/packet_access.hh"
#include "dev/terminal.hh"
#include "mem/packet.hh"
#include "mem/packet_access.hh"
@@
-58,12
+63,10
@@
using namespace std;
using namespace AlphaISA;
AlphaBackdoor::AlphaBackdoor(const Params *p)
using namespace AlphaISA;
AlphaBackdoor::AlphaBackdoor(const Params *p)
- : BasicPioDevice(p), disk(p->disk), terminal(p->terminal),
+ : BasicPioDevice(p, sizeof(struct AlphaAccess)),
+ disk(p->disk), terminal(p->terminal),
system(p->system), cpu(p->cpu)
{
system(p->system), cpu(p->cpu)
{
-
- pioSize = sizeof(struct AlphaAccess);
-
alphaAccess = new Access();
alphaAccess->last_offset = pioSize - 1;
alphaAccess = new Access();
alphaAccess->last_offset = pioSize - 1;
@@
-88,9
+91,12
@@
AlphaBackdoor::startup()
alphaAccess->kernStart = system->getKernelStart();
alphaAccess->kernEnd = system->getKernelEnd();
alphaAccess->entryPoint = system->getKernelEntry();
alphaAccess->kernStart = system->getKernelStart();
alphaAccess->kernEnd = system->getKernelEnd();
alphaAccess->entryPoint = system->getKernelEntry();
- alphaAccess->mem_size = system->
physmem->s
ize();
+ alphaAccess->mem_size = system->
memS
ize();
alphaAccess->cpuClock = cpu->frequency() / 1000000; // In MHz
alphaAccess->cpuClock = cpu->frequency() / 1000000; // In MHz
- alphaAccess->intrClockFrequency = params()->platform->intrFrequency();
+ Tsunami *tsunami = dynamic_cast<Tsunami *>(params()->platform);
+ if (!tsunami)
+ fatal("Platform is not Tsunami.\n");
+ alphaAccess->intrClockFrequency = tsunami->io->frequency();
}
Tick
}
Tick
@@
-106,7
+112,6
@@
AlphaBackdoor::read(PacketPtr pkt)
Addr daddr = pkt->getAddr() - pioAddr;
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
pkt->makeAtomicResponse();
switch (pkt->getSize())
pkt->makeAtomicResponse();
switch (pkt->getSize())
@@
-228,13
+233,13
@@
AlphaBackdoor::write(PacketPtr pkt)
break;
case offsetof(AlphaAccess, outputChar):
break;
case offsetof(AlphaAccess, outputChar):
- terminal->
out
((char)(val & 0xff));
+ terminal->
writeData
((char)(val & 0xff));
break;
default:
int cpunum = (daddr - offsetof(AlphaAccess, cpuStack)) /
sizeof(alphaAccess->cpuStack[0]);
break;
default:
int cpunum = (daddr - offsetof(AlphaAccess, cpuStack)) /
sizeof(alphaAccess->cpuStack[0]);
-
warn("%d: Trying to launch CPU number %d!", curTick, cpunum
);
+
inform("Launching CPU %d @ %d", cpunum, curTick()
);
assert(val > 0 && "Must not access primary cpu");
if (cpunum >= 0 && cpunum < 64)
alphaAccess->cpuStack[cpunum] = val;
assert(val > 0 && "Must not access primary cpu");
if (cpunum >= 0 && cpunum < 64)
alphaAccess->cpuStack[cpunum] = val;
@@
-248,7
+253,7
@@
AlphaBackdoor::write(PacketPtr pkt)
}
void
}
void
-AlphaBackdoor::Access::serialize(
ostream &os)
+AlphaBackdoor::Access::serialize(
CheckpointOut &cp) const
{
SERIALIZE_SCALAR(last_offset);
SERIALIZE_SCALAR(version);
{
SERIALIZE_SCALAR(last_offset);
SERIALIZE_SCALAR(version);
@@
-270,7
+275,7
@@
AlphaBackdoor::Access::serialize(ostream &os)
}
void
}
void
-AlphaBackdoor::Access::unserialize(Checkpoint
*cp, const std::string §ion
)
+AlphaBackdoor::Access::unserialize(Checkpoint
In &cp
)
{
UNSERIALIZE_SCALAR(last_offset);
UNSERIALIZE_SCALAR(version);
{
UNSERIALIZE_SCALAR(last_offset);
UNSERIALIZE_SCALAR(version);
@@
-292,15
+297,15
@@
AlphaBackdoor::Access::unserialize(Checkpoint *cp, const std::string §ion)
}
void
}
void
-AlphaBackdoor::serialize(
ostream &os)
+AlphaBackdoor::serialize(
CheckpointOut &cp) const
{
{
- alphaAccess->serialize(
os
);
+ alphaAccess->serialize(
cp
);
}
void
}
void
-AlphaBackdoor::unserialize(Checkpoint
*cp, const std::string §ion
)
+AlphaBackdoor::unserialize(Checkpoint
In &cp
)
{
{
- alphaAccess->unserialize(cp
, section
);
+ alphaAccess->unserialize(cp);
}
AlphaBackdoor *
}
AlphaBackdoor *