49 #include "debug/AlphaBackdoor.hh" 59 #include "params/AlphaBackdoor.hh" 67 disk(p->disk), terminal(p->terminal),
98 fatal(
"Platform is not Tsunami.\n");
119 case sizeof(uint32_t):
141 pkt->
getLE<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->
getLE<uint64_t>());
206 uint64_t
val = pkt->
getLE<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()
#define panic(...)
This implements a cprintf based panic() function.
void serialize(CheckpointOut &cp) const override
Serialize an object.
Emulation of the Tsunami CChip CSRs.
Addr getKernelEntry() const
Returns the address the entry point to the kernel code.
#define fatal(...)
This implements a cprintf based fatal() function.
AlphaSystem * system
a pointer to the system we are running in
void startup() override
startup() is the final initialization call before simulation.
Top level class for Tsunami Chipset emulation.
void writeData(uint8_t c) override
Transmit a character from the host interface to the device.
Overload hash function for BasicBlockRange type.
Tick read(PacketPtr pkt) override
memory mapped reads and writes
void read(Addr addr, baddr_t block, int count) const
BaseCPU * cpu
a pointer to the CPU boot cpu
void setLE(T v)
Set the value in the data pointer to v as little endian.
#define UNSERIALIZE_SCALAR(scalar)
void setAlphaAccess(Addr access)
Set the m5AlphaAccess pointer in the console.
Tick curTick()
The current simulated tick.
Addr memSize() const
Amount of physical memory that exists.
Addr pioSize
Size that the device's address range.
System Console Backdoor Interface.
AlphaBackdoorParams Params
uint64_t frequency() const
void makeAtomicResponse()
uint64_t Tick
Tick count type.
Declaration of top level class for the Tsunami chipset.
const Params * params() const
#define SERIALIZE_ARRAY(member, size)
unsigned numContexts() const
Addr getKernelStart() const
Returns the address the kernel starts at.
Tsunami I/O Space mapping including RTC/timer interrupts.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Declaration of IniFile object.
Bitfield< 25, 24 > numCPUs
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)
Tick frequency() const
Return the freqency of the RTC.
uint32_t intrClockFrequency
Declaration of the Packet class.
std::ostream CheckpointOut
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
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.
T getLE() const
Get the data in the packet byte swapped from little endian to host endian.
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.
Addr getKernelEnd() const
Returns the address the kernel ends at.