summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThi Tran <thi@us.ibm.com>2013-05-02 13:33:47 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-05-02 15:20:50 -0500
commite195a04a59aab582e3319978b6c6d22b33cc6577 (patch)
treebe0373a606b9fb7b335cdfcf61a62e2e3e06d330 /src
parent9b47269ee1bb6f931088dfa582482988ba9619b2 (diff)
downloadtalos-hostboot-e195a04a59aab582e3319978b6c6d22b33cc6577.tar.gz
talos-hostboot-e195a04a59aab582e3319978b6c6d22b33cc6577.zip
TULETA Bring Up - Fix proc_abus_scominit fail
SW201436 Change-Id: I83438333dffe725f6f1ec3c740d7c20d53ca807b Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4327 Tested-by: Jenkins Server Reviewed-by: Van H. Lee <vanlee@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/usr/hwpf/hwp/initfiles/p8.abus.custom.scom.initfile9
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C167
2 files changed, 82 insertions, 94 deletions
diff --git a/src/usr/hwpf/hwp/initfiles/p8.abus.custom.scom.initfile b/src/usr/hwpf/hwp/initfiles/p8.abus.custom.scom.initfile
index 4fe88ebe9..10272238c 100644
--- a/src/usr/hwpf/hwp/initfiles/p8.abus.custom.scom.initfile
+++ b/src/usr/hwpf/hwp/initfiles/p8.abus.custom.scom.initfile
@@ -1,8 +1,9 @@
-#-- $Id: p8.abus.custom.scom.initfile,v 1.2 2013/04/18 22:30:04 jgrell Exp $
+#-- $Id: p8.abus.custom.scom.initfile,v 1.3 2013/05/01 20:36:16 jgrell Exp $
#-- CHANGE HISTORY:
#--------------------------------------------------------------------------------
#-- Version:|Author: | Date: | Comment:
#-- --------|--------|--------|--------------------------------------------------
+#-- 1.3 |thomsen |04/30/13|Added TGT1. to ATTR_CHIP_EC* attribute instances to reference a chip target rather than a chiplet target
#-- 1.2 |jgrell |04/18/13|Added EC controled Recal enables
#-- 1.1 |thomsen |01/29/13|Created initial version
#-- --------|--------|--------|--------------------------------------------------
@@ -298,9 +299,9 @@ scom 0x800.0b(tx_mode_pg)(tx_grp0)(lane_na).0x(abus_gcr_addr) {
scom 0x800.0b(rx_rc_step_cntl_pg)(rx_grp0)(lane_na).0x(abus_gcr_addr) {
bits, scom_data, expr;
-#rx_rc_enable_dfe_h1_cal, 0b0, ATTR_CHIP_EC_FEATURE_RECAL_DFE_ENABLE==0; # Set to 0b0 in figtree.
-rx_rc_enable_ddc, 0b0, ATTR_CHIP_EC_FEATURE_RECAL_DDC_ENABLE==0;
-rx_rc_enable_ctle_cal, 0b0, ATTR_CHIP_EC_FEATURE_RECAL_CTLE_ENABLE==0;
+#rx_rc_enable_dfe_h1_cal, 0b0, TGT1.ATTR_CHIP_EC_FEATURE_RECAL_DFE_ENABLE==0; # Set to 0b0 in figtree.
+rx_rc_enable_ddc, 0b0, TGT1.ATTR_CHIP_EC_FEATURE_RECAL_DDC_ENABLE==0;
+rx_rc_enable_ctle_cal, 0b0, TGT1.ATTR_CHIP_EC_FEATURE_RECAL_CTLE_ENABLE==0;
}
############################################################################################
diff --git a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
index baa154ae8..a9d2f1a45 100644
--- a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
+++ b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
@@ -520,6 +520,12 @@ void* call_proc_xbus_scominit( void *io_pArgs )
do
{
EDI_EI_INITIALIZATION::TargetPairs_t l_XbusConnections;
+ // Note:
+ // i_noDuplicate parameter must be set to false because
+ // two separate calls would be needed:
+ // X0 <--> X1
+ // X1 <--> X0
+ // only the first target is used to issue SCOMs
l_err =
EDI_EI_INITIALIZATION::PbusLinkSvc::getTheInstance().getPbusConnections(
l_XbusConnections, TYPE_XBUS, false);
@@ -629,7 +635,14 @@ void* call_proc_abus_scominit( void *io_pArgs )
do
{
+
EDI_EI_INITIALIZATION::TargetPairs_t l_AbusConnections;
+ // Note:
+ // i_noDuplicate parameter must be set to false because
+ // two separate calls would be needed:
+ // A0 <--> A1
+ // A1 <--> A0
+ // only the first target is used to issue SCOMs
l_err =
EDI_EI_INITIALIZATION::PbusLinkSvc::getTheInstance().getPbusConnections(
l_AbusConnections, TYPE_ABUS, false);
@@ -658,99 +671,73 @@ void* call_proc_abus_scominit( void *io_pArgs )
break;
}
- // Loop thru the proc
- for (TargetHandleList::const_iterator
- l_cpuIter = l_cpuTargetList.begin();
- l_cpuIter != l_cpuTargetList.end();
- ++l_cpuIter)
+ // For each ABUS pair
+ for (EDI_EI_INITIALIZATION::TargetPairs_t::iterator
+ l_abusPairIter = l_AbusConnections.begin();
+ l_abusPairIter != l_AbusConnections.end();
+ ++l_abusPairIter)
{
- const TARGETING::Target* l_cpuTarget = *l_cpuIter;
-
- // Get the ABUS under this proc
- TARGETING::TargetHandleList l_abusList;
- getChildChiplets( l_abusList, l_cpuTarget, TYPE_ABUS );
+ // Make local copies of ABUS targets for ease of use
+ TARGETING::Target* l_thisAbusTarget =
+ const_cast<TARGETING::Target*>(l_abusPairIter->first);
+ TARGETING::Target* l_connectedAbusTarget =
+ const_cast<TARGETING::Target*>(l_abusPairIter->second);
+
+ // Get this abus fapi taget
+ const fapi::Target l_fapi_this_abus_target(
+ TARGET_TYPE_ABUS_ENDPOINT,
+ const_cast<TARGETING::Target*>(l_thisAbusTarget));
+
+ // Get connected abus fapi taget
+ const fapi::Target l_fapi_connected_abus_target(
+ TARGET_TYPE_ABUS_ENDPOINT,
+ const_cast<TARGETING::Target*>(l_connectedAbusTarget));
- // For each ABUS unit in this proc
- for (TargetHandleList::const_iterator
- l_abus_iter = l_abusList.begin();
- l_abus_iter != l_abusList.end();
- ++l_abus_iter)
+ // Call HW procedure
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "Running proc_abus_scominit HWP on "
+ "Abus target HUID %.8X Connected Abus target HUID %.8X",
+ TARGETING::get_huid(l_thisAbusTarget),
+ TARGETING::get_huid(l_connectedAbusTarget));
+
+ FAPI_INVOKE_HWP(l_err, proc_abus_scominit,
+ l_fapi_this_abus_target,
+ l_fapi_connected_abus_target);
+ if (l_err)
{
- // make a local copy of the target for ease of use
- TARGETING::Target* l_abusTarget = *l_abus_iter;
- EDI_EI_INITIALIZATION::TargetPairs_t::iterator l_itr =
- l_AbusConnections.find(l_abusTarget);
- if ( l_itr == l_AbusConnections.end() )
- {
- continue;
- }
-
- const TARGETING::Target *l_pParent =
- getParentChip(
- (const_cast<TARGETING::Target*>(l_itr->second)));
-
- // Targets to pass in HW procedure
- std::vector<fapi::Target> targets;
-
- const fapi::Target l_fapi_abus_target(
- TARGET_TYPE_ABUS_ENDPOINT,
- (const_cast<TARGETING::Target*>(l_abusTarget)));
- targets.push_back(l_fapi_abus_target);
-
- const fapi::Target l_fapi_other_cpu_target(
- TARGET_TYPE_PROC_CHIP,
- (const_cast<TARGETING::Target*>(
- l_pParent)));
- targets.push_back(l_fapi_other_cpu_target);
-
- // Call HW procedure
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Running proc_abus_scominit HWP on "
- "abus HUID %.8X this cpu HUID %.8X other cpu HUID %.8X",
- TARGETING::get_huid(l_abusTarget),
- TARGETING::get_huid(l_cpuTarget),
- TARGETING::get_huid(l_pParent));
-
- FAPI_INVOKE_HWP(l_err, proc_abus_scominit,
- l_fapi_abus_target,
- l_fapi_other_cpu_target);
- if (l_err)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR %.8X : proc_abus_scominit HWP returns error. "
- "abus HUID %.8X this cpu HUID %.8X other cpu HUID %.8X",
- l_err->reasonCode(),
- TARGETING::get_huid(l_abusTarget),
- TARGETING::get_huid(l_cpuTarget),
- TARGETING::get_huid(l_pParent));
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_pParent).addToLog( l_err );
- ErrlUserDetailsTarget(l_cpuTarget).addToLog( l_err );
- ErrlUserDetailsTarget(l_abusTarget).addToLog( l_err );
-
- /*@
- * @errortype
- * @reasoncode ISTEP_PROC_ABUS_SCOMINIT_FAILED
- * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
- * @moduleid ISTEP_PROC_ABUS_SCOMINIT
- * @userdata1 bytes 0-1: plid identifying first error
- * bytes 2-3: reason code of first error
- * @userdata2 bytes 0-1: total number of elogs included
- * bytes 2-3: N/A
- * @devdesc call to proc_abus_scominit has failed
- */
- l_StepError.addErrorDetails(ISTEP_PROC_ABUS_SCOMINIT_FAILED,
- ISTEP_PROC_ABUS_SCOMINIT,
- l_err );
- // We want to continue to the next target instead of exiting,
- // Commit the error log and move on
- // Note: Error log should already be deleted and set to NULL
- // after committing
- errlCommit(l_err, HWPF_COMP_ID);
- }
- } // End abus list loop
- } // End cpu loop
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR %.8X : proc_abus_scominit HWP returns error. "
+ "Abus target HUID %.8X, Connected Abus target HUID %.8X",
+ l_err->reasonCode(),
+ TARGETING::get_huid(l_thisAbusTarget),
+ TARGETING::get_huid(l_connectedAbusTarget));
+
+ // capture the target data in the elog
+ ErrlUserDetailsTarget(l_thisAbusTarget).addToLog( l_err );
+ ErrlUserDetailsTarget(l_connectedAbusTarget).addToLog( l_err );
+
+ /*@
+ * @errortype
+ * @reasoncode ISTEP_PROC_ABUS_SCOMINIT_FAILED
+ * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
+ * @moduleid ISTEP_PROC_ABUS_SCOMINIT
+ * @userdata1 bytes 0-1: plid identifying first error
+ * bytes 2-3: reason code of first error
+ * @userdata2 bytes 0-1: total number of elogs included
+ * bytes 2-3: N/A
+ * @devdesc call to proc_abus_scominit has failed
+ */
+ l_StepError.addErrorDetails(ISTEP_PROC_ABUS_SCOMINIT_FAILED,
+ ISTEP_PROC_ABUS_SCOMINIT,
+ l_err );
+ // We want to continue to the next target instead of exiting,
+ // Commit the error log and move on
+ // Note: Error log should already be deleted and set to NULL
+ // after committing
+ errlCommit(l_err, HWPF_COMP_ID);
+ }
+ } // End abus list loop
+
} while (0);
return l_StepError.getErrorHandle();
OpenPOWER on IntegriCloud