diff options
| author | Prachi Gupta <pragupta@us.ibm.com> | 2017-11-17 13:45:03 -0600 |
|---|---|---|
| committer | William G. Hoffa <wghoffa@us.ibm.com> | 2017-11-21 12:24:15 -0500 |
| commit | 18cc0dfbc93fd2342c5a35f3c8405e1d0a660a77 (patch) | |
| tree | f85b3326ebc77e332795385eb4617cd200c989e4 /src | |
| parent | dfdf4bee880f30dd5aefa3cfba70801ad78c760b (diff) | |
| download | talos-hostboot-18cc0dfbc93fd2342c5a35f3c8405e1d0a660a77.tar.gz talos-hostboot-18cc0dfbc93fd2342c5a35f3c8405e1d0a660a77.zip | |
Zeppelin BUP updates
- targeting: skip over ATTR_BAD_DQ_BITMAP during fapi attriubte dump
as it is not looked up correctly for cumulus.
Need to add it back in future.
- istep changes:
- remove p9_throttle_sync from istep 13, it is already getting
called in istep 14
- add support for memdiags on cumulus
- centaur pibrc errors: mask out PROTECTION_BIT for centaur scoms as it is
irrelevant for centaurs
- configureHbrtHypIds: correctly setup DMI information
Change-Id: Ifeaca2f58e16b7ecac9e1329409b98bc6a2f38e7
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49382
Tested-by: Jenkins Server <pfd-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>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com>
Reviewed-by: Thomas R. Sand <trsand@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/usr/fapi2/attribute_service.C | 13 | ||||
| -rw-r--r-- | src/usr/fapi2/plat_attr_override_sync.C | 10 | ||||
| -rw-r--r-- | src/usr/fsiscom/fsiscom.C | 12 | ||||
| -rw-r--r-- | src/usr/isteps/istep06/host_discover_targets.C | 1 | ||||
| -rw-r--r-- | src/usr/isteps/istep13/call_mss_scominit.C | 43 | ||||
| -rw-r--r-- | src/usr/isteps/istep14/call_mss_memdiag.C | 11 | ||||
| -rw-r--r-- | src/usr/runtime/customize_attrs_for_payload.C | 10 | ||||
| -rw-r--r-- | src/usr/targeting/common/target.C | 1 |
8 files changed, 29 insertions, 72 deletions
diff --git a/src/usr/fapi2/attribute_service.C b/src/usr/fapi2/attribute_service.C index 5b4aa93b0..2bd43d2e4 100644 --- a/src/usr/fapi2/attribute_service.C +++ b/src/usr/fapi2/attribute_service.C @@ -588,16 +588,6 @@ ReturnCode __getMcsAndPortSlct( const Target<TARGET_TYPE_DIMM>& i_fapiDimm, break; } - // Get the MCS. - TARGETING::TargetHandleList l_memBufList; - getParentAffinityTargets( l_memBufList, l_port, - TARGETING::CLASS_CHIP, TARGETING::TYPE_MEMBUF ); - - TARGETING::TargetHandleList l_mcsList; - getParentAffinityTargets( l_mcsList, l_memBufList[0], - TARGETING::CLASS_UNIT, TARGETING::TYPE_MCS ); - o_mcsTarget = l_mcsList[0]; - } // If the proc is Nimbus, we need to get the MCA. else @@ -1684,9 +1674,6 @@ ReturnCode platGetMBvpdAttr( const size_t i_valSize ) { - FAPI_INF("platGetMBvpdAttr: Enter"); - FAPI_INF("platGetMBvpdAttr: Attr: 0x%08X", i_attr); - ReturnCode rc; constexpr bool hbSwError{true}; diff --git a/src/usr/fapi2/plat_attr_override_sync.C b/src/usr/fapi2/plat_attr_override_sync.C index e978dbb39..e96e9f080 100644 --- a/src/usr/fapi2/plat_attr_override_sync.C +++ b/src/usr/fapi2/plat_attr_override_sync.C @@ -787,9 +787,13 @@ void AttrOverrideSync::triggerAttrSync(fapi2::TargetType i_type, for(size_t i = 0; i < l_elems; i++) { + //#@TODO RTC: 182602 -- Need to scrub through attributes for dimm target + //For now, just skipping over BAD_DQ_BITMAP as it does not have a valid + //lookup for cumulus //Look for specific ATTR - if((i_attrHash!= 0x0) && //looking for specific ATTR - (i_attrHash != l_attrs[i].iv_attrId)) + if(((i_attrHash!= 0x0) && //looking for specific ATTR + (i_attrHash != l_attrs[i].iv_attrId)) || + (l_attrs[i].iv_attrId == fapi2::ATTR_BAD_DQ_BITMAP)) { continue; } @@ -806,7 +810,7 @@ void AttrOverrideSync::triggerAttrSync(fapi2::TargetType i_type, if(l_bytes > KILOBYTE) { FAPI_INF("triggerAttrSync: ATTR %x bigger [%x] than 1K... skipping", - l_bytes); + l_attrs[i].iv_attrId, l_bytes); continue; } l_buf = reinterpret_cast<uint8_t *>(realloc(l_buf, l_bytes)); diff --git a/src/usr/fsiscom/fsiscom.C b/src/usr/fsiscom/fsiscom.C index 3db2e691f..9a35c9b62 100644 --- a/src/usr/fsiscom/fsiscom.C +++ b/src/usr/fsiscom/fsiscom.C @@ -191,6 +191,7 @@ errlHndl_t fsiScomPerformOp(DeviceFW::OperationType i_opType, bool need_unlock = false; size_t op_size = sizeof(uint32_t); mutex_t* l_mutex = NULL; + uint32_t l_any_error_bits = ANY_ERROR_BIT; do{ @@ -247,6 +248,13 @@ errlHndl_t fsiScomPerformOp(DeviceFW::OperationType i_opType, l_command = static_cast<uint32_t>(l_scomAddr & 0x000000007FFFFFFF); + if (i_target->getAttr<TARGETING::ATTR_TYPE>() == TARGETING::TYPE_MEMBUF) + { + //Protection bit is irrelevant for membuf chips + l_any_error_bits &= ~PROTECTION_CHECK; + } + + // use the chip-specific mutex attribute l_mutex = i_target->getHbMutexAttr<TARGETING::ATTR_FSI_SCOM_MUTEX>(); @@ -309,7 +317,7 @@ errlHndl_t fsiScomPerformOp(DeviceFW::OperationType i_opType, } // Check the status reg for errors - if( l_status & ANY_ERROR_BIT ) + if( l_status & l_any_error_bits ) { TRACFCOMP( g_trac_fsiscom, ERR_MRK"fsiScomPerformOp:Write: PCB/PIB error received: l_status=0x%X)", l_status); /*@ @@ -375,7 +383,7 @@ errlHndl_t fsiScomPerformOp(DeviceFW::OperationType i_opType, } // Check the status reg for errors - if( l_status & ANY_ERROR_BIT ) + if( l_status & l_any_error_bits ) { TRACFCOMP( g_trac_fsiscom, ERR_MRK"fsiScomPerformOp:Read: PCB/PIB error received: l_status=0x%0.8X)", l_status); diff --git a/src/usr/isteps/istep06/host_discover_targets.C b/src/usr/isteps/istep06/host_discover_targets.C index 26ebc57af..f503576b8 100644 --- a/src/usr/isteps/istep06/host_discover_targets.C +++ b/src/usr/isteps/istep06/host_discover_targets.C @@ -146,6 +146,7 @@ void print_system_info(void) //Add all the target types that you want to see in the output to this vector types_to_print.push_back(TARGETING::TYPE_PROC); + types_to_print.push_back(TARGETING::TYPE_MEMBUF); types_to_print.push_back(TARGETING::TYPE_MCS); types_to_print.push_back(TARGETING::TYPE_MCA); types_to_print.push_back(TARGETING::TYPE_MCBIST); diff --git a/src/usr/isteps/istep13/call_mss_scominit.C b/src/usr/isteps/istep13/call_mss_scominit.C index 783ae2a97..966bde9fa 100644 --- a/src/usr/isteps/istep13/call_mss_scominit.C +++ b/src/usr/isteps/istep13/call_mss_scominit.C @@ -160,49 +160,6 @@ void* call_mss_scominit (void *io_pArgs) break; } - // Run proc throttle sync - // Get all functional proc chip targets - TARGETING::TargetHandleList l_cpuTargetList; - getAllChips(l_cpuTargetList, TYPE_PROC); - - for (const auto & l_procChip: l_cpuTargetList) - { - const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP> - l_fapi_cpu_target(l_procChip); - - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "Running p9_throttle_sync HWP on " - "target HUID %.8X", TARGETING::get_huid(l_procChip)); - - // Call proc_throttle_sync - FAPI_INVOKE_HWP( l_err, p9_throttle_sync, l_fapi_cpu_target ); - - if (l_err) - { - TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, - "ERROR 0x%.8X: p9_throttle_sync HWP returns error", - l_err->reasonCode()); - - // Capture the target data in the elog - ErrlUserDetailsTarget(l_procChip).addToLog(l_err); - - // Create IStep error log and cross reference - // to error that occurred - l_stepError.addErrorDetails( l_err ); - - // Commit Error - errlCommit( l_err, HWPF_COMP_ID ); - - break; - } - else - { - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "SUCCESS running p9_throttle_sync HWP on " - "target HUID %.8X", TARGETING::get_huid(l_procChip)); - } - } - } while (0); TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_scominit exit" ); diff --git a/src/usr/isteps/istep14/call_mss_memdiag.C b/src/usr/isteps/istep14/call_mss_memdiag.C index 949cd731f..46793b35d 100644 --- a/src/usr/isteps/istep14/call_mss_memdiag.C +++ b/src/usr/isteps/istep14/call_mss_memdiag.C @@ -143,12 +143,11 @@ void* call_mss_memdiag (void* io_pArgs) } else if ( MODEL_CUMULUS == procType ) { -//@TODO RTC:175770 -// TargetHandleList trgtList; getAllChiplets( trgtList, TYPE_MBA ); -// -// // Start Memory Diagnostics -// errl = __runMemDiags( trgtList ); -// if ( nullptr != errl ) break; + TargetHandleList trgtList; getAllChiplets( trgtList, TYPE_MBA ); + + // Start Memory Diagnostics + errl = __runMemDiags( trgtList ); + if ( nullptr != errl ) break; // No need to unmask or turn off FIFO. That is already contained // within the other Centaur HWPs. diff --git a/src/usr/runtime/customize_attrs_for_payload.C b/src/usr/runtime/customize_attrs_for_payload.C index 390f09965..88be0ebc4 100644 --- a/src/usr/runtime/customize_attrs_for_payload.C +++ b/src/usr/runtime/customize_attrs_for_payload.C @@ -406,17 +406,17 @@ errlHndl_t configureHbrtHypIds(const bool i_configForPhyp) getParentAffinityTargets(targetList, (*pIt), TARGETING::CLASS_UNIT, - TARGETING::TYPE_MCS); + TARGETING::TYPE_DMI, false); assert( !targetList.empty() ); - auto mcs_target = targetList[0]; - auto pos = mcs_target->getAttr<TARGETING::ATTR_CHIP_UNIT>(); + auto dmi_target = targetList[0]; + auto pos = dmi_target->getAttr<TARGETING::ATTR_CHIP_UNIT>(); targetList.clear(); getParentAffinityTargets(targetList, - mcs_target, + dmi_target, TARGETING::CLASS_CHIP, - TARGETING::TYPE_PROC); + TARGETING::TYPE_PROC, false); assert( !targetList.empty() ); auto procTarget = targetList[0]; diff --git a/src/usr/targeting/common/target.C b/src/usr/targeting/common/target.C index fb651a27b..49e94e820 100644 --- a/src/usr/targeting/common/target.C +++ b/src/usr/targeting/common/target.C @@ -501,6 +501,7 @@ void Target::getAttrTankTargetPosData(uint16_t & o_pos, } else if ((l_element.type == TYPE_L4) || (l_element.type == TYPE_MBA) || + (l_element.type == TYPE_MC) || (l_element.type == TYPE_XBUS) || (l_element.type == TYPE_ABUS) || (l_element.type == TYPE_EQ) || |

