49 #include "debug/AlphaBackdoor.hh"
59 #include "params/AlphaBackdoor.hh"
63 using namespace AlphaISA;
67 disk(p->disk), terminal(p->terminal),
98 fatal(
"Platform is not Tsunami.\n");
119 case sizeof(uint32_t):
141 pkt->
get<uint32_t>());
143 case sizeof(uint64_t):
183 int cpunum = (daddr - offsetof(
AlphaAccess, cpuStack)) /
186 if (cpunum >= 0 && cpunum < 64)
189 panic(
"Unknown 64bit access, %#x\n", daddr);
192 pkt->
get<uint64_t>());
206 uint64_t
val = pkt->
get<uint64_t>();
207 assert(pkt->
getSize() ==
sizeof(uint64_t));
231 panic(
"Invalid disk operation!");
240 int cpunum = (daddr - offsetof(
AlphaAccess, cpuStack)) /
243 assert(val > 0 &&
"Must not access primary cpu");
244 if (cpunum >= 0 && cpunum < 64)
247 panic(
"Unknown 64bit access, %#x\n", daddr);
312 AlphaBackdoorParams::create()
void serialize(CheckpointOut &cp) const override
Serialize an object.
void set(T v, ByteOrder endian)
Set the value in the data pointer to v using the specified endianness.
Emulation of the Tsunami CChip CSRs.
const Params * params() const
AlphaSystem * system
a pointer to the system we are running in
Addr getKernelStart() const
Returns the address the kernel starts at.
void startup() override
startup() is the final initialization call before simulation.
Top level class for Tsunami Chipset emulation.
Tick read(PacketPtr pkt) override
memory mapped reads and writes
BaseCPU * cpu
a pointer to the CPU boot cpu
T get(ByteOrder endian) const
Get the data in the packet byte swapped from the specified endianness.
#define UNSERIALIZE_SCALAR(scalar)
void setAlphaAccess(Addr access)
Set the m5AlphaAccess pointer in the console.
Tick curTick()
The current simulated tick.
Addr pioSize
Size that the device's address range.
AlphaBackdoorParams Params
System Console Backdoor Interface.
void makeAtomicResponse()
uint64_t Tick
Tick count type.
Declaration of top level class for the Tsunami chipset.
#define SERIALIZE_ARRAY(member, size)
Tsunami I/O Space mapping including RTC/timer interrupts.
Tick frequency() const
Return the freqency of the RTC.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Declaration of IniFile object.
Bitfield< 25, 24 > numCPUs
Addr getKernelEnd() const
Returns the address the kernel ends at.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
AlphaBackdoor(const Params *p)
#define ALPHA_ACCESS_VERSION
#define SERIALIZE_SCALAR(scalar)
#define UNSERIALIZE_ARRAY(member, size)
Addr memSize() const
Amount of physical memory that exists.
uint32_t intrClockFrequency
Addr getKernelEntry() const
Returns the address the entry point to the kernel code.
Declaration of the Packet class.
std::ostream CheckpointOut
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
void read(Addr addr, baddr_t block, int count) const
void serialize(CheckpointOut &cp) const override
standard serialization routines for checkpointing
Memory mapped interface to the system console.
Tick pioDelay
Delay that the device experinces on an access.
Terminal * terminal
the system console (the terminal) is accessable from the console
TsunamiIO * io
Pointer to the TsunamiIO device which has the RTC.
SimpleDisk * disk
the disk must be accessed from the console
void unserialize(CheckpointIn &cp) override
Unserialize an object.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Addr pioAddr
Address that the device listens to.