diff options
| author | Ilya Smirnov <ismirno@us.ibm.com> | 2019-03-25 13:36:36 -0500 |
|---|---|---|
| committer | William G. Hoffa <wghoffa@us.ibm.com> | 2019-04-03 09:29:50 -0500 |
| commit | 25c1b412b86a50922ca8ea6294e1a9b297d37a8f (patch) | |
| tree | faae658fe19f89b3e8322e925b8064927efc68fb /src | |
| parent | 5da79e14c3166022a34c993246a439e9a6df0836 (diff) | |
| download | blackbird-hostboot-25c1b412b86a50922ca8ea6294e1a9b297d37a8f.tar.gz blackbird-hostboot-25c1b412b86a50922ca8ea6294e1a9b297d37a8f.zip | |
Process Core and EQ Gard Records in MPIPL Path
When an error happens or is injected in a core during runtime and
MPIPL is performed following, the gard record does not get processed,
the core does not get deconfigured and then later fails to wake up
in istep 16.2. This change adds the processing of core and EQ
gard records in MPIPL path, so that they can be deconfigured
properly.
Change-Id: I66e0e7b26b5ee7ed5925202088a366a461ef4e79
CQ: SW459970
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75094
Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/usr/isteps/istep06/host_gard.C | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/usr/isteps/istep06/host_gard.C b/src/usr/isteps/istep06/host_gard.C index 2d59a7318..4a9852e17 100644 --- a/src/usr/isteps/istep06/host_gard.C +++ b/src/usr/isteps/istep06/host_gard.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -95,14 +95,24 @@ void* host_gard( void *io_pArgs ) TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "host_gard: MPIPL mode"); - // we only want EX units to be processed + TARGETING::PredicateCTM l_coreFilter(TARGETING::CLASS_UNIT, + TARGETING::TYPE_CORE); TARGETING::PredicateCTM l_exFilter(TARGETING::CLASS_UNIT, - TARGETING::TYPE_EX); - l_err = HWAS::collectGard(&l_exFilter); - if (l_err) + TARGETING::TYPE_EX); + TARGETING::PredicateCTM l_eqFilter(TARGETING::CLASS_UNIT, + TARGETING::TYPE_EQ); + + TARGETING::PredicatePostfixExpr l_coreExEq; + l_coreExEq.push(&l_coreFilter) + .push(&l_exFilter) + .push(&l_eqFilter).Or().Or(); + + l_err = HWAS::collectGard(&l_coreExEq); + if(l_err) { - TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,"host_gard: " - "collectGard returned error; breaking out"); + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,"host_gard: " + "collectGard for core, EX, or EQ targets returned " + "error; breaking out"); break; } } |

