diff options
Diffstat (limited to 'src/usr/diag/prdf/common/framework')
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); |