diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2017-06-23 17:08:20 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2017-06-30 14:47:51 -0400 |
commit | 7351357827bbfa5fa39fe7fe5e063080940e803a (patch) | |
tree | 22ea4804133f2faf7e4adbef0db8128b0f717ba0 /src/usr/diag/prdf/plat/mem/prdfMemIplCeStats.H | |
parent | 2ea31dc4009102c57c94fcb87c1c781d5c613481 (diff) | |
download | talos-hostboot-7351357827bbfa5fa39fe7fe5e063080940e803a.tar.gz talos-hostboot-7351357827bbfa5fa39fe7fe5e063080940e803a.zip |
PRD: Bugs related to banning analysis in MNFG IPL CE Handling
Change-Id: I5a6aba740c775a71fef436f739047761d82fc62a
CQ: SW394179
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42398
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42631
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/plat/mem/prdfMemIplCeStats.H')
-rwxr-xr-x | src/usr/diag/prdf/plat/mem/prdfMemIplCeStats.H | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemIplCeStats.H b/src/usr/diag/prdf/plat/mem/prdfMemIplCeStats.H index 846df1669..09c632b49 100755 --- a/src/usr/diag/prdf/plat/mem/prdfMemIplCeStats.H +++ b/src/usr/diag/prdf/plat/mem/prdfMemIplCeStats.H @@ -65,18 +65,17 @@ class MemIplCeStats ~MemIplCeStats() {} /** - * @brief Bans analysis of the given rank. - * @param i_rank The rank to ban. + * @brief Bans analysis of the given DIMM select. + * @param i_dimmSlct The DIMM select. */ - void banAnalysis( const MemRank & i_rank ); + void banAnalysis( uint8_t i_dimmSlct ); /** - * @brief Bans analysis of the given half rank (Only needed for centaur). - * @param i_rank The rank. - * @param i_portSlct The port select. - * @return Non-SUCCESS if the parameters are invalid, SUCCESS otherwise. + * @brief Bans analysis of the given DIMM select and port select. + * @param i_dimmSlct The DIMM select. + * @param i_portSlct The port select. */ - int32_t banAnalysis( const MemRank & i_rank, uint8_t i_portSlct ); + void banAnalysis( uint8_t i_dimmSlct, uint8_t i_portSlct ); /** * @brief Will collect all the maintenance statistics and store them for @@ -136,6 +135,25 @@ class MemIplCeStats } }; + /** @brief The key to identify a DIMM. This key will be used to ban analysis + * on a DIMM after a DIMM has been called out. */ + struct DimmKey + { + uint8_t dimmSlct; ///< The DIMM select + uint8_t portSlct; ///< The port select + + /** @brief Overrides the '==' operator. */ + bool operator==( const DimmKey & i ) const + { return ( (dimmSlct == i.dimmSlct) && (portSlct == i.portSlct) ); } + + /** @brief Overrides the '<' operator. */ + bool operator<( const DimmKey & i ) const + { + return ( (dimmSlct < i.dimmSlct) || + ((dimmSlct == i.dimmSlct) && (portSlct < i.portSlct)) ); + } + }; + /** @brief The key type for each entry in iv_dramMap. */ struct DramKey { @@ -166,8 +184,8 @@ class MemIplCeStats typedef std::map<HalfRankKey, uint32_t> CePerHalfDsMap; // data type to collect all symbol statistics for a rank. typedef std::map<HalfRankKey, uint32_t> CePerHalfRankMap; - // data type to store banned half ranks on which analysis is not required. - typedef std::map<HalfRankKey, bool> BannedAnalysisMap; + // data type to store banned DIMMs on which analysis is not required. + typedef std::map<DimmKey, bool> BannedAnalysisMap; // data type to collect all symbol statistics for a dram. typedef std::map<DramKey, uint32_t> CePerDramMap; |