diff options
author | Benjamin Weisenbeck <bweisenb@us.ibm.com> | 2017-10-05 13:23:29 -0500 |
---|---|---|
committer | Zane C Shelley <zshelle@us.ibm.com> | 2018-02-01 10:53:28 -0500 |
commit | 8411dba53c3b471eb7a39dfa6741b832b2b03994 (patch) | |
tree | f2d5e1b51b69466ba89a1da336be421d6f5829c6 | |
parent | 056c43ed3e5af0977354f80bc313245e65cc4a04 (diff) | |
download | talos-hostboot-8411dba53c3b471eb7a39dfa6741b832b2b03994.tar.gz talos-hostboot-8411dba53c3b471eb7a39dfa6741b832b2b03994.zip |
PRD: Add calls to perform dynamic memory deallocation
Change-Id: I6ff8cd4f8ae18a357881bcfddc2c39603eb4f100
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48034
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/53018
Reviewed-by: Zane C Shelley <zshelle@us.ibm.com>
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/mem/prdfMemEccAnalysis.C | 12 | ||||
-rwxr-xr-x | src/usr/diag/prdf/common/plat/prdfRasServices_common.C | 20 | ||||
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemDynDealloc.C | 3 |
3 files changed, 18 insertions, 17 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemEccAnalysis.C b/src/usr/diag/prdf/common/plat/mem/prdfMemEccAnalysis.C index e9f6d59db..cc5fcb60c 100644 --- a/src/usr/diag/prdf/common/plat/mem/prdfMemEccAnalysis.C +++ b/src/usr/diag/prdf/common/plat/mem/prdfMemEccAnalysis.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016,2017 */ +/* Contributors Listed Below - COPYRIGHT 2016,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -32,6 +32,10 @@ #include <prdfP9McaDataBundle.H> #include <prdfP9McaExtraSig.H> +#ifdef __HOSTBOOT_RUNTIME + #include <prdfMemDynDealloc.H> +#endif + using namespace TARGETING; namespace PRDF @@ -67,7 +71,6 @@ uint32_t __handleMemUe( ExtensibleChip * i_chip, const MemAddr & i_addr, #ifdef __HOSTBOOT_RUNTIME - /* TODO RTC 136129 // Dynamically deallocate the rank. o_rc = MemDealloc::rank<T>( i_chip, rank ); if ( SUCCESS != o_rc ) @@ -75,7 +78,6 @@ uint32_t __handleMemUe( ExtensibleChip * i_chip, const MemAddr & i_addr, PRDF_ERR( PRDF_FUNC "MemDealloc::rank<T>(0x%08x,m%ds%d) failed", i_chip->getHuid(), rank.getMaster(), rank.getSlave() ); } - */ #endif @@ -200,7 +202,6 @@ uint32_t maskMemPort<TYPE_MCA>( ExtensibleChip * i_chip ) #ifdef __HOSTBOOT_RUNTIME - /* TODO RTC 136129 // Dynamically deallocate the port. o_rc = MemDealloc::port<TYPE_MCA>( i_chip ); if ( SUCCESS != o_rc ) @@ -208,7 +209,6 @@ uint32_t maskMemPort<TYPE_MCA>( ExtensibleChip * i_chip ) PRDF_ERR( PRDF_FUNC "MemDealloc::port<TYPE_MCA>(0x%08x) failed", i_chip->getHuid() ); } - */ #endif @@ -600,7 +600,6 @@ uint32_t handleMemCe( ExtensibleChip * i_chip, const MemAddr & i_addr, #ifdef __HOSTBOOT_RUNTIME - /* TODO RTC 136129 if ( i_isHard ) { // Dynamically deallocate the page. @@ -611,7 +610,6 @@ uint32_t handleMemCe( ExtensibleChip * i_chip, const MemAddr & i_addr, i_chip->getHuid() ); } } - */ #endif diff --git a/src/usr/diag/prdf/common/plat/prdfRasServices_common.C b/src/usr/diag/prdf/common/plat/prdfRasServices_common.C index c834013b3..aeb57f64d 100755 --- a/src/usr/diag/prdf/common/plat/prdfRasServices_common.C +++ b/src/usr/diag/prdf/common/plat/prdfRasServices_common.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016,2017 */ +/* Contributors Listed Below - COPYRIGHT 2016,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -56,7 +56,7 @@ #include <errludstring.H> #ifdef __HOSTBOOT_RUNTIME -// #include <prdfCenMbaDynMemDealloc_rt.H> TODO: RTC 136129 + #include <prdfMemDynDealloc.H> #else // Hostboot only #ifdef CONFIG_ENABLE_CHECKSTOP_ANALYSIS #include <prdfPnorFirDataReader.H> @@ -69,7 +69,6 @@ #include <evenmgt.H> #include <rmgrBaseClientLib.H> //for rmgrSyncFile #include <prdfSdcFileControl.H> -// #include <prdfCenMbaDynMemDealloc_rt.H> TODO: RTC 136129 #endif using namespace TARGETING; @@ -867,14 +866,15 @@ void ErrDataService::deallocateDimms( const SDC_MRU_LIST & i_mruList ) { #define PRDF_FUNC "[ErrDataService::deallocateDimms] " -/* TODO: RTC 136129 - #if !defined(__HOSTBOOT_MODULE) || defined(__HOSTBOOT_RUNTIME) // RT only + #if defined(__HOSTBOOT_RUNTIME) // RT only do { // First check if Dynamic Memory Deallocation is supported. Then check // if it is enabled for predictive callouts. - if ( !DEALLOC::isEnabled() || !isPredDynDeallocEnabled() ) break; + // For now, this is defaulted to enabled for Phyp systems. + // RTC 184585 will address whether we need to support disabling + if ( !MemDealloc::isEnabled() || !isHyprConfigPhyp() ) break; TargetHandleList dimmList; for ( SDC_MRU_LIST::const_iterator it = i_mruList.begin(); @@ -894,7 +894,8 @@ void ErrDataService::deallocateDimms( const SDC_MRU_LIST & i_mruList ) if ( (TYPE_MEMBUF == tgtType) || (TYPE_MBA == tgtType) || - (TYPE_MCS == tgtType) ) + (TYPE_MCS == tgtType) || + (TYPE_MCA == tgtType) ) { TargetHandleList dimms = getConnected( calloutTgt, TYPE_DIMM ); @@ -922,17 +923,16 @@ void ErrDataService::deallocateDimms( const SDC_MRU_LIST & i_mruList ) if( 0 == dimmList.size() ) break; - int32_t rc = DEALLOC::dimmListGard( dimmList ); + int32_t rc = MemDealloc::dimmList( dimmList ); if ( SUCCESS != rc ) { - PRDF_ERR( PRDF_FUNC "dimmListGard failed" ); + PRDF_ERR( PRDF_FUNC "dimmList failed" ); break; } } while(0); #endif -*/ #undef PRDF_FUNC } diff --git a/src/usr/diag/prdf/plat/mem/prdfMemDynDealloc.C b/src/usr/diag/prdf/plat/mem/prdfMemDynDealloc.C index cb3a25a8c..16449039a 100644 --- a/src/usr/diag/prdf/plat/mem/prdfMemDynDealloc.C +++ b/src/usr/diag/prdf/plat/mem/prdfMemDynDealloc.C @@ -490,6 +490,7 @@ int32_t page( ExtensibleChip * i_chip, MemAddr i_addr ) return o_rc; #undef PRDF_FUNC } +template int32_t page<TYPE_MCA>( ExtensibleChip * i_chip, MemAddr i_addr ); template<TYPE T> int32_t rank( ExtensibleChip * i_chip, MemRank i_rank ) @@ -531,6 +532,7 @@ int32_t rank( ExtensibleChip * i_chip, MemRank i_rank ) return o_rc; #undef PRDF_FUNC } +template int32_t rank<TYPE_MCA>( ExtensibleChip * i_chip, MemRank i_rank ); template<TYPE T> int32_t port( ExtensibleChip * i_chip ) @@ -593,6 +595,7 @@ int32_t port( ExtensibleChip * i_chip ) return o_rc; #undef PRDF_FUNC } +template int32_t port<TYPE_MCA>( ExtensibleChip * i_chip ); template <TYPE T> int32_t dimmSlct( TargetHandle_t i_dimm ) |