summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/slave_sbe
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2014-08-13 12:06:15 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-08-14 16:43:48 -0500
commit596b23c5c156a522879d852663f21374ff4dc1f5 (patch)
treec4fd1c9ec3e9bc536dcd0bc28775df2a496ff921 /src/usr/hwpf/hwp/slave_sbe
parent320007539a7a479d8c49d770ba54068d823bfa0a (diff)
downloadtalos-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.C38
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)
{
OpenPOWER on IntegriCloud