summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrachi Gupta <pragupta@us.ibm.com>2017-12-01 09:39:09 -0600
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2017-12-07 10:55:18 -0500
commite4d01510117e247cf1b64a46c07ef435ec02164f (patch)
tree898ea49b8f10f43d170bf11faacdb1bce84120e9
parent7b8fa03ea43f11e5f024b6d70bd8c63c1f038028 (diff)
downloadtalos-hostboot-e4d01510117e247cf1b64a46c07ef435ec02164f.tar.gz
talos-hostboot-e4d01510117e247cf1b64a46c07ef435ec02164f.zip
Zeppelin BUP: istep 14 fixes
- mss_memdiags: run the host attn and CHIFIR workaround on all dmi instances instead of just the proc - mss_power_cleanup: pass only functional Centaurs/MBAs to p9_mss_power_cleanup HWP Change-Id: Ie0a37efd6c5edc8eb700703ee73868d53bb95890 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/50367 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Richard J. Knight <rjknight@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
-rw-r--r--src/usr/isteps/istep14/call_mss_memdiag.C71
-rw-r--r--src/usr/isteps/istep14/call_mss_power_cleanup.C9
2 files changed, 40 insertions, 40 deletions
diff --git a/src/usr/isteps/istep14/call_mss_memdiag.C b/src/usr/isteps/istep14/call_mss_memdiag.C
index 7b46b0b3a..ec8cf4516 100644
--- a/src/usr/isteps/istep14/call_mss_memdiag.C
+++ b/src/usr/isteps/istep14/call_mss_memdiag.C
@@ -145,48 +145,53 @@ void* call_mss_memdiag (void* io_pArgs)
{
//@FIXME SW405858 -- Remove this once the fix for this defect is in place
//putscom pu.dmi -all 701090A 44 2 01 -ib -- enable host attentions
+
uint64_t scom_data = 0;
auto scom_size = sizeof(scom_data);
- errl = deviceRead(masterproc, &scom_data, scom_size,
- DEVICE_SCOM_ADDRESS(0x701090A));
- if (errl)
+ TARGETING::TargetHandleList l_dmiList;
+ getAllChiplets(l_dmiList, TYPE_DMI);
+ for (auto l_dmi : l_dmiList)
{
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_memdiags: unable to read 0x701090A");
- break;
- }
+ errl = deviceRead(l_dmi, &scom_data, scom_size,
+ DEVICE_SCOM_ADDRESS(0x701090A));
+ if (errl)
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_memdiags: unable to read 0x701090A");
+ break;
+ }
- //clear bit 44
- scom_data &= 0xFFFFFFFFFFF7FFFF;
+ //clear bit 44
+ scom_data &= 0xFFFFFFFFFFF7FFFF;
- //set bit 45
- scom_data |= 0x0000000000040000;
+ //set bit 45
+ scom_data |= 0x0000000000040000;
- errl = deviceWrite(masterproc, &scom_data, scom_size,
- DEVICE_SCOM_ADDRESS(0x701090A));
- if (errl)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_memdiags: unable to write 0x701090A");
- break;
- }
+ errl = deviceWrite(l_dmi, &scom_data, scom_size,
+ DEVICE_SCOM_ADDRESS(0x701090A));
+ if (errl)
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_memdiags: unable to write 0x701090A");
+ break;
+ }
- //putscom pu.dmi 07010903 FFFF63FFFFFFFFFF -pall -call -- mask CHIFIR bits
- errl = deviceRead(masterproc, &scom_data, scom_size,
- DEVICE_SCOM_ADDRESS(0x7010903));
- if (errl)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_memdiags: unable to read 0x7010903");
- break;
- }
+ //putscom pu.dmi 07010903 FFFF63FFFFFFFFFF -pall -call -- mask CHIFIR bits
+ errl = deviceRead(l_dmi, &scom_data, scom_size,
+ DEVICE_SCOM_ADDRESS(0x7010903));
+ if (errl)
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_memdiags: unable to read 0x7010903");
+ break;
+ }
- scom_data &= 0xFFFF63FFFFFFFFFF;
- errl = deviceWrite(masterproc, &scom_data, scom_size,
- DEVICE_SCOM_ADDRESS(0x7010903));
- if (errl)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_memdiags: unable to write 0x7010903");
- break;
+ scom_data &= 0xFFFF63FFFFFFFFFF;
+ errl = deviceWrite(l_dmi, &scom_data, scom_size,
+ DEVICE_SCOM_ADDRESS(0x7010903));
+ if (errl)
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_memdiags: unable to write 0x7010903");
+ break;
+ }
}
-
/**** end of FIXME *****/
TargetHandleList trgtList; getAllChiplets( trgtList, TYPE_MBA );
diff --git a/src/usr/isteps/istep14/call_mss_power_cleanup.C b/src/usr/isteps/istep14/call_mss_power_cleanup.C
index f28ea5082..ae6a4f42a 100644
--- a/src/usr/isteps/istep14/call_mss_power_cleanup.C
+++ b/src/usr/isteps/istep14/call_mss_power_cleanup.C
@@ -98,8 +98,7 @@ void* call_mss_power_cleanup (void *io_pArgs)
// -- Cumulus only
// Get a list of all present Centaurs
TargetHandleList l_presCentaurs;
- getChipResources(l_presCentaurs, TYPE_MEMBUF, UTIL_FILTER_PRESENT);
-
+ getAllChips(l_presCentaurs, TYPE_MEMBUF);
// For each present Centaur
for (TargetHandleList::const_iterator
l_cenIter = l_presCentaurs.begin();
@@ -114,11 +113,7 @@ void* call_mss_power_cleanup (void *io_pArgs)
// Find all present MBAs associated with this Centaur
TARGETING::TargetHandleList l_presMbas;
- getChildAffinityTargetsByState(l_presMbas,
- l_pCentaur,
- CLASS_UNIT,
- TYPE_MBA,
- UTIL_FILTER_PRESENT);
+ getChildChiplets(l_presMbas, l_pCentaur,TYPE_MBA);
// If not at least two MBAs found
if (l_presMbas.size() < 2)
OpenPOWER on IntegriCloud