34 #include <sys/signal.h>
37 #include "arch/vtophys.hh"
41 #include "debug/Loader.hh"
43 #include "params/AlphaSystem.hh"
46 using namespace AlphaISA;
49 :
System(p), intrFreq(0), virtProxy(getSystemPort(), p->cache_line_size)
70 panic(
"could not load console symbols\n");
73 panic(
"could not load pal symbols\n");
76 panic(
"could not load pal symbols\n");
79 panic(
"could not load console symbols\n");
82 panic(
"could not load pal symbols\n");
85 panic(
"could not load pal symbols\n");
123 strlen(
params()->boot_osflags.c_str()));
137 panic(
"could not find hwrpb\n");
191 const uint32_t inst_mask = 0xffff0000;
193 const uint32_t gp_ldah_pattern = (9 << 26) | (29 << 21) | (27 << 16);
195 const uint32_t gp_lda_pattern = (8 << 26) | (29 << 21) | (29 << 16);
200 if ((i1 & inst_mask) == gp_ldah_pattern &&
201 (i2 & inst_mask) == gp_lda_pattern) {
203 DPRINTF(Loader,
"fixFuncEventAddr: %p -> %p", addr, new_addr);
217 panic(
"could not find m5AlphaAccess\n");
236 AlphaSystemParams::create()
BreakPCEvent * consolePanicEvent
Event to halt the simulator if the console calls panic()
virtual void setupFuncEvents()
Setup all the function events.
SymbolTable * consoleSymtab
console symbol table
virtual bool loadGlobalSymbols(SymbolTable *symtab, Addr base=0, Addr offset=0, Addr mask=maxAddr)=0
void write(Addr address, T data) const
Write object T to address.
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()
bool findAddress(const std::string &symbol, Addr &address) const
virtual bool loadLocalSymbols(SymbolTable *symtab, Addr base=0, Addr offset=0, Addr mask=maxAddr)=0
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.
void setAlphaAccess(Addr access)
Set the m5AlphaAccess pointer in the console.
virtual void writeBlob(Addr addr, const uint8_t *p, int size) const
Version of writeBlob that translates virt->phys and deals with page boundries.
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...
void serialize(const std::string &base, CheckpointOut &cp) const
Addr loadAddrMask
Mask that should be anded for binary/symbol loading.
const Params * params() const
T read(Addr address) const
Read sizeof(T) bytes from address and return as object T.
void initState() override
Initialise the state of the system.
SymbolTable * palSymtab
pal symbol table
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
virtual bool loadSections(PortProxy &mem_proxy, Addr mask=maxAddr, Addr offset=0)
void serializeSymtab(CheckpointOut &cp) const override
Serialization stuff.
FSTranslatingPortProxy virtProxy
Proxy used to copy arguments directly into kernel memory.
std::ostream CheckpointOut
ObjectFile * createObjectFile(const string &fname, bool raw)
TranslatingPortProxy Object Declaration for FS.
void unserialize(const std::string &base, CheckpointIn &cp)
Addr Phys2K0Seg(Addr addr)