diff options
author | Prachi Gupta <pragupta@us.ibm.com> | 2017-12-01 09:39:09 -0600 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2017-12-07 10:55:18 -0500 |
commit | e4d01510117e247cf1b64a46c07ef435ec02164f (patch) | |
tree | 898ea49b8f10f43d170bf11faacdb1bce84120e9 | |
parent | 7b8fa03ea43f11e5f024b6d70bd8c63c1f038028 (diff) | |
download | talos-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.C | 71 | ||||
-rw-r--r-- | src/usr/isteps/istep14/call_mss_power_cleanup.C | 9 |
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) |