diff options
author | Dzuy Nguyen <dzuy@us.ibm.com> | 2017-05-25 11:07:55 -0500 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2017-06-01 09:20:17 -0400 |
commit | 392272c0247878a832473157e7d2e6023496ca99 (patch) | |
tree | fe0d5c5eb67def2c627ef50efa2d9eb1d8e7a948 /src/usr/hwas/common/hwas.C | |
parent | 1551812fabb4988129f15356aca8af7786240097 (diff) | |
download | talos-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.C | 51 |
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, |