summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2018-05-02 21:06:35 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-05-15 21:56:29 -0400
commitdd245fcbbe5df414e13637a6bd28b7e45205a14a (patch)
tree36bab4c6c09746bc508ae0a3cd6b825693fa290b
parentf62ac59186a64036d163aa335bfb08214ec4d708 (diff)
downloadtalos-hostboot-dd245fcbbe5df414e13637a6bd28b7e45205a14a.tar.gz
talos-hostboot-dd245fcbbe5df414e13637a6bd28b7e45205a14a.zip
PRD: enable startScrub() support for Centaur
Change-Id: Ib6de42aa87ab7deb12391aede9abe097b8a32710 RTC: 192286 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/58233 Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/58719 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>
-rw-r--r--src/usr/diag/prdf/common/plat/cen/prdfCenMbaDomain.H10
-rw-r--r--src/usr/diag/prdf/plat/cen/prdfCenMbaDomain_ipl.C (renamed from src/usr/diag/prdf/plat/pegasus/prdfMbaDomain.C)15
-rw-r--r--src/usr/diag/prdf/plat/cen/prdf_plat_cen_hb_only.mk3
-rw-r--r--src/usr/diag/prdf/plat/mem/prdfMemBgScrub.H4
-rw-r--r--src/usr/diag/prdf/prdfMain_ipl.C36
5 files changed, 38 insertions, 30 deletions
diff --git a/src/usr/diag/prdf/common/plat/cen/prdfCenMbaDomain.H b/src/usr/diag/prdf/common/plat/cen/prdfCenMbaDomain.H
index 2b9fa6fab..4d352c1d7 100644
--- a/src/usr/diag/prdf/common/plat/cen/prdfCenMbaDomain.H
+++ b/src/usr/diag/prdf/common/plat/cen/prdfCenMbaDomain.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016,2017 */
+/* Contributors Listed Below - COPYRIGHT 2016,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -62,6 +62,14 @@ class MbaDomain : public RuleChipDomain
*/
void handleRrFo();
+ #elif defined(__HOSTBOOT_MODULE) // IPL only
+
+ /**
+ * @brief Starts memory background scrubbing for each MBA in the node.
+ * @param Non-SUCCESS if an internal function failed, SUCCESS otherwise.
+ */
+ int32_t startScrub();
+
#endif
};
diff --git a/src/usr/diag/prdf/plat/pegasus/prdfMbaDomain.C b/src/usr/diag/prdf/plat/cen/prdfCenMbaDomain_ipl.C
index 669d2906f..3570d79a6 100644
--- a/src/usr/diag/prdf/plat/pegasus/prdfMbaDomain.C
+++ b/src/usr/diag/prdf/plat/cen/prdfCenMbaDomain_ipl.C
@@ -1,11 +1,11 @@
/* IBM_PROLOG_BEGIN_TAG */
/* This is an automatically generated prolog. */
/* */
-/* $Source: src/usr/diag/prdf/plat/pegasus/prdfMbaDomain.C $ */
+/* $Source: src/usr/diag/prdf/plat/cen/prdfCenMbaDomain_ipl.C $ */
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2013,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -23,12 +23,19 @@
/* */
/* IBM_PROLOG_END_TAG */
-#include <prdfMbaDomain.H>
+/**
+ * @file prdfCenMbaDomain.C
+ * @brief chip Plug-in code for mcbist domain
+ */
+
+#include <prdfCenMbaDomain.H>
// Framework includes
#include <prdfExtensibleChip.H>
#include <prdfPlatServices.H>
#include <prdfTrace.H>
+
+// Platform includes
#include <prdfMemBgScrub.H>
using namespace TARGETING;
@@ -56,7 +63,7 @@ int32_t MbaDomain::startScrub()
if ( SUCCESS != l_rc )
{
PRDF_ERR( PRDF_FUNC "startInitialBgScrub() failed: MBA=0x%08x",
- mbaChip->GetId() );
+ mbaChip->getHuid() );
o_rc = FAIL; continue; // Keep going.
}
}
diff --git a/src/usr/diag/prdf/plat/cen/prdf_plat_cen_hb_only.mk b/src/usr/diag/prdf/plat/cen/prdf_plat_cen_hb_only.mk
index ac0f6ad46..8468f2ed4 100644
--- a/src/usr/diag/prdf/plat/cen/prdf_plat_cen_hb_only.mk
+++ b/src/usr/diag/prdf/plat/cen/prdf_plat_cen_hb_only.mk
@@ -46,6 +46,9 @@ prd_rule_plugin += prdfCenMembuf.o
ifneq (${HOSTBOOT_RUNTIME},1)
+# plat/cen/ (non-rule plugin related)
+prd_obj += prdfCenMbaDomain_ipl.o
+
endif
################################################################################
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemBgScrub.H b/src/usr/diag/prdf/plat/mem/prdfMemBgScrub.H
index 302eacf77..c04d9dcbb 100644
--- a/src/usr/diag/prdf/plat/mem/prdfMemBgScrub.H
+++ b/src/usr/diag/prdf/plat/mem/prdfMemBgScrub.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2016,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -88,7 +88,7 @@ uint32_t startInitialBgScrub( ExtensibleChip * i_chip )
}
/** @brief Specialization for MCBIST. */
-template<>
+template<> inline
uint32_t startInitialBgScrub<TARGETING::TYPE_MCBIST>( ExtensibleChip * i_chip )
{
using namespace TARGETING;
diff --git a/src/usr/diag/prdf/prdfMain_ipl.C b/src/usr/diag/prdf/prdfMain_ipl.C
index 874d1323e..8241d925f 100644
--- a/src/usr/diag/prdf/prdfMain_ipl.C
+++ b/src/usr/diag/prdf/prdfMain_ipl.C
@@ -40,7 +40,7 @@
// Platform includes
#include <prdfCenMbaDataBundle.H>
-//#include <prdfMbaDomain.H> TODO RTC 157888
+#include <prdfCenMbaDomain.H>
#include <prdfPlatServices.H>
#include <prdfP9McaDataBundle.H>
#include <prdfP9McbistDomain.H>
@@ -152,34 +152,24 @@ errlHndl_t startScrub()
PRDF_ENTER( PRDF_FUNC "HUID=0x%08x", nodeId );
- //master proc is CUMULUS, use MBA
- if ( MODEL_CUMULUS == getChipModel( getMasterProc() ) )
+ // Start background scrubbing.
+ TARGETING::MODEL procModel = getChipModel( getMasterProc() );
+ if ( MODEL_CUMULUS == procModel )
{
- //TODO RTC 157888
- // Start scrubbing on all MBAs.
- //MbaDomain * domain = (MbaDomain *)systemPtr->GetDomain(MBA_DOMAIN);
- //if ( nullptr == domain )
- //{
- // PRDF_ERR( PRDF_FUNC "MBA_DOMAIN not found. nodeId=0x%08x",
- // nodeId );
- // l_rc = FAIL; break;
- //}
- //l_rc = domain->startScrub();
+ MbaDomain * domain = (MbaDomain *)systemPtr->GetDomain(MBA_DOMAIN);
+ l_rc = domain->startScrub();
}
- //else use MCBIST
- else
+ else if ( MODEL_NIMBUS == procModel )
{
- //Start scrubbing on all MCBISTs
McbistDomain * domain =
- (McbistDomain *)systemPtr->GetDomain(MCBIST_DOMAIN);
- if ( nullptr == domain )
- {
- PRDF_ERR( PRDF_FUNC "MCBIST_DOMAIN not found. nodeId=0x%08x",
- nodeId );
- l_rc = FAIL; break;
- }
+ (McbistDomain *)systemPtr->GetDomain(MCBIST_DOMAIN);
l_rc = domain->startScrub();
}
+ else
+ {
+ PRDF_ERR(PRDF_FUNC "Master PROC model %d not supported", procModel);
+ PRDF_ASSERT(false);
+ }
PRDF_EXIT( PRDF_FUNC "HUID=0x%08x", nodeId );
OpenPOWER on IntegriCloud