diff options
author | Elizabeth Liner <eliner@us.ibm.com> | 2017-11-15 11:19:56 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-12-13 10:43:12 -0500 |
commit | e29c5cfdb62cd3f5fc97f22438c528b05fd35b06 (patch) | |
tree | a937d3bcd442f42bca79d745216dafe2b7d3b623 /src/usr/isteps/istep08 | |
parent | 92466e69168a996395f214001a90c7c7cb70b0bf (diff) | |
download | talos-hostboot-e29c5cfdb62cd3f5fc97f22438c528b05fd35b06.tar.gz talos-hostboot-e29c5cfdb62cd3f5fc97f22438c528b05fd35b06.zip |
SBE error logging and handler cleanup
This commit takes care of a few things
1) Removing the sbe threshold handler - we decided
that retrying after the initial loop was overkill
2) Making use of the class structure - we added a lot
of class elements to decrease things passed
between functions and to facilitate debugging
3) Creating a main entry point and simplifying functions
We decided that we wanted one function to handle all
actions. This also made some function irrelevant and
as such they were removed. Additionally, this also
fixes an infinite circular logic bug.
Change-Id: I9556e3181226755150c3debd1471f1be23e13be4
RTC:180961
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49886
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps/istep08')
-rw-r--r-- | src/usr/isteps/istep08/call_proc_check_slave_sbe_seeprom_complete.C | 43 |
1 files changed, 3 insertions, 40 deletions
diff --git a/src/usr/isteps/istep08/call_proc_check_slave_sbe_seeprom_complete.C b/src/usr/isteps/istep08/call_proc_check_slave_sbe_seeprom_complete.C index 502db189a..cd180281b 100644 --- a/src/usr/isteps/istep08/call_proc_check_slave_sbe_seeprom_complete.C +++ b/src/usr/isteps/istep08/call_proc_check_slave_sbe_seeprom_complete.C @@ -124,54 +124,17 @@ void* call_proc_check_slave_sbe_seeprom_complete( void *io_pArgs ) const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP> l_fapi2ProcTarget( const_cast<TARGETING::Target*> (l_cpu_target)); - sbeMsgReg_t l_sbeReg; - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "Running p9_get_sbe_msg_register HWP" " on processor target %.8X", TARGETING::get_huid(l_cpu_target)); - SBEIO::SbeRetryHandler::SBE_REG_RETURN l_ret = - SBEIO::SbeRetryHandler::SBE_REG_RETURN::SBE_FAILED_TO_BOOT; - - l_errl = SBEIO::SbeRetryHandler::getInstance().sbe_timeout_handler( - &l_sbeReg,l_cpu_target,&l_ret); - - if((!l_errl) && (l_sbeReg.currState != SBE_STATE_RUNTIME)) - { - // See if async FFDC bit is set in SBE register - if(l_sbeReg.asyncFFDC) - { - bool l_flowCtrl = SBEIO::SbeRetryHandler::getInstance(). - sbe_get_ffdc_handler(l_cpu_target); - - if(l_flowCtrl) - { - continue; - } - } - - // Handle that SBE failed to boot in the allowed time - SBEIO::SbeRetryHandler::getInstance().sbe_boot_fail_handler( - l_cpu_target,l_sbeReg); - } - else if (l_errl) - { - TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, - "ERROR : call p9_check_slave_sbe_seeprom_complete, " - "PLID=0x%x", l_errl->plid() ); - - // capture the target data in the elog - ErrlUserDetailsTarget(l_cpu_target).addToLog( l_errl ); + SBEIO::SbeRetryHandler l_SBEobj = SBEIO::SbeRetryHandler(); - // Create IStep error log and cross reference to error - l_stepError.addErrorDetails( l_errl ); + l_SBEobj.main_sbe_handler(l_cpu_target,false); - // Commit error log - errlCommit( l_errl, HWPF_COMP_ID ); - } // No error and still functional - else if(l_cpu_target->getAttr<ATTR_HWAS_STATE>().functional) + if(l_cpu_target->getAttr<ATTR_HWAS_STATE>().functional) { // Set attribute indicating that SBE is started l_cpu_target->setAttr<ATTR_SBE_IS_STARTED>(1); |