summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2018-03-05 22:55:53 -0600
committerZane C. Shelley <zshelle@us.ibm.com>2018-03-06 15:42:00 -0500
commit82aaa7df696af0aa1b4b593a25f15671e2214e7d (patch)
treee6e8f14f98623842dd61bb9d4b053a5e368ba2bc /src/usr/diag/prdf
parentd2fd055febb7951474bffd527cc88e189a866ee3 (diff)
downloadtalos-hostboot-82aaa7df696af0aa1b4b593a25f15671e2214e7d.tar.gz
talos-hostboot-82aaa7df696af0aa1b4b593a25f15671e2214e7d.zip
PRD: initialize PRD objects for Restore DRAM Repairs
Change-Id: I744483fe5f785a87062e99e723b5034e814830cb CQ: SW419561 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55085 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> CI-Ready: 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: Dean Sanner <dsanner@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55112 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf')
-rw-r--r--src/usr/diag/prdf/plat/mem/prdfRestoreDramRepairs.C23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfRestoreDramRepairs.C b/src/usr/diag/prdf/plat/mem/prdfRestoreDramRepairs.C
index 1fc61fba6..65a95b5fb 100644
--- a/src/usr/diag/prdf/plat/mem/prdfRestoreDramRepairs.C
+++ b/src/usr/diag/prdf/plat/mem/prdfRestoreDramRepairs.C
@@ -179,16 +179,6 @@ bool processRepairedRanks<TYPE_MCA>( TargetHandle_t i_trgt,
do
{
- if ( (false == g_initialized) || (nullptr == systemPtr) )
- {
- errl = noLock_initialize();
- if ( nullptr != errl )
- {
- PRDF_ERR( PRDF_FUNC "Failed to initialize PRD" );
- break;
- }
- }
-
// Keep a list of DIMMs to callout. Note that we are using a map with
// the DIMM target as the key so that we can maintain a unique list. The
// map value has no significance.
@@ -639,6 +629,19 @@ uint32_t restoreDramRepairs<TYPE_MCA>( TargetHandle_t i_trgt )
do
{
+ // Will need the chip and system objects initialized for several parts
+ // of this function and sub-functions.
+ if ( (false == g_initialized) || (nullptr == systemPtr) )
+ {
+ errlHndl_t errl = noLock_initialize();
+ if ( nullptr != errl )
+ {
+ PRDF_ERR( PRDF_FUNC "Failed to initialize PRD" );
+ RDR::commitErrl<TYPE_MCA>( errl, i_trgt );
+ break;
+ }
+ }
+
std::vector<MemRank> ranks;
getMasterRanks<TYPE_MCA>( i_trgt, ranks );
OpenPOWER on IntegriCloud