diff options
author | Dean Sanner <dsanner@us.ibm.com> | 2014-04-07 22:05:10 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-04-08 16:59:11 -0500 |
commit | 7b463d2938ba71e1bc938e1c47db5704267d966d (patch) | |
tree | 13f502524cecee63463ed55dcf26f390c7e03911 | |
parent | ba41c4e29f3a7a6ae5127f80fcbc239e00195a0a (diff) | |
download | talos-hostboot-7b463d2938ba71e1bc938e1c47db5704267d966d.tar.gz talos-hostboot-7b463d2938ba71e1bc938e1c47db5704267d966d.zip |
Eliminate double execution of special wakeup on master core
Change-Id: Ia92f6e915ffbdf2a3a9cb44a289eda85c144d944
CQ: SW252399
Backport: release-fips810
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10242
Tested-by: Jenkins Server
Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r-- | src/usr/hwpf/hwp/core_activate/core_activate.C | 80 |
1 files changed, 44 insertions, 36 deletions
diff --git a/src/usr/hwpf/hwp/core_activate/core_activate.C b/src/usr/hwpf/hwp/core_activate/core_activate.C index 81ac28a3d..c045b2cdd 100644 --- a/src/usr/hwpf/hwp/core_activate/core_activate.C +++ b/src/usr/hwpf/hwp/core_activate/core_activate.C @@ -369,6 +369,16 @@ void* call_host_activate_slave_cores( void *io_pArgs ) "call_host_activate_slave_cores: Waking %x", pir ); + // Get EX FAPI target + TARGETING::TargetHandleList targetList; + getParentAffinityTargets(targetList, + (*l_core), + TARGETING::CLASS_UNIT, + TARGETING::TYPE_EX); + TARGETING::Target* l_ex = targetList[0]; + const fapi::Target l_fapi_ex_target( TARGET_TYPE_EX_CHIPLET, + const_cast<TARGETING::Target*>(l_ex) ); + int rc = cpu_start_core(pir,en_threads); // Handle time out error @@ -380,10 +390,6 @@ void* call_host_activate_slave_cores( void *io_pArgs ) rc, pir); - // Get core's FAPI target - const fapi::Target l_fapi_ex_target( TARGET_TYPE_EX_CHIPLET, - (const_cast<TARGETING::Target*> (*l_core)) ); - FAPI_INVOKE_HWP( l_errl, proc_check_slw_done, l_fapi_ex_target); if (l_errl) @@ -445,6 +451,40 @@ void* call_host_activate_slave_cores( void *io_pArgs ) errlCommit( l_tmperrl, HWPF_COMP_ID ); } } + else //Core out of winkle sucessfully, issue SPWU for PRD + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "Running p8_cpu_special_wakeup (ENABLE)" + " EX target HUID %.8X", + TARGETING::get_huid(l_ex)); + + // Enable special wakeup on core + FAPI_INVOKE_HWP( l_errl, + p8_cpu_special_wakeup, + l_fapi_ex_target, + SPCWKUP_ENABLE, + HOST); + + if( l_errl ) + { + ErrlUserDetailsTarget(l_ex).addToLog( l_errl ); + + // Create IStep error log and cross ref error that occurred + l_stepError.addErrorDetails( l_errl ); + + // Commit Error + errlCommit( l_errl, HWPF_COMP_ID ); + + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR : enable p8_cpu_special_wakeup, PLID=0x%x", + l_errl->plid() ); + } + else + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "SUCCESS: enable p8_cpu_special_wakeup"); + } + } } } @@ -518,38 +558,6 @@ void* call_host_activate_slave_cores( void *io_pArgs ) TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "SUCCESS : proc_post_winkle" ); } - - TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, - "Running p8_cpu_special_wakeup (ENABLE)" - " EX target HUID %.8X", - TARGETING::get_huid(l_exTarget)); - - // Enable special wakeup on core - FAPI_INVOKE_HWP( l_errl, - p8_cpu_special_wakeup, - l_fapi_ex_target, - SPCWKUP_ENABLE, - HOST); - - if( l_errl ) - { - ErrlUserDetailsTarget(l_pChipTarget).addToLog( l_errl ); - - // Create IStep error log and cross ref error that occurred - l_stepError.addErrorDetails( l_errl ); - - // Commit Error - errlCommit( l_errl, HWPF_COMP_ID ); - - TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, - "ERROR : enable p8_cpu_special_wakeup, PLID=0x%x", - l_errl->plid() ); - } - else - { - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "SUCCESS: enable p8_cpu_special_wakeup"); - } } } // end for |