summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/framework
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/common/framework')
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfPlatServices.C31
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfPlatServices.H13
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdf_ras_services.C1
3 files changed, 44 insertions, 1 deletions
diff --git a/src/usr/diag/prdf/common/framework/service/prdfPlatServices.C b/src/usr/diag/prdf/common/framework/service/prdfPlatServices.C
index 11785dbfe..b28f1fe22 100755
--- a/src/usr/diag/prdf/common/framework/service/prdfPlatServices.C
+++ b/src/usr/diag/prdf/common/framework/service/prdfPlatServices.C
@@ -38,6 +38,8 @@
#include <prdfTrace.H>
#include <fapi.H>
+#include <fapiTarget.H>
+#include <fapiPlatHwpInvoker.H>
#ifdef __HOSTBOOT_MODULE
#include <time.h>
@@ -45,7 +47,6 @@
#include <sys/time.h>
#include <diag/mdia/mdia.H>
#include <diag/mdia/mdiamevent.H>
- #include <fapiPlatHwpInvoker.H>
#include <dimmBadDqBitmapFuncs.H>
#else
#include <iplp_registry.H>
@@ -61,6 +62,7 @@
#include <utillib.H>
#include <rmgrBaseClientLib.H>
#include <services/hwas/hwsvHwAvailSvc.H> // For deconfigureTargetAtRuntime()
+ #include <proc_mpipl_check_eligibility.H>
#endif
//------------------------------------------------------------------------------
@@ -519,6 +521,33 @@ errlHndl_t runtimeDeconfig( TARGETING::TargetHandle_t i_target )
return deconfigureTargetAtRuntime( i_target, DECONFIG_FOR_DUMP );
}
+//------------------------------------------------------------------------------
+
+int32_t checkMpiplEligibility(TARGETING::TargetHandle_t i_procTarget,
+ bool & o_mpiplEligible)
+{
+ int32_t o_rc = SUCCESS;
+ errlHndl_t l_err = NULL;
+ o_mpiplEligible = false;
+
+ FAPI_INVOKE_HWP(
+ l_err,
+ proc_mpipl_check_eligibility,
+ fapi::Target(fapi::TARGET_TYPE_PROC_CHIP, i_procTarget),
+ o_mpiplEligible);
+
+ if(NULL != l_err)
+ {
+ PRDF_ERR( "[PlatServices::checkMpiplEligibility] error [0x%X]"
+ "returned from proc_mpipl_check_eligibility for "
+ "Proc: 0x%08x", l_err->getRC(), getHuid(i_procTarget) );
+ PRDF_COMMIT_ERRL( l_err, ERRL_ACTION_REPORT );
+ o_rc = FAIL;
+ }
+
+ return o_rc;
+}
+
#endif // not __HOSTBOOT_MODULE
} // end namespace PlatServices
diff --git a/src/usr/diag/prdf/common/framework/service/prdfPlatServices.H b/src/usr/diag/prdf/common/framework/service/prdfPlatServices.H
index d63700ab2..7147fea79 100755
--- a/src/usr/diag/prdf/common/framework/service/prdfPlatServices.H
+++ b/src/usr/diag/prdf/common/framework/service/prdfPlatServices.H
@@ -280,6 +280,19 @@ int32_t getBadDqBitmap( TARGETING::TargetHandle_t i_mbaTarget,
*/
errlHndl_t runtimeDeconfig( TARGETING::TargetHandle_t i_target );
+/**
+ * @brief determine whether a checkstop is eligible for
+ * Memory Preserving IPL
+ *
+ * @param i_procTarget A PROC target
+ * @param o_mpiplMode true for MPIPL and false for no MPIPL
+ *
+ * @return non-SUCCESS for failure, SUCCESS otherwise
+*/
+
+int32_t checkMpiplEligibility(TARGETING::TargetHandle_t i_procTarget,
+ bool & o_mpiplEligible);
+
#endif // not __HOSTBOOT_MODULE
} // end namespace PlatServices
diff --git a/src/usr/diag/prdf/common/framework/service/prdf_ras_services.C b/src/usr/diag/prdf/common/framework/service/prdf_ras_services.C
index 7d9707fa2..8f616f68f 100755
--- a/src/usr/diag/prdf/common/framework/service/prdf_ras_services.C
+++ b/src/usr/diag/prdf/common/framework/service/prdf_ras_services.C
@@ -906,6 +906,7 @@ errlHndl_t ErrDataService::GenerateSrcPfa(ATTENTION_TYPE attn_type,
#else
hwTableContent l_dumpRequestContent; //not used but needed to call GetDumpRequest
sdc.GetDumpRequest( l_dumpRequestContent, l_dumpHandle );
+ pfaData.MsDumpInfo.DumpContent = l_dumpRequestContent;
#endif
pfaData.MsDumpInfo.DumpId = PlatServices::getHuid(l_dumpHandle);
OpenPOWER on IntegriCloud