diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2018-05-02 21:06:35 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-05-15 21:56:29 -0400 |
commit | dd245fcbbe5df414e13637a6bd28b7e45205a14a (patch) | |
tree | 36bab4c6c09746bc508ae0a3cd6b825693fa290b /src/usr | |
parent | f62ac59186a64036d163aa335bfb08214ec4d708 (diff) | |
download | talos-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>
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/diag/prdf/common/plat/cen/prdfCenMbaDomain.H | 10 | ||||
-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.mk | 3 | ||||
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemBgScrub.H | 4 | ||||
-rw-r--r-- | src/usr/diag/prdf/prdfMain_ipl.C | 36 |
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 ); |