Skip to content

Commit

Permalink
PRD: Reorganized some pll code
Browse files Browse the repository at this point in the history
Change-Id: I301e457d21acaeb00af5dfc89fc99aa8ea4585e7
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45250
Tested-by: Jenkins Server <pfd-jenkins+hostboot@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/45569
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>
  • Loading branch information
bweisenb authored and zane131 committed Sep 5, 2017
1 parent fe78361 commit c749a88
Showing 1 changed file with 45 additions and 128 deletions.
173 changes: 45 additions & 128 deletions src/usr/diag/prdf/common/plat/p9/prdfP9Pll.C
Expand Up @@ -60,55 +60,73 @@ enum
OSC_SW_MF_REF = 37,
};

void ClearChipletParityError(ExtensibleChip * i_chip,
TARGETING::TYPE i_chpltType)
void getChpltList ( ExtensibleChip * i_chip,
TARGETING::TYPE i_chpltType,
const char * &o_errRegStr,
const char * &o_cfgRegStr,
ExtensibleChipList & o_chpltList )
{
#define PRDF_FUNC "[Proc::ClearChipletParityError ]"

int32_t rc = SUCCESS;
const char * errRegStr = NULL;

#define PRDF_FUNC "[Proc::getChpltList ]"
switch (i_chpltType)
{
case TYPE_PROC:
errRegStr = "TP_ERROR_REG";
o_errRegStr = "TP_ERROR_REG";
o_cfgRegStr = "TP_CONFIG_REG";
break;
case TYPE_OBUS:
errRegStr = "OBUS_ERROR_REG";
o_errRegStr = "OBUS_ERROR_REG";
o_cfgRegStr = "OBUS_CONFIG_REG";
break;
case TYPE_XBUS:
errRegStr = "XBUS_ERROR_REG";
o_errRegStr = "XBUS_ERROR_REG";
o_cfgRegStr = "XBUS_CONFIG_REG";
break;
case TYPE_PEC:
errRegStr = "PCI_ERROR_REG";
o_errRegStr = "PCI_ERROR_REG";
o_cfgRegStr = "PCI_CONFIG_REG";
break;
case TYPE_MCBIST:
errRegStr = "MC_ERROR_REG";
o_errRegStr = "MC_ERROR_REG";
o_cfgRegStr = "MC_CONFIG_REG";
break;
case TYPE_EQ:
errRegStr = "EQ_ERROR_REG";
o_errRegStr = "EQ_ERROR_REG";
o_cfgRegStr = "EQ_CONFIG_REG";
break;
case TYPE_CORE:
errRegStr = "EC_ERROR_REG";
o_errRegStr = "EC_ERROR_REG";
o_cfgRegStr = "EC_CONFIG_REG";
break;
default:
// Unexpected chiplet type, just return
PRDF_ERR(PRDF_FUNC "Unexpected chiplet type %x for for 0x%08x",
i_chpltType, i_chip->getHuid());
return;
PRDF_ASSERT(false);
}

ExtensibleChipList chpltList;

if ( i_chpltType == TYPE_PROC || i_chpltType == TYPE_XBUS )
{
chpltList.push_back(i_chip);
o_chpltList.push_back(i_chip);
}
else
{
chpltList = PlatServices::getConnected(i_chip, i_chpltType);
o_chpltList = PlatServices::getConnected(i_chip, i_chpltType);
}

#undef PRDF_FUNC
}

void ClearChipletParityError(ExtensibleChip * i_chip,
TARGETING::TYPE i_chpltType)
{
#define PRDF_FUNC "[Proc::ClearChipletParityError ]"

int32_t rc = SUCCESS;
const char * errRegStr = nullptr;
const char * cfgRegStr = nullptr;
ExtensibleChipList chpltList;

getChpltList( i_chip, i_chpltType, errRegStr, cfgRegStr, chpltList );

for ( auto chplt : chpltList )
{
SCAN_COMM_REGISTER_CLASS * errReg = chplt->getRegister(errRegStr);
Expand All @@ -130,42 +148,11 @@ void ClearChipletPll(ExtensibleChip * i_chip, TARGETING::TYPE i_chpltType)
#define PRDF_FUNC "[Proc::ClearChipletPll] "

int32_t rc = SUCCESS;
const char * errRegStr = NULL;

switch (i_chpltType)
{
case TYPE_PROC:
errRegStr = "TP_ERROR_REG";
break;
case TYPE_OBUS:
errRegStr = "OBUS_ERROR_REG";
break;
case TYPE_XBUS:
errRegStr = "XBUS_ERROR_REG";
break;
case TYPE_PEC:
errRegStr = "PCI_ERROR_REG";
break;
case TYPE_MCBIST:
errRegStr = "MC_ERROR_REG";
break;
default:
// Unexpected chiplet type, just return
PRDF_ERR(PRDF_FUNC "Unexpected chiplet type %x for for 0x%08x",
i_chpltType, i_chip->getHuid());
return;
}

const char * errRegStr = nullptr;
const char * cfgRegStr = nullptr;
ExtensibleChipList chpltList;

if ( i_chpltType == TYPE_PROC || i_chpltType == TYPE_XBUS )
{
chpltList.push_back(i_chip);
}
else
{
chpltList = PlatServices::getConnected(i_chip, i_chpltType);
}
getChpltList( i_chip, i_chpltType, errRegStr, cfgRegStr, chpltList );

for ( auto chplt : chpltList )
{
Expand All @@ -189,7 +176,6 @@ void ClearChipletPll(ExtensibleChip * i_chip, TARGETING::TYPE i_chpltType)
errRegStr, chplt->getHuid());
continue;
}

}

