summaryrefslogtreecommitdiffstats
path: root/src/usr/hwas/common/hwas.C
diff options
context:
space:
mode:
authorDzuy Nguyen <dzuy@us.ibm.com>2017-05-25 11:07:55 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2017-06-01 09:20:17 -0400
commit392272c0247878a832473157e7d2e6023496ca99 (patch)
treefe0d5c5eb67def2c627ef50efa2d9eb1d8e7a948 /src/usr/hwas/common/hwas.C
parent1551812fabb4988129f15356aca8af7786240097 (diff)
downloadtalos-hostboot-392272c0247878a832473157e7d2e6023496ca99.tar.gz
talos-hostboot-392272c0247878a832473157e7d2e6023496ca99.zip
Handling of functional NX chiplet
Change-Id: I0aaaf935a0b761d0c09b260315781889562dc32e RTC: 174401 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40982 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr/hwas/common/hwas.C')
-rw-r--r--src/usr/hwas/common/hwas.C51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C
index 79d541bb6..9908ef8bf 100644
--- a/src/usr/hwas/common/hwas.C
+++ b/src/usr/hwas/common/hwas.C
@@ -1881,6 +1881,57 @@ errlHndl_t checkMinimumHardware(const TARGETING::ConstTargetHandle_t i_nodeOrSys
// errl is now NULL
}
}
+
+ // check for functional NX chiplets
+ TargetHandleList l_functionalNXChiplets;
+ getChildChiplets(l_functionalNXChiplets, pTop, TYPE_NX, true);
+ HWAS_DBG( "checkMinimumHardware: %d NX chiplets",
+ l_functionalNXChiplets.size());
+
+ if (l_functionalNXChiplets.empty())
+ {
+ HWAS_ERR( "Insufficient hardware to continue IPL (NX chiplets)");
+
+ if(o_bootable)
+ {
+ *o_bootable = false;
+ break;
+ }
+ TargetHandleList l_presentNXChiplets;
+ getChildChiplets(l_presentNXChiplets, pTop, TYPE_NX, false);
+ uint32_t nx_present = l_presentNXChiplets.size();
+
+ /*@
+ * @errortype
+ * @severity ERRL_SEV_UNRECOVERABLE
+ * @moduleid MOD_CHECK_MIN_HW
+ * @reasoncode RC_SYSAVAIL_NO_NX_FUNC
+ * @devdesc checkMinimumHardware found no
+ * functional NX chiplets
+ * @custdesc Insufficient hardware to continue IPL
+ * @userdata1[00:31] HUID of node
+ * @userdata2[00:31] number of present nonfunctional NX chiplets
+ */
+ const uint64_t userdata1 =
+ (static_cast<uint64_t>(get_huid(pTop)) << 32);
+ const uint64_t userdata2 =
+ (static_cast<uint64_t>(nx_present) << 32);
+ l_errl = hwasError(ERRL_SEV_UNRECOVERABLE,
+ MOD_CHECK_MIN_HW,
+ RC_SYSAVAIL_NO_NX_FUNC,
+ userdata1, userdata2);
+
+ // call out the procedure to find the deconfigured part.
+ hwasErrorAddProcedureCallout( l_errl,
+ EPUB_PRC_FIND_DECONFIGURED_PART,
+ SRCI_PRIORITY_HIGH );
+
+ // if we already have an error, link this one to the earlier;
+ // if not, set the common plid
+ hwasErrorUpdatePlid( l_errl, l_commonPlid );
+ errlCommit(l_errl, HWAS_COMP_ID);
+ }
+
// ------------------------------------------------------------
// Check for Mirrored memory -
// If the user requests mirrored memory and we do not have it,
OpenPOWER on IntegriCloud