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 | |
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')
-rw-r--r-- | src/usr/diag/attn/ipl/attn.C | 37 | ||||
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.C | 6 | ||||
-rw-r--r-- | src/usr/isteps/istep08/call_host_attnlisten_proc.C | 91 | ||||
-rw-r--r-- | src/usr/isteps/istep08/makefile | 1 | ||||
-rw-r--r-- | src/usr/targeting/common/xmltohb/attribute_types_hb.xml | 14 | ||||
-rwxr-xr-x | src/usr/targeting/common/xmltohb/target_types_hb.xml | 1 |
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> |