#undef PRDF_FUNC
Expand All @@ -200,42 +186,11 @@ void MaskChipletPll(ExtensibleChip * i_chip, TARGETING::TYPE i_chpltType)
#define PRDF_FUNC "[Proc::MaskChipletPll] "

int32_t rc = SUCCESS;
const char * cfgRegStr = NULL;

switch (i_chpltType)
{
case TYPE_PROC:
cfgRegStr = "TP_CONFIG_REG";
break;
case TYPE_OBUS:
cfgRegStr = "OBUS_CONFIG_REG";
break;
case TYPE_XBUS:
cfgRegStr = "XBUS_CONFIG_REG";
break;
case TYPE_PEC:
cfgRegStr = "PCI_CONFIG_REG";
break;
case TYPE_MCBIST:
cfgRegStr = "MC_CONFIG_REG";
break;
default:
// Unexpected chiplet type, just return
PRDF_ERR(PRDF_FUNC "Unexpected chiplet type %x for for 0x%08x",
i_chpltType, i_chip->getHuid());
return;
}

const char * errRegStr = nullptr;
const char * cfgRegStr = nullptr;
ExtensibleChipList chpltList;

if ( i_chpltType == TYPE_PROC || i_chpltType == TYPE_XBUS )
{
chpltList.push_back(i_chip);
}
else
{
chpltList = PlatServices::getConnected(i_chip, i_chpltType);
}
getChpltList( i_chip, i_chpltType, errRegStr, cfgRegStr, chpltList );

for ( auto chplt : chpltList )
{
Expand Down Expand Up @@ -268,46 +223,9 @@ bool CheckChipletPll(ExtensibleChip * i_chip, TARGETING::TYPE i_chpltType)
bool pllErrFound = false;
const char * errRegStr = NULL;
const char * cfgRegStr = NULL;

switch (i_chpltType)
{
case TYPE_PROC:
errRegStr = "TP_ERROR_REG";
cfgRegStr = "TP_CONFIG_REG";
break;
case TYPE_OBUS:
errRegStr = "OBUS_ERROR_REG";
cfgRegStr = "OBUS_CONFIG_REG";
break;
case TYPE_XBUS:
errRegStr = "XBUS_ERROR_REG";
cfgRegStr = "XBUS_CONFIG_REG";
break;
case TYPE_PEC:
errRegStr = "PCI_ERROR_REG";
cfgRegStr = "PCI_CONFIG_REG";
break;
case TYPE_MCBIST:
errRegStr = "MC_ERROR_REG";
cfgRegStr = "MC_CONFIG_REG";
break;
default:
// Unexpected chiplet type, just return false
PRDF_ERR(PRDF_FUNC "Unexpected chiplet type %x for for 0x%08x",
i_chpltType, i_chip->getHuid());
return false;
}

ExtensibleChipList chpltList;

if ( i_chpltType == TYPE_PROC || i_chpltType == TYPE_XBUS )
{
chpltList.push_back(i_chip);
}
else
{
chpltList = PlatServices::getConnected(i_chip, i_chpltType);
}
getChpltList( i_chip, i_chpltType, errRegStr, cfgRegStr, chpltList );

for ( auto chplt : chpltList )
{
Expand Down Expand Up @@ -346,7 +264,6 @@ bool CheckChipletPll(ExtensibleChip * i_chip, TARGETING::TYPE i_chpltType)
int32_t CheckErrorType( ExtensibleChip * i_chip, uint32_t & o_errType )
{
#define PRDF_FUNC "[Proc::CheckErrorType] "

int32_t rc = SUCCESS;

SCAN_COMM_REGISTER_CLASS * TP_LFIR =
Expand Down

0 comments on commit c749a88

Please sign in to comment.