diff options
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/isteps/istep09/call_proc_fab_iovalid.C | 12 | ||||
-rw-r--r-- | src/usr/isteps/istep18/smp_unfencing_inter_enclosure_abus_links.C | 13 |
2 files changed, 19 insertions, 6 deletions
diff --git a/src/usr/isteps/istep09/call_proc_fab_iovalid.C b/src/usr/isteps/istep09/call_proc_fab_iovalid.C index b2d40347a..6ef1f732f 100644 --- a/src/usr/isteps/istep09/call_proc_fab_iovalid.C +++ b/src/usr/isteps/istep09/call_proc_fab_iovalid.C @@ -84,6 +84,7 @@ void* call_proc_fab_iovalid( void *io_pArgs ) { IStepError l_StepError; errlHndl_t l_errl = NULL; + std::vector<fapi2::ReturnCode> l_fapiRcs; TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_fab_iovalid entry" ); @@ -122,16 +123,21 @@ void* call_proc_fab_iovalid( void *io_pArgs ) TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "Running p9_fab_iovalid HWP on processor target %.8X", TARGETING::get_huid(l_cpu_target) ); - + if (INITSERVICE::isSMPWrapConfig()) { FAPI_INVOKE_HWP(l_errl, p9_fab_iovalid, l_fapi2_proc_target, - true, true, true); + true, true, true, l_fapiRcs); } else { + // Note: + // When this HWP gets run under HB, it should only train X PHYS, not Os. + // The HWP shouldn't fill anydata into vector l_fapiRcs for X's, + // only for O's that could be used to trigger a reconfig loop in FSP. + // Therefore, we ignore the check for l_fapiRcs here. FAPI_INVOKE_HWP(l_errl, p9_fab_iovalid, l_fapi2_proc_target, - true, true, false); + true, true, false, l_fapiRcs); } if(l_errl) { diff --git a/src/usr/isteps/istep18/smp_unfencing_inter_enclosure_abus_links.C b/src/usr/isteps/istep18/smp_unfencing_inter_enclosure_abus_links.C index ffea3f394..4e35e5a48 100644 --- a/src/usr/isteps/istep18/smp_unfencing_inter_enclosure_abus_links.C +++ b/src/usr/isteps/istep18/smp_unfencing_inter_enclosure_abus_links.C @@ -120,10 +120,10 @@ namespace EDI_EI_INITIALIZATION assert(sys != NULL, "isPeerPresent system target is NULL"); TARGETING::ATTR_HB_EXISTING_IMAGE_type hb_images; - + l_exists = sys->tryGetAttr<TARGETING::ATTR_HB_EXISTING_IMAGE>(hb_images); - + if( false == l_exists ) { TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, @@ -184,6 +184,7 @@ namespace EDI_EI_INITIALIZATION errlHndl_t smp_unfencing_inter_enclosure_abus_links() { errlHndl_t l_errl = NULL; + std::vector<fapi2::ReturnCode> l_fapiRcs; TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "smp_unfencing_inter_enclosure_abus_links entry" ); @@ -202,8 +203,14 @@ namespace EDI_EI_INITIALIZATION TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "Running p9_fab_iovalid HWP on processor target %.8X", TARGETING::get_huid(l_cpu_target) ); + + // Note: + // When this HWP gets run under HB, it should only train X PHYS, not Os. + // The HWP shouldn't fill anydata into vector l_fapiRcs for X's, + // only for O's that could be used to trigger a reconfig loop in FSP. + // Therefore, we ignore the check for l_fapiRcs here. FAPI_INVOKE_HWP(l_errl, p9_fab_iovalid, l_fapi2_proc_target, - true, true, false); + true, true, false, l_fapiRcs); if(l_errl) { TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, |