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 | |
parent | 320007539a7a479d8c49d770ba54068d823bfa0a (diff) | |
download | blackbird-hostboot-596b23c5c156a522879d852663f21374ff4dc1f5.tar.gz blackbird-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')
-rw-r--r-- | src/include/usr/initservice/initsvcreasoncodes.H | 6 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/slave_sbe/slave_sbe.C | 38 |
2 files changed, 40 insertions, 4 deletions
diff --git a/src/include/usr/initservice/initsvcreasoncodes.H b/src/include/usr/initservice/initsvcreasoncodes.H index e30c8fd2b..39c944c7c 100644 --- a/src/include/usr/initservice/initsvcreasoncodes.H +++ b/src/include/usr/initservice/initsvcreasoncodes.H @@ -5,7 +5,9 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* COPYRIGHT International Business Machines Corp. 2011,2014 */ +/* Contributors Listed Below - COPYRIGHT 2011,2014 */ +/* [+] International Business Machines Corp. */ +/* */ /* */ /* Licensed under the Apache License, Version 2.0 (the "License"); */ /* you may not use this file except in compliance with the License. */ @@ -68,6 +70,8 @@ enum InitServiceReasonCode SHUTDOWN_REQUESTED_BY_FSP = INITSVC_COMP_ID | 0x0b, ISTEP_INVALID_ON_MPIPL = INITSVC_COMP_ID | 0x0c, ISTEP_NON_MASTER_NODE_MSG = INITSVC_COMP_ID | 0x0d, + //termination_rc + SBE_EXTRACT_RC_REQUEST_REIPL = INITSVC_COMP_ID | 0x0e, }; enum InitServiceUserDetailDataSubSection 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) { |