summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2014-04-07 22:05:10 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-04-08 16:59:11 -0500
commit7b463d2938ba71e1bc938e1c47db5704267d966d (patch)
tree13f502524cecee63463ed55dcf26f390c7e03911
parentba41c4e29f3a7a6ae5127f80fcbc239e00195a0a (diff)
downloadtalos-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.C80
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
OpenPOWER on IntegriCloud