X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Farch%2Fsparc%2Fsystem.hh;h=086ce3fdb50cd24a66124d14203e1bbcf0a83762;hb=abc76f20cb98c90e8dab416dd16dfd4a954013ba;hp=0b79eda38cf276757698f0fc8cb676565240f755;hpb=b82fa633bb9a9bf72b724dcf202985f37ab1d8b8;p=gem5.git diff --git a/src/arch/sparc/system.hh b/src/arch/sparc/system.hh index 0b79eda38..086ce3fdb 100644 --- a/src/arch/sparc/system.hh +++ b/src/arch/sparc/system.hh @@ -37,28 +37,17 @@ #include "base/loader/symtab.hh" #include "cpu/pc_event.hh" #include "kern/system_events.hh" +#include "params/SparcSystem.hh" #include "sim/sim_object.hh" #include "sim/system.hh" class SparcSystem : public System { public: - struct Params : public System::Params - { - std::string reset_bin; - std::string hypervisor_bin; - std::string openboot_bin; - std::string boot_osflags; - uint64_t system_type; - uint64_t system_rev; - }; - + typedef SparcSystemParams Params; SparcSystem(Params *p); - ~SparcSystem(); - virtual bool breakpoint(); - /** * Serialization stuff */ @@ -75,6 +64,15 @@ class SparcSystem : public System /** openboot symbol table */ SymbolTable *openbootSymtab; + /** nvram symbol table? */ + SymbolTable *nvramSymtab; + + /** hypervisor desc symbol table? */ + SymbolTable *hypervisorDescSymtab; + + /** partition desc symbol table? */ + SymbolTable *partitionDescSymtab; + /** Object pointer for the reset binary */ ObjectFile *reset; @@ -84,29 +82,50 @@ class SparcSystem : public System /** Object pointer for the openboot code */ ObjectFile *openboot; + /** Object pointer for the nvram image */ + ObjectFile *nvram; + + /** Object pointer for the hypervisor description image */ + ObjectFile *hypervisor_desc; + + /** Object pointer for the partition description image */ + ObjectFile *partition_desc; + /** System Tick for syncronized tick across all cpus. */ Tick sysTick; + /** functional port to ROM */ + FunctionalPort funcRomPort; + + /** functional port to nvram */ + FunctionalPort funcNvramPort; + + /** functional port to hypervisor description */ + FunctionalPort funcHypDescPort; + + /** functional port to partition description */ + FunctionalPort funcPartDescPort; + protected: const Params *params() const { return (const Params *)_params; } /** Add a function-based event to reset binary. */ template - T *SparcSystem::addResetFuncEvent(const char *lbl) + T *addResetFuncEvent(const char *lbl) { return addFuncEvent(resetSymtab, lbl); } /** Add a function-based event to the hypervisor. */ template - T *SparcSystem::addHypervisorFuncEvent(const char *lbl) + T *addHypervisorFuncEvent(const char *lbl) { return addFuncEvent(hypervisorSymtab, lbl); } /** Add a function-based event to the openboot. */ template - T *SparcSystem::addOpenbootFuncEvent(const char *lbl) + T *addOpenbootFuncEvent(const char *lbl) { return addFuncEvent(openbootSymtab, lbl); }