34 #include "arch/vtophys.hh" 39 #include "params/SparcSystem.hh" 46 loadFirmwareImage(
const std::string &fname,
const std::string &
name)
49 fatal_if(!obj,
"Could not load %s %s.", name, fname);
65 reset = loadFirmwareImage(
params()->reset_bin,
"reset binary");
66 openboot = loadFirmwareImage(
params()->openboot_bin,
"openboot binary");
68 params()->hypervisor_bin,
"hypervisor binary");
69 nvram = loadFirmwareImage(
params()->nvram_bin,
"nvram image");
71 params()->hypervisor_desc_bin,
"hypervisor description image");
73 params()->partition_desc_bin,
"partition description image");
77 panic(
"could not load reset symbols\n");
80 panic(
"could not load openboot symbols\n");
83 panic(
"could not load hypervisor symbols\n");
86 panic(
"could not load nvram symbols\n");
89 panic(
"could not load hypervisor description symbols\n");
92 panic(
"could not load partition description symbols\n");
96 panic(
"could not load reset symbols\n");
99 panic(
"could not load openboot symbols\n");
102 panic(
"could not load hypervisor symbols\n");
107 panic(
"could not load hypervisor symbols\n");
110 panic(
"could not load reset symbols\n");
113 panic(
"could not load hypervisor description symbols\n");
116 panic(
"could not load partition description symbols\n");
208 SparcSystemParams::create()
#define panic(...)
This implements a cprintf based panic() function.
SymbolTable * partitionDescSymtab
partition desc symbol table?
const std::string & name()
bool write(const PortProxy &proxy) const
ObjectFile * createObjectFile(const std::string &fname, bool raw)
SymbolTable * hypervisorDescSymtab
hypervisor desc symbol table?
ObjectFile * hypervisor
Object pointer for the hypervisor code.
SymbolTable * openbootSymtab
openboot symbol table
SymbolTable * debugSymbolTable
Global unified debugging symbol table (for target).
void unserializeSymtab(CheckpointIn &cp) override
If needed, unserialize additional symbol table entries for a specific subclass of this system...
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
SymbolTable * hypervisorSymtab
hypervison binary symbol table
virtual bool loadLocalSymbols(SymbolTable *symtab, Addr base=0, Addr offset=0, Addr mask=MaxAddr)
std::vector< ThreadContext * > threadContexts
MemoryImage & offset(Addr by)
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
SymbolTable * resetSymtab
reset binary symbol table
void serialize(const std::string &base, CheckpointOut &cp) const
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
ObjectFile * reset
Object pointer for the reset binary.
SymbolTable * nvramSymtab
nvram symbol table?
This object is a proxy for a port or other object which implements the functional response protocol...
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
std::ostream CheckpointOut
ObjectFile * nvram
Object pointer for the nvram image.
void unserialize(const std::string &base, CheckpointIn &cp)
ObjectFile * partition_desc
Object pointer for the partition description image.
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
void serializeSymtab(CheckpointOut &cp) const override
Serialization stuff.
ObjectFile * openboot
Object pointer for the openboot code.
const Params * params() const
virtual bool loadGlobalSymbols(SymbolTable *symtab, Addr base=0, Addr offset=0, Addr mask=MaxAddr)
ObjectFile * hypervisor_desc
Object pointer for the hypervisor description image.