diff options
Diffstat (limited to 'src/arch/sparc')
-rw-r--r-- | src/arch/sparc/system.cc | 9 | ||||
-rw-r--r-- | src/arch/sparc/utility.cc | 12 | ||||
-rw-r--r-- | src/arch/sparc/utility.hh | 2 |
3 files changed, 9 insertions, 14 deletions
diff --git a/src/arch/sparc/system.cc b/src/arch/sparc/system.cc index 1a809beba..1a495ccea 100644 --- a/src/arch/sparc/system.cc +++ b/src/arch/sparc/system.cc @@ -30,6 +30,7 @@ #include "arch/sparc/system.hh" +#include "arch/sparc/faults.hh" #include "arch/vtophys.hh" #include "base/loader/object_file.hh" #include "base/loader/symtab.hh" @@ -154,6 +155,14 @@ SparcSystem::initState() // @todo any fixup code over writing data in binaries on setting break // events on functions should happen here. + + if (threadContexts.empty()) + return; + + // Other CPUs will get activated by IPIs. + auto *tc = threadContexts[0]; + SparcISA::PowerOnReset().invoke(tc); + tc->activate(); } SparcSystem::~SparcSystem() diff --git a/src/arch/sparc/utility.cc b/src/arch/sparc/utility.cc index 245f455e4..e1ae56339 100644 --- a/src/arch/sparc/utility.cc +++ b/src/arch/sparc/utility.cc @@ -253,16 +253,4 @@ skipFunction(ThreadContext *tc) tc->pcState(newPC); } - -void -initCPU(ThreadContext *tc, int cpuId) -{ - // Other CPUs will get activated by IPIs. - if (cpuId != 0) - return; - - PowerOnReset().invoke(tc); - tc->activate(); -} - } // namespace SPARC_ISA diff --git a/src/arch/sparc/utility.hh b/src/arch/sparc/utility.hh index 74e0c11b8..6318b4356 100644 --- a/src/arch/sparc/utility.hh +++ b/src/arch/sparc/utility.hh @@ -62,8 +62,6 @@ inUserMode(ThreadContext *tc) return !(pstate.priv || hpstate.hpriv); } -void initCPU(ThreadContext *tc, int cpuId); - void copyRegs(ThreadContext *src, ThreadContext *dest); void copyMiscRegs(ThreadContext *src, ThreadContext *dest); |