summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/framework
diff options
context:
space:
mode:
authorChris Phan <cphan@us.ibm.com>2014-09-16 21:18:07 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-09-22 13:26:06 -0500
commitfe787082ffbf72795dc3c58d09e0a7ed45600da2 (patch)
treeae18464ab2b6abc2b79dc25273bef0714812e88a /src/usr/diag/prdf/framework
parent83e47c8df68c5736a8bb080d0a250df77c82f935 (diff)
downloadblackbird-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.C77
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
OpenPOWER on IntegriCloud