summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/isteps/istep09/call_proc_fab_iovalid.C12
-rw-r--r--src/usr/isteps/istep18/smp_unfencing_inter_enclosure_abus_links.C13
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,
OpenPOWER on IntegriCloud