summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorBrian Stegmiller <bjs@us.ibm.com>2016-07-21 15:25:02 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-07-31 16:14:37 -0400
commit1f1e263edc891398fabb3ac18c609198419ef2b7 (patch)
tree93d4a6c9f525a14d613dfa8db40e3d1b6b34f751 /src/usr
parent5df2675372b378275cfe7e3b83d3663fed2fd21a (diff)
downloadtalos-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')
-rw-r--r--src/usr/diag/attn/ipl/attn.C37
-rw-r--r--src/usr/initservice/istepdispatcher/istepdispatcher.C6
-rw-r--r--src/usr/isteps/istep08/call_host_attnlisten_proc.C91
-rw-r--r--src/usr/isteps/istep08/makefile1
-rw-r--r--src/usr/targeting/common/xmltohb/attribute_types_hb.xml14
-rwxr-xr-xsrc/usr/targeting/common/xmltohb/target_types_hb.xml1
6 files changed, 144 insertions, 6 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();
diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C
index 852907226..c8c9de7de 100644
--- a/src/usr/initservice/istepdispatcher/istepdispatcher.C
+++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C
@@ -756,9 +756,7 @@ errlHndl_t IStepDispatcher::doIstep(uint32_t i_istep,
TRACFCOMP(g_trac_initsvc, ERR_MRK"doIstep: Istep failed, plid 0x%x",
err->plid());
}
- // @TODO-RTC:154658 Re-enable this once new slave proc attn
- // handling is done.
-#if 0
+
// Check for any attentions and invoke PRD for analysis
// if not in MPIPL mode
else if ((true == theStep->taskflags.check_attn) &&
@@ -775,7 +773,7 @@ errlHndl_t IStepDispatcher::doIstep(uint32_t i_istep,
"checkForIplAttentions");
}
}
-#endif
+
#ifdef CONFIG_RECONFIG_LOOP_TESTS_ENABLE
// Read ATTR_RECONFIG_LOOP_TESTS_ENABLE attribute
TARGETING::ATTR_RECONFIG_LOOP_TESTS_ENABLE_type l_reconfigAttrTestsEn =
diff --git a/src/usr/isteps/istep08/call_host_attnlisten_proc.C b/src/usr/isteps/istep08/call_host_attnlisten_proc.C
new file mode 100644
index 000000000..455b95837
--- /dev/null
+++ b/src/usr/isteps/istep08/call_host_attnlisten_proc.C
@@ -0,0 +1,91 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/isteps/istep08/call_host_attnlisten_proc.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+/**
+ * @file call_host_attnlisten_proc.C
+ *
+ * Support file for IStep: host_attnlisten_proc
+ *
+ * HWP_IGNORE_VERSION_CHECK
+ */
+
+/******************************************************************************/
+// Includes
+/******************************************************************************/
+#include <stdint.h>
+#include <trace/interface.H>
+#include <initservice/taskargs.H>
+#include <errl/errlentry.H>
+#include <initservice/isteps_trace.H>
+#include <initservice/initserviceif.H>
+#include <initservice/initsvcreasoncodes.H>
+#include <sys/time.h>
+#include <devicefw/userif.H>
+
+// targeting support
+#include <targeting/common/commontargeting.H>
+#include <targeting/common/utilFilter.H>
+#include <targeting/namedtarget.H>
+#include <targeting/attrsync.H>
+
+#include <isteps/hwpisteperror.H>
+
+#include <errl/errludtarget.H>
+#include <errl/errlmanager.H>
+
+using namespace ISTEP;
+using namespace ISTEP_ERROR;
+using namespace ERRORLOG;
+using namespace TARGETING;
+
+namespace ISTEP_08
+{
+
+//******************************************************************************
+// call_host_attnlisten_proc()
+//******************************************************************************
+void* call_host_attnlisten_proc(void *io_pArgs)
+{
+ IStepError l_stepError;
+
+
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_attnlisten_proc entry" );
+
+ uint8_t l_useAllProcs = 1;
+ TARGETING::Target *l_sys = NULL;
+ TARGETING::targetService().getTopLevelTarget( l_sys );
+ assert(l_sys != NULL);
+
+ // All we need to do is set a flag so that the
+ // ATTN code will check ALL processors the next
+ // time it gets called versus just the master proc.
+ l_sys->trySetAttr<ATTR_ATTN_CHK_ALL_PROCS>(l_useAllProcs);
+
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_attnlisten_proc exit" );
+ return l_stepError.getErrorHandle();
+}
+
+};
diff --git a/src/usr/isteps/istep08/makefile b/src/usr/isteps/istep08/makefile
index da41c61bf..17a881ed4 100644
--- a/src/usr/isteps/istep08/makefile
+++ b/src/usr/isteps/istep08/makefile
@@ -60,6 +60,7 @@ OBJS += call_proc_scomoverride_chiplets.o
OBJS += call_proc_chiplet_enable_ridi.o
OBJS += call_host_rng_bist.o
OBJS += call_host_set_voltages.o
+OBJS += call_host_attnlisten_proc.o
VPATH += ${PROCEDURES_PATH}/hwp/perv/ ${PROCEDURES_PATH}/hwp/nest/
VPATH += ${PROCEDURES_PATH}/hwp/io/ ${PROCEDURES_PATH}/hwp/initfiles/
diff --git a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
index 492a7a407..d2006d5e8 100644
--- a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
+++ b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
@@ -1705,4 +1705,18 @@ ID for the sensor number returned with the elog. -->
</hwpfToHbAttrMap>
</attribute>
+<attribute>
+ <id>ATTN_CHK_ALL_PROCS</id>
+ <description>
+ Used to tell ATTN code whether to chk MASTER(0) OR all PROCs(1)
+ when the checkForIplAttns routine is called.
+ </description>
+ <simpleType>
+ <uint8_t></uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
</attributes>
diff --git a/src/usr/targeting/common/xmltohb/target_types_hb.xml b/src/usr/targeting/common/xmltohb/target_types_hb.xml
index 63e870a6c..206fd3134 100755
--- a/src/usr/targeting/common/xmltohb/target_types_hb.xml
+++ b/src/usr/targeting/common/xmltohb/target_types_hb.xml
@@ -79,6 +79,7 @@
<attribute><id>IPMI_MAX_BUFFER_SIZE</id></attribute>
<attribute><id>CLEAR_DIMM_SPD_ENABLE</id></attribute>
<attribute><id>OCC_COMMON_AREA_PHYS_ADDR</id> </attribute>
+ <attribute><id>ATTN_CHK_ALL_PROCS</id> </attribute>
</targetTypeExtension>
<targetTypeExtension>
OpenPOWER on IntegriCloud