diff options
author | Caleb Palmer <cnpalmer@us.ibm.com> | 2019-06-21 11:16:39 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2019-06-28 14:08:02 -0500 |
commit | 8e6a69de2d3988dd904ede00a99b6fc537c30c8b (patch) | |
tree | 73b1862be2497ddb93bf8a436a180af9ecacdaaf /src/usr/diag/prdf/plat/mem | |
parent | 8db1ba5aaa8198a0535cc472eda56cecdbb016f9 (diff) | |
download | talos-hostboot-8e6a69de2d3988dd904ede00a99b6fc537c30c8b.tar.gz talos-hostboot-8e6a69de2d3988dd904ede00a99b6fc537c30c8b.zip |
PRD: Remove use of unsupported MEM_PORT ExtensibleChip
Change-Id: I2fe2952854a62ce0b562eacdb7a554ed6a9f1881
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79344
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Benjamen G. Tyner <ben.tyner@ibm.com>
Reviewed-by: Paul Greenwood <paul.greenwood@ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79346
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/plat/mem')
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C | 18 | ||||
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C | 33 | ||||
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemTdRankList.H | 20 |
3 files changed, 30 insertions, 41 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C index 6dff91e82..fcd347793 100644 --- a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C +++ b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C @@ -305,24 +305,8 @@ uint32_t __analyzeCmdComplete<TYPE_OCMB_CHIP>( ExtensibleChip * i_chip, do { - // Get all ports in which the command was run. - ExtensibleChipList portList; - o_rc = getMcbistMaintPort<TYPE_OCMB_CHIP>( i_chip, portList ); - if ( SUCCESS != o_rc ) - { - PRDF_ERR( PRDF_FUNC "getMcbistMaintPort(0x%08x) failed", - i_chip->getHuid() ); - break; - } - - // In broadcast mode, the rank configuration for all ports will be the - // same. In non-broadcast mode, there will only be one MEM_PORT in - // the list. Therefore, we can simply use the first MEM_PORT in the - // list for all configs. - ExtensibleChip * stopChip = portList.front(); - // Update iv_stoppedRank. - o_stoppedRank = __getStopRank<TYPE_MEM_PORT>( stopChip, i_addr ); + o_stoppedRank = __getStopRank<TYPE_OCMB_CHIP>( i_chip, i_addr ); // Check the OCMB for ECC errors. bool errorsFound; diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C index 35c44e2be..28988f1ab 100644 --- a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C +++ b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C @@ -1154,11 +1154,9 @@ uint32_t __findChipMarks<TYPE_MEM_PORT>( for ( auto & entry : i_rankList.getList() ) { - ExtensibleChip * memPort = entry.getChip(); + ExtensibleChip * ocmb = entry.getChip(); MemRank rank = entry.getRank(); - ExtensibleChip * ocmb = getConnectedParent( memPort, TYPE_OCMB_CHIP ); - // Call readChipMark to get MemMark. MemMark chipMark; o_rc = MarkStore::readChipMark<TYPE_OCMB_CHIP>( ocmb, rank, chipMark ); @@ -1171,13 +1169,19 @@ uint32_t __findChipMarks<TYPE_MEM_PORT>( if ( !chipMark.isValid() ) continue; // no chip mark present + // TODO RTC 210072 - Explorer only has one port, however, multiple ports + // will be supported in the future. Updates will need to be made here + // so we can get the relevant port. + TargetHandle_t memPort = getConnectedChild( ocmb->getTrgt(), + TYPE_MEM_PORT, 0 ); + // Get the DQ Bitmap data. MemDqBitmap dqBitmap; - o_rc = getBadDqBitmap( memPort->getTrgt(), rank, dqBitmap ); + o_rc = getBadDqBitmap( memPort, rank, dqBitmap ); if ( SUCCESS != o_rc ) { PRDF_ERR( PRDF_FUNC "getBadDqBitmap(0x%08x,0x%02x)", - memPort->getHuid(), rank.getKey() ); + getHuid(memPort), rank.getKey() ); break; } @@ -1187,7 +1191,7 @@ uint32_t __findChipMarks<TYPE_MEM_PORT>( if ( SUCCESS != o_rc ) { PRDF_ERR( PRDF_FUNC "dqBitmap.isChipMark() failed on 0x%08x " - "0x%02x", memPort->getHuid(), rank.getKey() ); + "0x%02x", getHuid(memPort), rank.getKey() ); break; } @@ -1509,31 +1513,36 @@ uint32_t MemTdCtlr<TYPE_OCMB_CHIP>::handleRrFo() for ( auto & entry : vectorList ) { - ExtensibleChip * memPortChip = entry.getChip(); + ExtensibleChip * ocmbChip = entry.getChip(); MemRank rank = entry.getRank(); // Get the chip mark MemMark chipMark; - o_rc = MarkStore::readChipMark<TYPE_OCMB_CHIP>( iv_chip, rank, + o_rc = MarkStore::readChipMark<TYPE_OCMB_CHIP>( ocmbChip, rank, chipMark ); if ( SUCCESS != o_rc ) { PRDF_ERR( PRDF_FUNC "readChipMark<TYPE_MEM_PORT>(0x%08x,%d) " - "failed", memPortChip->getHuid(), rank.getMaster() ); + "failed", ocmbChip->getHuid(), rank.getMaster() ); break; } if ( !chipMark.isValid() ) continue; // no chip mark present + // TODO RTC 210072 - Explorer only has one port, however, + // multiple ports will be supported in the future. Updates will + // need to be made here so we can get the relevant port. + // Get the DQ Bitmap data. - TargetHandle_t memPortTrgt = memPortChip->GetChipHandle(); + TargetHandle_t memPort = getConnectedChild( ocmbChip->getTrgt(), + TYPE_MEM_PORT, 0 ); MemDqBitmap dqBitmap; - o_rc = getBadDqBitmap( memPortTrgt, rank, dqBitmap ); + o_rc = getBadDqBitmap( memPort, rank, dqBitmap ); if ( SUCCESS != o_rc ) { PRDF_ERR( PRDF_FUNC "getBadDqBitmap(0x%08x, %d)", - getHuid(memPortTrgt), rank.getMaster() ); + getHuid(memPort), rank.getMaster() ); break; } diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTdRankList.H b/src/usr/diag/prdf/plat/mem/prdfMemTdRankList.H index e61389ea2..d1cf12a50 100644 --- a/src/usr/diag/prdf/plat/mem/prdfMemTdRankList.H +++ b/src/usr/diag/prdf/plat/mem/prdfMemTdRankList.H @@ -80,7 +80,7 @@ class TdRankListEntry private: - ExtensibleChip * iv_chip = nullptr; ///< MCA, MBA, or MEM_PORT chip. + ExtensibleChip * iv_chip = nullptr; ///< MCA, MBA, or OCMB chip. MemRank iv_rank = MemRank(0); ///< Any rank on the MCA/MBA/MEM_PORT }; @@ -95,7 +95,7 @@ class TdRankList /** * @brief Constructor. - * @param MCBIST or MBA chip. + * @param MCBIST, OCMB, or MBA chip. */ explicit TdRankList( ExtensibleChip * i_chip ); @@ -191,17 +191,13 @@ inline TdRankList<TARGETING::TYPE_OCMB_CHIP>::TdRankList( PRDF_ASSERT( TYPE_OCMB_CHIP == i_chip->getType() ); - ExtensibleChipList memPortChipList = getConnected( i_chip, TYPE_MEM_PORT ); - for ( auto & memPortChip : memPortChipList ) - { - std::vector<MemRank> rankList; - getSlaveRanks<TYPE_MEM_PORT>( memPortChip->getTrgt(), rankList ); - PRDF_ASSERT( !rankList.empty() ); // target configured with no ranks + std::vector<MemRank> rankList; + getSlaveRanks<TYPE_OCMB_CHIP>( i_chip->getTrgt(), rankList ); + PRDF_ASSERT( !rankList.empty() ); // target configured with no ranks - for ( auto & rank : rankList ) - { - iv_list.push_back( TdRankListEntry(memPortChip, rank) ); - } + for ( auto & rank : rankList ) + { + iv_list.push_back( TdRankListEntry(i_chip, rank) ); } } |