summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/occ_firdata/prdfWriteHomerFirData.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/occ_firdata/prdfWriteHomerFirData.C')
-rw-r--r--src/usr/diag/prdf/occ_firdata/prdfWriteHomerFirData.C62
1 files changed, 29 insertions, 33 deletions
diff --git a/src/usr/diag/prdf/occ_firdata/prdfWriteHomerFirData.C b/src/usr/diag/prdf/occ_firdata/prdfWriteHomerFirData.C
index d3b8a72ee..2e9b6f963 100644
--- a/src/usr/diag/prdf/occ_firdata/prdfWriteHomerFirData.C
+++ b/src/usr/diag/prdf/occ_firdata/prdfWriteHomerFirData.C
@@ -621,28 +621,11 @@ void getAddresses( TrgtMap_t & io_targMap )
0x07013340, // OMIDLFIR
};
- io_targMap[TRGT_OCMB][REG_GLBL] =
+ io_targMap[TRGT_OMIC][REG_REG] =
{
- 0x08040000, // MB_CHIPLET_CS_FIR
- 0x08040001, // MB_CHIPLET_RE_FIR
- 0x08040004, // MB_CHIPLET_SPA_FIR
- };
-
- io_targMap[TRGT_OCMB][REG_FIR] =
- {
- 0x0804000a, // MB_LFIR
- 0x08010870, // MMIOFIR
- 0x08011400, // SRQFIR
- 0x08011800, // MCBISTFIR
- 0x08011c00, // RDFFIR
- 0x08012400, // TLXFIR
- 0x08012800, // OMIDLFIR
- };
-
- io_targMap[TRGT_OCMB][REG_REG] =
- {
- 0x08040002, // MB_CHIPLET_FIR_MASK
- 0x08040007, // MB_CHIPLET_SPA_FIR_MASK
+ 0x07013353, // DL0_ERROR_HOLD
+ 0x07013363, // DL1_ERROR_HOLD
+ 0x07013373, // DL2_ERROR_HOLD
};
// EC level handling will be done with a
@@ -721,15 +704,22 @@ void __initChipInfo( TargetHandle_t i_chip, HOMER_ChipType_t i_chipModel,
uint32_t chipPos = getTargetPosition( i_chip );
PRDF_ASSERT( chipPos < i_maxChipsPerNode );
- // Get the chip FSI address.
- FSI::FsiLinkInfo_t fsiInfo;
- FSI::getFsiLinkInfo( i_chip, fsiInfo );
-
// Fill in the HOMER chip info.
o_chipInfo.hChipType = HOMER_getChip( i_chipModel );
o_chipInfo.hChipType.chipPos = chipPos;
- o_chipInfo.hChipType.fsiBaseAddr = fsiInfo.baseAddr;
o_chipInfo.hChipType.chipEcLevel = i_chip->getAttr<ATTR_EC>();
+
+ if( HOMER_CHIP_EXPLORER == i_chipModel )
+ {
+ //@todo - RTC:201781 - Add i2c information
+ }
+ else
+ {
+ // Get the chip FSI address.
+ FSI::FsiLinkInfo_t fsiInfo;
+ FSI::getFsiLinkInfo( i_chip, fsiInfo );
+ o_chipInfo.hChipType.fsiBaseAddr = fsiInfo.baseAddr;
+ }
}
// Returns a right justified config mask of the unit
@@ -942,20 +932,26 @@ errlHndl_t getHwConfig( std::vector<HOMER_ChipInfo_t> & o_chipInfVector,
// Iterate all of the OCMB chips.
for ( auto & ocmb : getFunctionalTargetList(TYPE_OCMB_CHIP) )
{
- // Get the chip model type.
- HOMER_ChipType_t modelType = HOMER_CHIP_INVALID;
- switch ( getChipModel(ocmb) )
+ // Get the OCMB chip type.
+ HOMER_ChipType_t ocmbType = HOMER_CHIP_INVALID;
+ switch ( getChipId(ocmb) )
{
- case MODEL_EXPLORER: modelType = HOMER_CHIP_EXPLORER; break;
+ case POWER_CHIPID::GEMINI_16:
+ // Skip Gemini OCMBs. They can exist, but PRD won't support
+ // them (set invalid).
+ ocmbType = HOMER_CHIP_INVALID; break;
+ case POWER_CHIPID::EXPLORER_16:
+ ocmbType = HOMER_CHIP_EXPLORER; break;
default:
- PRDF_ERR( FUNC "Unsupported chip model %d on 0x%08x",
- modelType, getHuid(ocmb) );
+ PRDF_ERR( FUNC "Unsupported chip ID 0x%08x on 0x%08x",
+ getChipId(ocmb), getHuid(ocmb) );
PRDF_ASSERT( false );
}
+ if ( HOMER_CHIP_INVALID == ocmbType ) continue;
// Init the chip info.
HOMER_ChipInfo_t ci;
- __initChipInfo( ocmb, modelType, MAX_OCMB_PER_NODE, ci );
+ __initChipInfo( ocmb, ocmbType, MAX_OCMB_PER_NODE, ci );
// NOTE: Explorer does not have any unit data.
OpenPOWER on IntegriCloud