diff options
Diffstat (limited to 'src/usr/diag/prdf/plat/mem/prdfMemTps_ipl.C')
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemTps_ipl.C | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTps_ipl.C b/src/usr/diag/prdf/plat/mem/prdfMemTps_ipl.C index 8525c47f2..339d3ac0a 100644 --- a/src/usr/diag/prdf/plat/mem/prdfMemTps_ipl.C +++ b/src/usr/diag/prdf/plat/mem/prdfMemTps_ipl.C @@ -123,9 +123,20 @@ uint32_t TpsEvent<TYPE_MCA>::nextStep( STEP_CODE_DATA_STRUCT & io_sc, PRDFSIG_MaintIUE ); } + // At this point we don't actually have an address for the UE. + // The best we can do is get the address in which the command + // stopped. + MemAddr addr; + o_rc = getMemMaintAddr<TYPE_MCA>( iv_chip, addr ); + if ( SUCCESS != o_rc ) + { + PRDF_ERR( PRDF_FUNC "getMemMaintAddr(0x%08x) failed", + iv_chip->getHuid() ); + break; + } + // Do memory UE handling. - o_rc = MemEcc::handleMemUe<TYPE_MCA>(iv_chip, - MemAddr::fromRank(iv_rank), + o_rc = MemEcc::handleMemUe<TYPE_MCA>(iv_chip, addr, UE_TABLE::SCRUB_UE, io_sc); if ( SUCCESS != o_rc ) { |