summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Weisenbeck <bweisenb@us.ibm.com>2018-01-26 10:36:27 -0600
committerZane C. Shelley <zshelle@us.ibm.com>2018-01-31 21:21:22 -0500
commitf46a51570e9fb256e7a6c9e70d4e23790199d555 (patch)
treec87bf0fbdc14b7812c2c31c93e15eea84f7bccc4
parentae1ac07ebcac5e7b650207fdda124e17bcb3be4f (diff)
downloadtalos-hostboot-f46a51570e9fb256e7a6c9e70d4e23790199d555.tar.gz
talos-hostboot-f46a51570e9fb256e7a6c9e70d4e23790199d555.zip
PRD: Power Management Recovery
Change-Id: I10b1fc4898b6a72331b27aedb8f80544e8a8c4fb RTC: 145749 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52757 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52998 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
-rwxr-xr-xsrc/include/usr/diag/prdf/common/prdf_service_codes.H6
-rw-r--r--src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule2
-rw-r--r--src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule2
-rw-r--r--src/usr/diag/prdf/common/plat/p9/p9_proc_common_actions.rule5
-rw-r--r--src/usr/diag/prdf/common/plat/p9/prdfP9Proc.C38
-rw-r--r--src/usr/diag/prdf/plat/p9/prdfP9PmRecovery.C153
-rw-r--r--src/usr/diag/prdf/plat/p9/prdfP9PmRecovery.H50
-rw-r--r--src/usr/diag/prdf/plat/p9/prdf_plat_p9_hb_only.mk64
-rw-r--r--src/usr/diag/prdf/plat/prdfPlatServices_rt.C36
-rw-r--r--src/usr/diag/prdf/plat/prdfPlatServices_rt.H18
-rw-r--r--src/usr/diag/prdf/prdf_hb_only.mk6
-rw-r--r--src/usr/diag/prdf/runtime/makefile3
-rwxr-xr-xsrc/usr/diag/prdf/test/prdf_hb_common_test.mk4
13 files changed, 379 insertions, 8 deletions
diff --git a/src/include/usr/diag/prdf/common/prdf_service_codes.H b/src/include/usr/diag/prdf/common/prdf_service_codes.H
index 1db5f69ec..b3d6c8e98 100755
--- a/src/include/usr/diag/prdf/common/prdf_service_codes.H
+++ b/src/include/usr/diag/prdf/common/prdf_service_codes.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2015 */
+/* Contributors Listed Below - COPYRIGHT 2012,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -67,6 +67,7 @@ enum ModuleId
PRDF_SYNC_SVC = 0x0F,
PRDF_CS_FIRDATA_READ = 0x10,
PRDF_CS_FIRDATA_WRITE = 0x11,
+ PRDF_PM_RECOVERY_FFDC = 0x12,
};
/******************************************************************************/
@@ -124,6 +125,9 @@ enum ReasonCode
PRDF_INVALID_CONFIG = PRDF_COMP_ID | 0x82,
PRDF_NULL_VALUE_RETURNED = PRDF_COMP_ID | 0x83,
+ // Extra FFDC errorlog linked to a PRD log
+ PRDF_EXTRA_FFDC = PRDF_COMP_ID | 0x90,
+
PRDF_LAST_REASONCODE = PRDF_COMP_ID | 0xFF,
};
diff --git a/src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule b/src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule
index 99421142a..f824df8b5 100644
--- a/src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule
+++ b/src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule
@@ -2283,7 +2283,7 @@ group gOCCFIR filter singlebit, cs_root_cause
/** OCCFIR[3]
* STOP_RECOVERY_NOTIFY_PRD
*/
- (rOCCFIR, bit(3)) ? threshold_and_mask_self;
+ (rOCCFIR, bit(3)) ? pmRecovery;
/** OCCFIR[4]
* OCC_HB_ERROR
diff --git a/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule b/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule
index 8b610cb31..b76e4bbb5 100644
--- a/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule
+++ b/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule
@@ -2342,7 +2342,7 @@ group gOCCFIR filter singlebit, cs_root_cause
/** OCCFIR[3]
* STOP_RECOVERY_NOTIFY_PRD
*/
- (rOCCFIR, bit(3)) ? threshold_and_mask_self;
+ (rOCCFIR, bit(3)) ? pmRecovery;
/** OCCFIR[4]
* OCC_HB_ERROR
diff --git a/src/usr/diag/prdf/common/plat/p9/p9_proc_common_actions.rule b/src/usr/diag/prdf/common/plat/p9/p9_proc_common_actions.rule
index 7a6359900..b31aa68a3 100644
--- a/src/usr/diag/prdf/common/plat/p9/p9_proc_common_actions.rule
+++ b/src/usr/diag/prdf/common/plat/p9/p9_proc_common_actions.rule
@@ -109,3 +109,8 @@ actionclass sbe_vital_attn
funccall("handleSbeVital");
};
+actionclass pmRecovery
+{
+ funccall("PmRecovery");
+ threshold1;
+};
diff --git a/src/usr/diag/prdf/common/plat/p9/prdfP9Proc.C b/src/usr/diag/prdf/common/plat/p9/prdfP9Proc.C
index c85a01cfb..98c33238e 100644
--- a/src/usr/diag/prdf/common/plat/p9/prdfP9Proc.C
+++ b/src/usr/diag/prdf/common/plat/p9/prdfP9Proc.C
@@ -40,6 +40,10 @@
#include <sbeio/sbeioif.H>
#endif
+#ifdef __HOSTBOOT_RUNTIME
+#include <prdfP9PmRecovery.H>
+#endif
+
// Platform includes
using namespace TARGETING;
@@ -439,6 +443,40 @@ PRDF_PLUGIN_DEFINE_NS( p9_cumulus, Proc, CheckForUnitCs );
//------------------------------------------------------------------------------
+/**
+ * @brief Recovery actions for a power management STOP failure. Collects FFDC,
+ * runtime deconfigures lost cores, and makes appropriate callouts as
+ * determined by the p9_pm_callout procedure.
+ * @param i_chip A P9 chip.
+ * @param io_sc step code data struct
+ * @return SUCCESS
+ */
+int32_t PmRecovery( ExtensibleChip * i_chip,
+ STEP_CODE_DATA_STRUCT & io_sc )
+{
+
+#ifdef __HOSTBOOT_RUNTIME
+
+ if ( pmRecovery(i_chip, io_sc) != SUCCESS )
+ {
+ PRDF_ERR("[PmRecovery] failed for 0x%08x", i_chip->GetId());
+ }
+
+#else
+
+ PRDF_ERR( "[PmRecovery] not expected outside of HB runtime" );
+ io_sc.service_data->SetCallout(LEVEL2_SUPPORT, MRU_HIGH);
+ io_sc.service_data->SetCallout(i_chip->getTrgt());
+
+#endif
+
+ return SUCCESS;
+}
+PRDF_PLUGIN_DEFINE_NS( p9_nimbus, Proc, PmRecovery );
+PRDF_PLUGIN_DEFINE_NS( p9_cumulus, Proc, PmRecovery );
+
+//------------------------------------------------------------------------------
+
} // end namespace Proc
} // end namespace PRDF
diff --git a/src/usr/diag/prdf/plat/p9/prdfP9PmRecovery.C b/src/usr/diag/prdf/plat/p9/prdfP9PmRecovery.C
new file mode 100644
index 000000000..0877f2968
--- /dev/null
+++ b/src/usr/diag/prdf/plat/p9/prdfP9PmRecovery.C
@@ -0,0 +1,153 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/plat/p9/prdfP9PmRecovery.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2018 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#include <iipServiceDataCollector.h>
+#include <prdfExtensibleChip.H>
+#include <prdfP9PmRecovery.H>
+#include <prdfErrlUtil.H>
+
+#include <hwas/common/hwas.H>
+#include <hwas/common/deconfigGard.H>
+
+
+using namespace TARGETING;
+
+namespace PRDF
+{
+
+using namespace PlatServices;
+
+int32_t pmRecovery( ExtensibleChip * i_chip, STEP_CODE_DATA_STRUCT & io_sc )
+{
+ #define PRDF_FUNC "[pmRecovery] "
+ int32_t o_rc = SUCCESS;
+ TargetHandle_t target = i_chip->getTrgt();
+
+ // p9_pm_callout HWP parameters
+ RasAction ra = PROC_CHIP_CALLOUT;
+ uint32_t deadCores = 0;
+ std::vector < StopErrLogSectn > ffdcList;
+
+ do {
+
+ o_rc = pmCallout( target, ra, deadCores, ffdcList );
+
+ if (o_rc != SUCCESS)
+ {
+ PRDF_ERR(PRDF_FUNC "pmCallout failed huid %x", getHuid(target));
+ io_sc.service_data->SetCallout(LEVEL2_SUPPORT, MRU_HIGH);
+ io_sc.service_data->SetCallout(target);
+ break;
+ }
+
+ PRDF_TRAC(PRDF_FUNC "lost cores vector %x", deadCores);
+
+ // Get the Global Errorlog PLID and EID
+ errlHndl_t globalErrl =
+ ServiceGeneratorClass::ThisServiceGenerator().getErrl();
+ uint32_t eid = globalErrl->eid();
+ uint32_t plid = globalErrl->plid();
+
+ // Runtime deconfig lost cores
+ for ( uint32_t pos = 0; pos < MAX_EC_PER_PROC; ++pos )
+ {
+ if ( deadCores & (0x80000000 >> pos) )
+ {
+ // Get the core
+ TargetHandle_t coreTgt = getConnectedChild( target, TYPE_CORE, pos);
+ if (coreTgt == nullptr)
+ {
+ PRDF_ERR(PRDF_FUNC "Failed to get child core for huid %x "
+ "core pos %d", getHuid(target), pos);
+ continue;
+ }
+
+ // Call Deconfig
+ errlHndl_t errl = nullptr;
+ errl = HWAS::theDeconfigGard().deconfigureTarget( *coreTgt, eid,
+ NULL, HWAS::DeconfigGard::FULLY_AT_RUNTIME );
+
+ if (errl)
+ {
+ PRDF_ERR( PRDF_FUNC "Deconfig failed on core %x",
+ getHuid(coreTgt));
+ PRDF_COMMIT_ERRL( errl, ERRL_ACTION_REPORT );
+ }
+ }
+ }
+
+ // Make callout indicated by p9_pm_callout
+ switch (ra) {
+ case PROC_CHIP_CALLOUT:
+ PRDF_TRAC(PRDF_FUNC "HUID 0x%08x PROC_CHIP_CALLOUT",
+ getHuid(target));
+ io_sc.service_data->SetCallout(target);
+ break;
+ default:
+ PRDF_TRAC(PRDF_FUNC "HUID 0x%08x Unexpected callout enum",
+ getHuid(target));
+ io_sc.service_data->SetCallout(LEVEL2_SUPPORT, MRU_HIGH);
+ io_sc.service_data->SetCallout(target);
+ break;
+ }
+
+ // Create errorlog to contain HWP FFDC
+ /*@
+ * @errortype
+ * @reasoncode PRDF_EXTRA_FFDC
+ * @severity ERRL_SEV_INFORMATIONAL
+ * @moduleid PRDF_PM_RECOVERY_FFDC
+ * @userdata1 Proc HUID
+ * @userdata2 deadCores bit vector
+ * @devdesc An errorlog containing extra FFDC collected by the HWP
+ */
+ errlHndl_t ffdcErrl = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_INFORMATIONAL,
+ PRDF_PM_RECOVERY_FFDC,
+ PRDF_EXTRA_FFDC,
+ getHuid(target),
+ deadCores );
+
+ // Add FFDC sections
+ for ( auto & ffdcSctn : ffdcList )
+ {
+ ffdcErrl->addFFDC(PRDF_COMP_ID, ffdcSctn.iv_pBufPtr,
+ ffdcSctn.iv_bufSize, 0, 0);
+ }
+
+ // Commit
+ ffdcErrl->plid(plid);
+ ERRORLOG::errlCommit(ffdcErrl, PRDF_COMP_ID);
+
+ } while (0);
+
+ return o_rc;
+
+ #undef PRDF_FUNC
+}
+
+
+} // end namespace PRDF
+
diff --git a/src/usr/diag/prdf/plat/p9/prdfP9PmRecovery.H b/src/usr/diag/prdf/plat/p9/prdfP9PmRecovery.H
new file mode 100644
index 000000000..a557a0733
--- /dev/null
+++ b/src/usr/diag/prdf/plat/p9/prdfP9PmRecovery.H
@@ -0,0 +1,50 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/plat/p9/prdfP9PmRecovery.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2018 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+/** @file prdfP9PmRecovery.H
+ * @brief Power management STOP failure recovery actions
+ */
+
+#ifndef __prdfP9PmRecovery_H
+#define __prdfP9PmRecovery_H
+
+// Framework includes
+#include <prdfExtensibleChip.H>
+#include <prdfPlatServices.H>
+#include <prdfTrace.H>
+
+namespace PRDF
+{
+
+/**
+ * @brief Power management STOP failure recovery actions
+ * @param i_chip P9 extensible chip
+ * @param io_sc Step code data structure
+ * @param return SUCCESS/FAIL
+ */
+int32_t pmRecovery( ExtensibleChip * i_chip, STEP_CODE_DATA_STRUCT & io_sc );
+
+} // end namespace PRDF
+
+#endif // __prdfP9PmRecovery_H
diff --git a/src/usr/diag/prdf/plat/p9/prdf_plat_p9_hb_only.mk b/src/usr/diag/prdf/plat/p9/prdf_plat_p9_hb_only.mk
new file mode 100644
index 000000000..61d1fff97
--- /dev/null
+++ b/src/usr/diag/prdf/plat/p9/prdf_plat_p9_hb_only.mk
@@ -0,0 +1,64 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/usr/diag/prdf/plat/p9/prdf_plat_p9_hb_only.mk $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2016,2018
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+
+# NOTE: PRD_SRC_PATH and PRD_INC_PATH must be defined before including this file
+
+################################################################################
+# Paths common to both IPL and runtime
+################################################################################
+
+prd_vpath += ${PRD_SRC_PATH}/plat/p9
+
+prd_incpath += ${PRD_SRC_PATH}/plat/p9
+
+################################################################################
+# Hostboot only object files common to both IPL and runtime
+################################################################################
+
+# plat/p9/ (non-rule plugin related)
+
+# plat/p9/ (rule plugin related)
+
+################################################################################
+# Hostboot only object files (IPL only)
+################################################################################
+
+ifneq (${HOSTBOOT_RUNTIME},1)
+
+# plat/p9/ (non-rule plugin related)
+
+endif
+
+################################################################################
+# Hostboot only object files (runtime only)
+################################################################################
+
+ifeq (${HOSTBOOT_RUNTIME},1)
+
+# plat/p9/ (non-rule plugin related)
+prd_obj += prdfP9PmRecovery.o
+
+endif
+
diff --git a/src/usr/diag/prdf/plat/prdfPlatServices_rt.C b/src/usr/diag/prdf/plat/prdfPlatServices_rt.C
index b5d8636e7..6fb865a57 100644
--- a/src/usr/diag/prdf/plat/prdfPlatServices_rt.C
+++ b/src/usr/diag/prdf/plat/prdfPlatServices_rt.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016,2017 */
+/* Contributors Listed Below - COPYRIGHT 2016,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -521,6 +521,40 @@ int32_t l2LineDelete(TargetHandle_t i_exTgt,
}
+int32_t pmCallout( TargetHandle_t i_tgt,
+ RasAction& o_ra,
+ uint32_t o_deadCores,
+ std::vector < StopErrLogSectn >& o_ffdcList )
+{
+ errlHndl_t err = nullptr;
+ fapi2::buffer <uint32_t> deadCores;
+
+ //Get homer image buffer
+ uint64_t l_homerPhysAddr = 0x0;
+ l_homerPhysAddr = i_tgt->getAttr<ATTR_HOMER_PHYS_ADDR>();
+ void* l_homerVAddr = HBPM::convertHomerPhysToVirt(i_tgt,l_homerPhysAddr);
+
+ fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP> fapiTrgt (i_tgt);
+
+ FAPI_INVOKE_HWP( err,
+ p9_pm_callout,
+ l_homerVAddr,
+ fapiTrgt,
+ deadCores,
+ o_ffdcList,
+ o_ra );
+
+ if(nullptr != err)
+ {
+ PRDF_ERR( "[PlatServices::pmCallout] HUID: 0x%08x failed",
+ getHuid(i_tgt));
+ PRDF_COMMIT_ERRL( err, ERRL_ACTION_REPORT );
+ return FAIL;
+ }
+
+ o_deadCores = (uint32_t) deadCores;
+ return SUCCESS;
+}
//------------------------------------------------------------------------------
} // end namespace PlatServices
diff --git a/src/usr/diag/prdf/plat/prdfPlatServices_rt.H b/src/usr/diag/prdf/plat/prdfPlatServices_rt.H
index 48b28e60d..2e811344b 100644
--- a/src/usr/diag/prdf/plat/prdfPlatServices_rt.H
+++ b/src/usr/diag/prdf/plat/prdfPlatServices_rt.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016,2017 */
+/* Contributors Listed Below - COPYRIGHT 2016,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -28,6 +28,7 @@
#include <p9_l3err_extract.H>
#include <p9_l2err_extract.H>
+#include <p9_pm_callout.H>
namespace PRDF
{
@@ -136,6 +137,21 @@ int32_t l2LineDelete(TARGETING::TargetHandle_t i_exTgt,
const p9_l2err_extract_err_data& i_l2_err_data);
+/**
+ * @brief Calls p9_pm_callout HWP to collect FFDC and determine appropriate
+ * callouts for a STOP recovery malfunction alert.
+ * @param i_tgt P9 chip target
+ * @param o_ra enum indicating which type of callout should be made
+ * @param o_deadCores bit vector of dead cores
+ * @param o_ffdcList points to a list of STOP FFDC summary sub-sections
+ * @return non-SUCCESS for failure, SUCCESS otherwise
+ */
+int32_t pmCallout( TARGETING::TargetHandle_t i_tgt,
+ RasAction& o_ra,
+ uint32_t o_deadCores,
+ std::vector < StopErrLogSectn >& o_ffdcList );
+
+
} // end namespace PlatServices
} // end namespace PRDF
diff --git a/src/usr/diag/prdf/prdf_hb_only.mk b/src/usr/diag/prdf/prdf_hb_only.mk
index e804d5e3a..7926b8ece 100644
--- a/src/usr/diag/prdf/prdf_hb_only.mk
+++ b/src/usr/diag/prdf/prdf_hb_only.mk
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2013,2017
+# Contributors Listed Below - COPYRIGHT 2013,2018
# [+] International Business Machines Corp.
#
#
@@ -69,6 +69,8 @@ prd_incpath += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/cache/
prd_incpath += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/perv/
prd_incpath += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/nest/
prd_incpath += ${ROOTPATH}/src/import/chips/p9/procedures/utils/stopreg/
+prd_incpath += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/pm/
+prd_incpath += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/lib/
prd_incpath += ${ROOTPATH}/src/import/generic/memory/lib/utils/
prd_incpath += ${ROOTPATH}/src/import/chips/p9/utils/imageProcs/
prd_incpath += ${ROOTPATH}/src/import/chips/common/utils/imageProcs/
@@ -176,6 +178,7 @@ prd_obj_no_sim += p9_io_xbus_pdwn_lanes.o
ifeq (${HOSTBOOT_RUNTIME},1)
prd_vpath += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/cache/
prd_vpath += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/nest/
+prd_vpath += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/pm/
# This is really the only file we need, but all of the other files below are
# required because of dependencies.
prd_obj_no_sim += memdiags.o
@@ -184,6 +187,7 @@ prd_obj_no_sim += p9_l2err_extract.o
prd_obj_no_sim += p9_l3err_linedelete.o
prd_obj_no_sim += p9_l3err_extract.o
prd_obj_no_sim += p9_l2_flush.o
+prd_obj_no_sim += p9_pm_callout.o
prd_vpath += ${ROOTPATH}/src/import/chips/centaur/procedures/hwp/memory
prd_obj_no_sim += p9c_mss_maint_cmds.o
diff --git a/src/usr/diag/prdf/runtime/makefile b/src/usr/diag/prdf/runtime/makefile
index dae903c21..494d052bb 100644
--- a/src/usr/diag/prdf/runtime/makefile
+++ b/src/usr/diag/prdf/runtime/makefile
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2014,2016
+# Contributors Listed Below - COPYRIGHT 2014,2018
# [+] International Business Machines Corp.
#
#
@@ -41,6 +41,7 @@ include ../common/plat/p9/prdf_plat_p9.mk
include ../common/plat/cen/prdf_plat_cen.mk
include ../common/plat/mem/prdf_plat_mem.mk
include ../plat/mem/prdf_plat_mem_hb_only.mk
+include ../plat/p9/prdf_plat_p9_hb_only.mk
VPATH += ${prd_vpath}
diff --git a/src/usr/diag/prdf/test/prdf_hb_common_test.mk b/src/usr/diag/prdf/test/prdf_hb_common_test.mk
index 06b6ea14a..d04755c3c 100755
--- a/src/usr/diag/prdf/test/prdf_hb_common_test.mk
+++ b/src/usr/diag/prdf/test/prdf_hb_common_test.mk
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2012,2017
+# Contributors Listed Below - COPYRIGHT 2012,2018
# [+] International Business Machines Corp.
#
#
@@ -64,6 +64,8 @@ EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/common/include/
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/ffdc/
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/memory
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/cache/
+EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/pm/
+EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/lib/
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/utils/imageProcs
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/common/utils/imageProcs
EXTRAINCDIR += ${ROOTPATH}/src/import/hwpf/fapi2/include
OpenPOWER on IntegriCloud