34 #include <sys/signal.h> 38 #include "arch/vtophys.hh" 42 #include "debug/Loader.hh" 44 #include "params/AlphaSystem.hh" 50 :
System(p), intrFreq(0), virtProxy(getSystemPort(), p->cache_line_size)
71 panic(
"could not load console symbols\n");
74 panic(
"could not load pal symbols\n");
77 panic(
"could not load pal symbols\n");
80 panic(
"could not load console symbols\n");
83 panic(
"could not load pal symbols\n");
86 panic(
"could not load pal symbols\n");
113 int cpuId = tc->contextId();
116 tc->setIntReg(16, cpuId);
117 tc->setIntReg(0, cpuId);
122 tc->pcState(base + offset);
139 strlen(
params()->boot_osflags.c_str()));
153 panic(
"could not find hwrpb\n");
207 const uint32_t inst_mask = 0xffff0000;
209 const uint32_t gp_ldah_pattern = (9 << 26) | (29 << 21) | (27 << 16);
211 const uint32_t gp_lda_pattern = (8 << 26) | (29 << 21) | (29 << 16);
216 if ((i1 & inst_mask) == gp_ldah_pattern &&
217 (i2 & inst_mask) == gp_lda_pattern) {
219 DPRINTF(Loader,
"fixFuncEventAddr: %p -> %p", addr, new_addr);
233 panic(
"could not find m5AlphaAccess\n");
252 AlphaSystemParams::create()
#define panic(...)
This implements a cprintf based panic() function.
BreakPCEvent * consolePanicEvent
Event to halt the simulator if the console calls panic()
virtual void setupFuncEvents()
Setup all the function events.
#define fatal(...)
This implements a cprintf based fatal() function.
SymbolTable * consoleSymtab
console symbol table
bool write(const PortProxy &proxy) const
ObjectFile * createObjectFile(const std::string &fname, bool raw)
T read(Addr address) const
Read sizeof(T) bytes from address and return as object T.
ObjectFile * console
Object pointer for the console code.
SymbolTable * debugSymbolTable
Global unified debugging symbol table (for target).
void startup() override
Override startup() to provide a path to call setupFuncEvents()
PortProxy physProxy
Port to physical memory used for writing object files into ram at boot.
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
virtual MemoryImage buildImage() const =0
void setAlphaAccess(Addr access)
Set the m5AlphaAccess pointer in the console.
void unserializeSymtab(CheckpointIn &cp) override
If needed, unserialize additional symbol table entries for a specific subclass of this system...
ObjectFile * pal
Object pointer for the PAL code.
Addr fixFuncEventAddr(Addr addr) override
This function fixes up addresses that are used to match PCs for hooking simulator events on to target...
bool findAddress(const std::string &symbol, Addr &address) const
Addr loadAddrMask
Mask that should be anded for binary/symbol loading.
void writeBlob(Addr addr, const void *p, int size) const
Same as tryWriteBlob, but insists on success.
virtual bool loadLocalSymbols(SymbolTable *symtab, Addr base=0, Addr offset=0, Addr mask=MaxAddr)
std::vector< ThreadContext * > threadContexts
void initState() override
Initialise the state of the system.
void serialize(const std::string &base, CheckpointOut &cp) const
SymbolTable * palSymtab
pal symbol table
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const Params * params() const
void serializeSymtab(CheckpointOut &cp) const override
Serialization stuff.
void initIPRs(ThreadContext *tc, int cpuId)
FSTranslatingPortProxy virtProxy
Proxy used to copy arguments directly into kernel memory.
std::ostream CheckpointOut
MemoryImage & mask(Addr m)
TranslatingPortProxy Object Declaration for FS.
void unserialize(const std::string &base, CheckpointIn &cp)
void write(Addr address, const T &data) const
Write object T to address.
Addr Phys2K0Seg(Addr addr)
virtual bool loadGlobalSymbols(SymbolTable *symtab, Addr base=0, Addr offset=0, Addr mask=MaxAddr)