summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2019-02-07 08:40:08 -0600
committerZane C. Shelley <zshelle@us.ibm.com>2019-02-12 10:11:38 -0600
commit95bbfc78a463c06cd06204ee8cb1b904ec864565 (patch)
treedf0b264e99b44a4bc70d3a70941c48b03feb32e0 /src
parentcccf89e092dd50e3fe10b70701c9ddfaa84498cb (diff)
downloadblackbird-hostboot-95bbfc78a463c06cd06204ee8cb1b904ec864565.tar.gz
blackbird-hostboot-95bbfc78a463c06cd06204ee8cb1b904ec864565.zip
PRD: Adjust row repair capture data size
Change-Id: I2a9100e927fd8a1c39b25eb8662aeda2d2c31a4e CQ: SW454322 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71522 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71608 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/usr/diag/prdf/common/plat/mem/prdfMemCaptureData.C3
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfParserEnums.H1
-rw-r--r--src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C16
3 files changed, 19 insertions, 1 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemCaptureData.C b/src/usr/diag/prdf/common/plat/mem/prdfMemCaptureData.C
index 635217165..15dcd5eba 100644
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemCaptureData.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemCaptureData.C
@@ -365,7 +365,8 @@ void captureRowRepairVpd(TargetHandle_t i_trgt, CaptureData & io_cd)
}
// Get the maximum capture data size.
- size_t sz_maxData = masterRanks.size() * (sz_rank + sz_port + sz_entry);
+ size_t sz_maxData = masterRanks.size() * MAX_DIMM_PER_RANK *
+ (sz_rank + sz_port + sz_entry);
// Adjust the size for endianness.
sz_maxData = ((sz_maxData + sz_word-1) / sz_word) * sz_word;
diff --git a/src/usr/diag/prdf/common/plugins/prdfParserEnums.H b/src/usr/diag/prdf/common/plugins/prdfParserEnums.H
index 5df40defa..0269c2c74 100644
--- a/src/usr/diag/prdf/common/plugins/prdfParserEnums.H
+++ b/src/usr/diag/prdf/common/plugins/prdfParserEnums.H
@@ -97,6 +97,7 @@ enum PositionBounds
MAX_MBA_PER_MEMBUF = 2,
MAX_PORT_PER_MBA = 2,
MAX_DIMM_PER_PORT = 2,
+ MAX_DIMM_PER_RANK = 2,
MAX_L4_PER_MEMBUF = 1,
MAX_NVDIMM_PER_PROC = MAX_DIMM_PER_PORT * MAX_MCA_PER_PROC,
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C
index 72434e700..d52ef2d1d 100644
--- a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C
+++ b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C
@@ -1260,6 +1260,22 @@ uint32_t MemTdCtlr<TYPE_MBA>::handleRrFo()
PRDF_ERR( PRDF_FUNC "stopBgScrub<TYPE_MBA>(0x%08x) failed",
iv_chip->getHuid() );
}
+
+ // The HWP that stops the command apparently clears the command
+ // complete attention, which we were not expecting. Therefore,
+ // we must manually set the attention.
+ SCAN_COMM_REGISTER_CLASS * mbaspa_or =
+ iv_chip->getRegister("MBASPA_OR");
+ mbaspa_or->SetBit( 0 );
+
+ mbaspa_or->Write();
+ if ( SUCCESS != o_rc )
+ {
+ PRDF_ERR( PRDF_FUNC "Write() failed on MBASPA_OR" );
+ }
+
+ // There is now a command complete attention for this MBA. So
+ // break out of the for-loop.
break;
}
}
OpenPOWER on IntegriCloud