diff options
| author | Chris Phan <cphan@us.ibm.com> | 2014-09-16 21:18:07 -0500 |
|---|---|---|
| committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-09-22 13:26:06 -0500 |
| commit | fe787082ffbf72795dc3c58d09e0a7ed45600da2 (patch) | |
| tree | ae18464ab2b6abc2b79dc25273bef0714812e88a /src/usr/diag/prdf/framework | |
| parent | 83e47c8df68c5736a8bb080d0a250df77c82f935 (diff) | |
| download | blackbird-hostboot-fe787082ffbf72795dc3c58d09e0a7ed45600da2.tar.gz blackbird-hostboot-fe787082ffbf72795dc3c58d09e0a7ed45600da2.zip | |
PRD: change osc callout and threshold design
Change-Id: Ib54734a1db5d17f4ea13ddd80f91fc4dae7aef3a
CQ: SW278778
Backport: release-fips820
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/13461
Tested-by: Jenkins Server
Reviewed-by: Prem Shanker Jha <premjha2@in.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Reviewed-by: Zane Shelley <zshelle@us.ibm.com>
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/13519
Diffstat (limited to 'src/usr/diag/prdf/framework')
| -rw-r--r-- | src/usr/diag/prdf/framework/service/prdfPlatServices.C | 77 |
1 files changed, 64 insertions, 13 deletions
diff --git a/src/usr/diag/prdf/framework/service/prdfPlatServices.C b/src/usr/diag/prdf/framework/service/prdfPlatServices.C index 1c7eddc76..cb20e8a44 100644 --- a/src/usr/diag/prdf/framework/service/prdfPlatServices.C +++ b/src/usr/diag/prdf/framework/service/prdfPlatServices.C @@ -267,10 +267,14 @@ bool isSmpCoherent() { return false; } //## util functions //############################################################################## -void captureFsiStatusReg( ExtensibleChip * i_chip, - STEP_CODE_DATA_STRUCT & io_sc ) +int32_t getCfam( ExtensibleChip * i_chip, + STEP_CODE_DATA_STRUCT & io_sc, + const uint32_t i_addr, + uint32_t & o_data) { - #define PRDF_FUNC "[PlatServices::captureFsiStatusReg] " + #define PRDF_FUNC "[PlatServices::getCfam] " + + int32_t rc = SUCCESS; do { @@ -293,36 +297,83 @@ void captureFsiStatusReg( ExtensibleChip * i_chip, errlHndl_t errH = NULL; ecmdDataBufferBase cfamData(32); - uint32_t u32Data = 0; PRD_FAPI_TO_ERRL(errH, fapiGetCfamRegister, - PlatServices::getFapiTarget(i_chip->GetChipHandle()), - 0x00001007, + PlatServices::getFapiTarget(l_procTgt), + i_addr, cfamData); - if(errH) + if ( NULL == errH ) { - PRDF_ERR( PRDF_FUNC"chip: 0x%.8X, failed to get " - "CFAM_FSI_STATUS: 0x%X", - i_chip->GetId(), cfamData.getWord( 0 ) ); + o_data = cfamData.getWord(0); + } + else + { + rc = FAIL; + PRDF_ERR( PRDF_FUNC"chip: 0x%.8X, failed to get cfam address: " + "0x%X", i_chip->GetId(), i_addr ); PRDF_COMMIT_ERRL(errH, ERRL_ACTION_SA|ERRL_ACTION_REPORT); break; } - u32Data = cfamData.getWord(0); + + } while(0); + + + return rc; + + #undef PRDF_FUNC +} + +void captureFsiStatusReg( ExtensibleChip * i_chip, + STEP_CODE_DATA_STRUCT & io_sc ) +{ + #define PRDF_FUNC "[PlatServices::captureFsiStatusReg] " + + uint32_t u32Data = 0; + int32_t rc = getCfam( i_chip, io_sc, 0x00001007, u32Data ); + + if ( SUCCESS == rc ) + { BIT_STRING_ADDRESS_CLASS bs (0, 32, (CPU_WORD *) &u32Data); io_sc.service_data->GetCaptureData().Add( i_chip->GetChipHandle(), ( Util::hashString("CFAM_FSI_STATUS") ^ i_chip->getSignatureOffset() ), - bs); - } while(0); + bs); + } + + // only get this for proc chip + if ( TYPE_PROC == getTargetType(i_chip->GetChipHandle()) ) + { + rc = getCfam( i_chip, io_sc, 0x00002819, u32Data ); + + if ( SUCCESS == rc ) + { + BIT_STRING_ADDRESS_CLASS bs (0, 32, (CPU_WORD *) &u32Data); + + io_sc.service_data->GetCaptureData().Add( + i_chip->GetChipHandle(), + ( Util::hashString("PCIE_OSC_SWITCH") ^ + i_chip->getSignatureOffset() ), + bs); + } + } #undef PRDF_FUNC } +TARGETING::TargetHandle_t getActiveRefClk(TARGETING::TargetHandle_t + i_procTarget, + TARGETING::TYPE i_connType, + uint32_t i_oscPos) +{ + return PlatServices::getClockId( i_procTarget, + i_connType, + i_oscPos ); +} } // end namespace PlatServices |

