diff options
author | Brian Stegmiller <bjs@us.ibm.com> | 2016-07-21 15:25:02 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-07-31 16:14:37 -0400 |
commit | 1f1e263edc891398fabb3ac18c609198419ef2b7 (patch) | |
tree | 93d4a6c9f525a14d613dfa8db40e3d1b6b34f751 /src/usr/diag | |
parent | 5df2675372b378275cfe7e3b83d3663fed2fd21a (diff) | |
download | talos-hostboot-1f1e263edc891398fabb3ac18c609198419ef2b7.tar.gz talos-hostboot-1f1e263edc891398fabb3ac18c609198419ef2b7.zip |
Limit checkForIplAttentions to master in early IPL
Change-Id: I74f3c6c00fdb7ea30bdf06d4be37c1a717fc6210
RTC: 154658
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/27342
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/diag')
-rw-r--r-- | src/usr/diag/attn/ipl/attn.C | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/usr/diag/attn/ipl/attn.C b/src/usr/diag/attn/ipl/attn.C index 8e5543e74..dac127d56 100644 --- a/src/usr/diag/attn/ipl/attn.C +++ b/src/usr/diag/attn/ipl/attn.C @@ -39,6 +39,7 @@ #include "common/attnmem.H" #include <util/singleton.H> #include <errl/errlmanager.H> +#include <targeting/common/targetservice.H> // Custom compile configs #include <config.h> @@ -72,9 +73,41 @@ errlHndl_t checkForIplAttentions() assert(!Singleton<Service>::instance().running()); - TargetHandleList list; + TargetHandleList list; + uint8_t l_useAllProcs = 0; + TARGETING::Target *l_MasterProcTarget = NULL; + TARGETING::Target *l_sys = NULL; + + + // ------------------------------------------------ + // NOTE: ATTN code overrides TARGETING code for + // testing purposes. However for this case + // of getting an attribute, we can just + // modify the attribute for testing. + // For the master proc, I don't think we + // really need to alter it for testing. + // ------------------------------------------------ + + // We have an ATTRIBUTE that indicates all procs + // or just the master proc. + TARGETING::targetService().getTopLevelTarget( l_sys ); + assert(l_sys != NULL); + l_sys->tryGetAttr<ATTR_ATTN_CHK_ALL_PROCS>(l_useAllProcs); + + + // Do we want to check ALL procs ? + if (0 == l_useAllProcs) + { + // Just the master (so early IPL) + TARGETING::targetService().masterProcChipTargetHandle( + l_MasterProcTarget); + list.push_back(l_MasterProcTarget); + } // end if just master proc + else + { + getTargetService().getAllChips(list, TYPE_PROC); + } // end else ALL procs - getTargetService().getAllChips(list, TYPE_PROC); TargetHandleList::iterator tit = list.begin(); |