diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2018-04-09 21:37:56 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-04-19 16:45:24 -0400 |
commit | 87201e7f578f9ef54513009acb539af2b1eab43b (patch) | |
tree | d500f1ee1f9e66c6a7ebe6341634e1904f466003 /src/usr/diag/prdf/plat/prdfPlatServices_ipl.C | |
parent | 360d83a83ec25acbdb6b40e3c773e017c75b6cb4 (diff) | |
download | talos-hostboot-87201e7f578f9ef54513009acb539af2b1eab43b.tar.gz talos-hostboot-87201e7f578f9ef54513009acb539af2b1eab43b.zip |
PRD: add full maint cmd support for all VCM procedures
Change-Id: Id7467120889831e07fa59cd64977b866a8c79ee7
RTC: 190428
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57151
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57132
CI-Ready: Zane C. Shelley <zshelle@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/plat/prdfPlatServices_ipl.C')
-rw-r--r-- | src/usr/diag/prdf/plat/prdfPlatServices_ipl.C | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/src/usr/diag/prdf/plat/prdfPlatServices_ipl.C b/src/usr/diag/prdf/plat/prdfPlatServices_ipl.C index 374b71bf1..3944671a0 100644 --- a/src/usr/diag/prdf/plat/prdfPlatServices_ipl.C +++ b/src/usr/diag/prdf/plat/prdfPlatServices_ipl.C @@ -641,146 +641,6 @@ uint32_t startTdSteerCleanup<TYPE_MBA>( ExtensibleChip * i_chip, //------------------------------------------------------------------------------ template<> -uint32_t startVcmPhase1<TYPE_MBA>( ExtensibleChip * i_chip, - const MemRank & i_rank ) -{ - #define PRDF_FUNC "[PlatServices::startVcmPhase1<TYPE_MBA>] " - - PRDF_ASSERT( isInMdiaMode() ); // MDIA must be running. - - PRDF_ASSERT( nullptr != i_chip ); - PRDF_ASSERT( TYPE_MBA == i_chip->getType() ); - - uint32_t o_rc = SUCCESS; - - // Get the MBA fapi target - fapi2::Target<fapi2::TARGET_TYPE_MBA> fapiTrgt ( i_chip->getTrgt() ); - - // Get the stop conditions. - uint32_t stopCond = mss_MaintCmd::STOP_ON_RETRY_CE_ETE | - mss_MaintCmd::STOP_ON_END_ADDRESS | - mss_MaintCmd::ENABLE_CMD_COMPLETE_ATTENTION; - - // Note that we set the stop on RCE ETE flag. This requires us to set a - // threshold in the MBSTR. Fortunately, MDIA sets the threshold for us when - // it starts the first command on this MBA. - - do - { - // Get the address range of the master rank. - fapi2::buffer<uint64_t> saddr, eaddr; - o_rc = getMemAddrRange<TYPE_MBA>( i_chip, i_rank, saddr, eaddr, - MASTER_RANK ); - if ( SUCCESS != o_rc ) - { - PRDF_ERR( PRDF_FUNC "getMemAddrRange(0x%08x,0x%2x) failed", - i_chip->getHuid(), i_rank.getKey() ); - break; - } - - // Clear all of the counters and maintenance ECC attentions. - o_rc = prepareNextCmd<TYPE_MBA>( i_chip ); - if ( SUCCESS != o_rc ) - { - PRDF_ERR( PRDF_FUNC "prepareNextCmd(0x%08x) failed", - i_chip->getHuid() ); - break; - } - - // Start a steer cleanup command. - mss_TimeBaseSteerCleanup cmd { fapiTrgt, saddr, eaddr, - mss_MaintCmd::FAST_MAX_BW_IMPACT, - stopCond, false }; - errlHndl_t errl; - FAPI_INVOKE_HWP( errl, cmd.setupAndExecuteCmd ); - if ( nullptr != errl ) - { - PRDF_ERR( PRDF_FUNC "setupAndExecuteCmd() on 0x%08x,0x%02x failed", - i_chip->getHuid(), i_rank.getKey() ); - PRDF_COMMIT_ERRL( errl, ERRL_ACTION_REPORT ); - o_rc = FAIL; break; - } - - } while (0); - - return o_rc; - - #undef PRDF_FUNC -} - -//------------------------------------------------------------------------------ - -template<> -uint32_t startVcmPhase2<TYPE_MBA>( ExtensibleChip * i_chip, - const MemRank & i_rank ) -{ - #define PRDF_FUNC "[PlatServices::startVcmPhase2<TYPE_MBA>] " - - PRDF_ASSERT( isInMdiaMode() ); // MDIA must be running. - - PRDF_ASSERT( nullptr != i_chip ); - PRDF_ASSERT( TYPE_MBA == i_chip->getType() ); - - uint32_t o_rc = SUCCESS; - - // Get the MBA fapi target - fapi2::Target<fapi2::TARGET_TYPE_MBA> fapiTrgt ( i_chip->getTrgt() ); - - // Get the stop conditions. - uint32_t stopCond = mss_MaintCmd::STOP_ON_END_ADDRESS | - mss_MaintCmd::ENABLE_CMD_COMPLETE_ATTENTION; - - do - { - // Get the address range of the master rank. - fapi2::buffer<uint64_t> saddr, eaddr; - o_rc = getMemAddrRange<TYPE_MBA>( i_chip, i_rank, saddr, eaddr, - MASTER_RANK ); - if ( SUCCESS != o_rc ) - { - PRDF_ERR( PRDF_FUNC "getMemAddrRange(0x%08x,0x%2x) failed", - i_chip->getHuid(), i_rank.getKey() ); - break; - } - - // Clear all of the counters and maintenance ECC attentions. - o_rc = prepareNextCmd<TYPE_MBA>( i_chip ); - if ( SUCCESS != o_rc ) - { - PRDF_ERR( PRDF_FUNC "prepareNextCmd(0x%08x) failed", - i_chip->getHuid() ); - break; - } - - // Create the new command. Store a pointer to the command in the MBA - // data bundle so that we can call the cleanup function after the - // command has completed. - MbaDataBundle * db = getMbaDataBundle( i_chip ); - PRDF_ASSERT( nullptr == db->iv_sfCmd ); // Code bug. - db->iv_sfCmd = new mss_SuperFastRead { fapiTrgt, saddr, eaddr, - stopCond, false }; - - // Start the super fast read command. - errlHndl_t errl; - FAPI_INVOKE_HWP( errl, db->iv_sfCmd->setupAndExecuteCmd ); - if ( nullptr != errl ) - { - PRDF_ERR( PRDF_FUNC "setupAndExecuteCmd() on 0x%08x,0x%02x failed", - i_chip->getHuid(), i_rank.getKey() ); - PRDF_COMMIT_ERRL( errl, ERRL_ACTION_REPORT ); - o_rc = FAIL; break; - } - - } while (0); - - return o_rc; - - #undef PRDF_FUNC -} - -//------------------------------------------------------------------------------ - -template<> uint32_t startTpsPhase1<TYPE_MBA>( ExtensibleChip * i_chip, const MemRank & i_rank ) { |