summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps/istep14
diff options
context:
space:
mode:
authorRoland Veloz <rveloz@us.ibm.com>2017-06-05 16:49:23 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-06-09 14:43:02 -0400
commit4c2f106a2be58bc54c450c3bf368974d0052ee5c (patch)
treea35b567c13a81ecae727065c29137f5d4e5bc0bd /src/usr/isteps/istep14
parent6988e53d4cdcb55fadce30c4e2c29fd09098bf32 (diff)
downloadtalos-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/isteps/istep14')
-rw-r--r--src/usr/isteps/istep14/call_proc_exit_cache_contained.C36
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;
OpenPOWER on IntegriCloud