diff options
author | Doug Gilbert <dgilbert@us.ibm.com> | 2014-08-13 12:06:15 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-08-14 16:43:48 -0500 |
commit | 596b23c5c156a522879d852663f21374ff4dc1f5 (patch) | |
tree | c4fd1c9ec3e9bc536dcd0bc28775df2a496ff921 /src/usr/hwpf/hwp/slave_sbe | |
parent | 320007539a7a479d8c49d770ba54068d823bfa0a (diff) | |
download | talos-hostboot-596b23c5c156a522879d852663f21374ff4dc1f5.tar.gz talos-hostboot-596b23c5c156a522879d852663f21374ff4dc1f5.zip |
HB TI on proc_extract_sbe_rc reIPL request
Change-Id: I7212f89c984b1ac503763f3776db0569616b034b
Backport: release-fips811
Backport: release-fips820
CQ: SW273621
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/12828
Tested-by: Jenkins Server
Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/slave_sbe')
-rw-r--r-- | src/usr/hwpf/hwp/slave_sbe/slave_sbe.C | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/src/usr/hwpf/hwp/slave_sbe/slave_sbe.C b/src/usr/hwpf/hwp/slave_sbe/slave_sbe.C index 939f6d7ff..7b0a74447 100644 --- a/src/usr/hwpf/hwp/slave_sbe/slave_sbe.C +++ b/src/usr/hwpf/hwp/slave_sbe/slave_sbe.C @@ -41,6 +41,7 @@ #include <errl/errlentry.H> #include <initservice/isteps_trace.H> #include <initservice/initserviceif.H> +#include <initservice/initsvcreasoncodes.H> #include <sys/time.h> #include <devicefw/userif.H> @@ -313,9 +314,40 @@ void* call_proc_check_slave_sbe_seeprom_complete( void *io_pArgs ) l_pProcTarget ); // Invoke the HWP - FAPI_INVOKE_HWP(l_errl, - proc_check_slave_sbe_seeprom_complete, - l_fapiProcTarget, sbeImgPtr, l_wait_time); + fapi::ReturnCode rc_fapi = fapi::FAPI_RC_SUCCESS; + FAPI_EXEC_HWP(rc_fapi, + proc_check_slave_sbe_seeprom_complete, + l_fapiProcTarget, + sbeImgPtr, + l_wait_time); + + // check for re ipl request + if(static_cast<uint32_t>(rc_fapi) == + fapi::RC_PROC_EXTRACT_SBE_RC_ENGINE_RETRY) + { + l_errl = fapi::fapiRcToErrl(rc_fapi); + + // capture the target data in the elog + ErrlUserDetailsTarget(l_pProcTarget).addToLog( l_errl ); + + l_errl->setSev(ERRL_SEV_INFORMATIONAL); + + errlCommit( l_errl, HWPF_COMP_ID ); + + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR : proc_extract_sbe_rc requesting reIPL:" + " Calling INITSERVICE::doShutdown() with " + "SBE_EXTRACT_RC_REQUEST_REIPL = 0x%x", + INITSERVICE::SBE_EXTRACT_RC_REQUEST_REIPL); + + INITSERVICE::doShutdown + ( INITSERVICE::SBE_EXTRACT_RC_REQUEST_REIPL); + // doShutdown does not return + } + else + { + l_errl = fapi::fapiRcToErrl(rc_fapi); + } if (l_errl) { |