diff options
author | Roland Veloz <rveloz@us.ibm.com> | 2017-06-05 16:49:23 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-06-09 14:43:02 -0400 |
commit | 4c2f106a2be58bc54c450c3bf368974d0052ee5c (patch) | |
tree | a35b567c13a81ecae727065c29137f5d4e5bc0bd /src/usr | |
parent | 6988e53d4cdcb55fadce30c4e2c29fd09098bf32 (diff) | |
download | talos-hostboot-4c2f106a2be58bc54c450c3bf368974d0052ee5c.tar.gz talos-hostboot-4c2f106a2be58bc54c450c3bf368974d0052ee5c.zip |
Add check for minimum hardware in proc_exit_cache_contained
RTC:123500
Change-Id: Iae026349cff1842c37e568059c2565cf98e14aff
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41400
Reviewed-by: Prachi Gupta <pragupta@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: ILYA SMIRNOV <ismirno@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/isteps/istep14/call_proc_exit_cache_contained.C | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/src/usr/isteps/istep14/call_proc_exit_cache_contained.C b/src/usr/isteps/istep14/call_proc_exit_cache_contained.C index 827dfc0d3..60cb13285 100644 --- a/src/usr/isteps/istep14/call_proc_exit_cache_contained.C +++ b/src/usr/isteps/istep14/call_proc_exit_cache_contained.C @@ -49,6 +49,7 @@ #include <devicefw/userif.H> #include <config.h> #include <util/misc.H> +#include <hwas/common/hwas.H> using namespace ISTEP; using namespace ISTEP_ERROR; @@ -83,14 +84,39 @@ void* call_proc_exit_cache_contained (void *io_pArgs) targetService().getTopLevelTarget(l_sys); assert( l_sys != NULL ); - errlHndl_t l_errl = NULL; - uint8_t l_mpipl = l_sys->getAttr<ATTR_IS_MPIPL_HB>(); - ATTR_PAYLOAD_BASE_type payloadBase = 0; + //Check that minimum hardware requirement is meet. + //If not, log error and do not proceed + bool l_bootable; + errlHndl_t l_errl = nullptr; + l_errl = HWAS::checkMinimumHardware(l_sys, &l_bootable); + if (!l_bootable && !l_errl) + { + /*@ + * @errortype ERRL_SEV_UNRECOVERABLE + * @moduleid ISTEP::MOD_PROC_EXIT_CACHE_CONTAINED + * @reasoncode ISTEP::RC_MIN_HW_CHECK_FAILED + * @devdesc call_proc_exit_cache_contained: did not + * find minimum hardware to continue + * @custdesc Host firmware did not find enough + * hardware to continue the boot + */ + l_errl = new ERRORLOG::ErrlEntry( + ERRORLOG::ERRL_SEV_UNRECOVERABLE, + ISTEP::MOD_PROC_EXIT_CACHE_CONTAINED, + ISTEP::RC_MIN_HW_CHECK_FAILED); + } + uint8_t l_mpipl = 0; TARGETING::TargetHandleList l_procList; - getAllChips(l_procList, TYPE_PROC); + if (!l_errl) + { + l_mpipl = l_sys->getAttr<ATTR_IS_MPIPL_HB>(); + getAllChips(l_procList, TYPE_PROC); + } + + ATTR_PAYLOAD_BASE_type payloadBase = 0; - if(!l_mpipl) + if(!l_mpipl && !l_errl) { ATTR_PAYLOAD_IN_MIRROR_MEM_type l_mirrored = false; |