summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf
diff options
context:
space:
mode:
authorPrachi Gupta <pragupta@us.ibm.com>2015-10-23 14:45:25 -0500
committerPatrick Williams <iawillia@us.ibm.com>2015-12-11 15:30:26 -0600
commit03b4d32d7d64ef2c25bb25869cf925d9afbace57 (patch)
treeeed892726db29f607c41667d9293b48b37fd3dc7 /src/usr/hwpf
parent7e5ca24a1eec65d3fdfba811c85f6f758277313e (diff)
downloadtalos-hostboot-03b4d32d7d64ef2c25bb25869cf925d9afbace57.tar.gz
talos-hostboot-03b4d32d7d64ef2c25bb25869cf925d9afbace57.zip
P9 Isteps: Created directory structure for istep 11/12 wrappers
Change-Id: I6e6e9677b524ca17c156adbc5168cfaffc9b1af8 RTC:137652 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/21462 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf')
-rw-r--r--src/usr/hwpf/hwp/dmi_training/dmi_training.C697
1 files changed, 0 insertions, 697 deletions
diff --git a/src/usr/hwpf/hwp/dmi_training/dmi_training.C b/src/usr/hwpf/hwp/dmi_training/dmi_training.C
index bd1b37efd..7fff52cef 100644
--- a/src/usr/hwpf/hwp/dmi_training/dmi_training.C
+++ b/src/usr/hwpf/hwp/dmi_training/dmi_training.C
@@ -96,703 +96,6 @@ using namespace EDI_EI_INITIALIZATION;
//*****************************************************************
void get_dmi_io_targets(TargetPairs_t& o_dmi_io_targets);
-//
-// Wrapper function to call mss_getecid
-//
-void* call_mss_getecid( void *io_pArgs )
-{
- errlHndl_t l_err = NULL;
- IStepError l_StepError;
- uint8_t l_ddr_port_status = 0;
- uint8_t l_cache_enable = 0;
- uint8_t l_centaur_sub_revision = 0;
- ecid_user_struct l_ecidUser; // Do not need to be initalized by caller
-
- mss_get_cen_ecid_ddr_status l_mbaBadMask[2] =
- { MSS_GET_CEN_ECID_DDR_STATUS_MBA0_BAD,
- MSS_GET_CEN_ECID_DDR_STATUS_MBA1_BAD };
-
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_getecid entry" );
-
- // Get all Centaur targets
- TARGETING::TargetHandleList l_membufTargetList;
- getAllChips(l_membufTargetList, TYPE_MEMBUF);
-
- for (TargetHandleList::const_iterator
- l_membuf_iter = l_membufTargetList.begin();
- l_membuf_iter != l_membufTargetList.end();
- ++l_membuf_iter)
- {
- // make a local copy of the target for ease of use
- TARGETING::Target* l_pCentaur = *l_membuf_iter;
-
- // Dump current run on target
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "Running mss_get_cen_ecid HWP on "
- "target HUID %.8X", TARGETING::get_huid(l_pCentaur));
-
- // Cast to a FAPI type of target.
- const fapi::Target l_fapi_centaur( TARGET_TYPE_MEMBUF_CHIP,
- (const_cast<TARGETING::Target*>(l_pCentaur)) );
-
- // call the HWP with each fapi::Target
- // Note: This HWP does not actually return the entire ECID data. It
- // updates the attribute ATTR_MSS_ECID and returns the DDR port status
- // which is a portion of the ECID data.
- FAPI_INVOKE_HWP(l_err, mss_get_cen_ecid,
- l_fapi_centaur, l_ddr_port_status,
- l_cache_enable, l_centaur_sub_revision, l_ecidUser);
- if (l_err)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X: mss_get_cen_ecid HWP returns error",
- l_err->reasonCode());
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_pCentaur).addToLog( l_err );
-
- // Create IStep error log and cross reference error that occurred
- l_StepError.addErrorDetails( l_err );
-
- // Commit Error
- errlCommit( l_err, HWPF_COMP_ID );
- }
- else
- {
- if (MSS_GET_CEN_ECID_DDR_STATUS_ALL_GOOD != l_ddr_port_status)
- {
- // Check the DDR port status returned by mss_get_cen_ecid to
- // see which MBA is bad. If the MBA's state is
- // functional and the DDR port status indicates that it's bad,
- // then set the MBA to nonfunctional. If the MBA's state is
- // nonfunctional, then do nothing since we don't want to
- // override previous settings.
-
- // Find the functional MBAs associated with this Centaur
- PredicateCTM l_mba_pred(CLASS_UNIT,TYPE_MBA);
- TARGETING::TargetHandleList l_mbaTargetList;
- getChildChiplets(l_mbaTargetList,
- l_pCentaur,
- TYPE_MBA);
-
- uint8_t l_num_func_mbas = l_mbaTargetList.size();
-
- for (TargetHandleList::const_iterator
- l_mba_iter = l_mbaTargetList.begin();
- l_mba_iter != l_mbaTargetList.end();
- ++l_mba_iter)
- {
- // Make a local copy of the target for ease of use
- TARGETING::Target* l_pMBA = *l_mba_iter;
-
- // Get the MBA chip unit position
- ATTR_CHIP_UNIT_type l_pos =
- l_pMBA->getAttr<ATTR_CHIP_UNIT>();
-
- // Check the DDR port status to see if this MBA should be
- // set to nonfunctional.
- if ( l_ddr_port_status & l_mbaBadMask[l_pos] )
- {
- // call HWAS to deconfigure this target
- l_err = HWAS::theDeconfigGard().deconfigureTarget(
- *l_pMBA, HWAS::DeconfigGard::
- DECONFIGURED_BY_MEMORY_CONFIG);
- l_num_func_mbas--;
-
- if (l_err)
- {
- // shouldn't happen, but if it does, stop trying to
- // deconfigure targets..
- break;
- }
- }
- } // for
-
- if (l_err)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR: error deconfiguring MBA or Centaur");
-
- // Create IStep error log and cross ref error that occurred
- l_StepError.addErrorDetails( l_err );
-
- // Commit Error
- errlCommit( l_err, HWPF_COMP_ID );
- }
- }
-
- // mss_get_cen_ecid returns if the L4 cache is enabled. This can be
- // - fapi::ENUM_ATTR_MSS_CACHE_ENABLE_OFF
- // - fapi::ENUM_ATTR_MSS_CACHE_ENABLE_ON
- // - fapi::ENUM_ATTR_MSS_CACHE_ENABLE_HALF_A
- // - fapi::ENUM_ATTR_MSS_CACHE_ENABLE_HALF_B
- // - fapi::ENUM_ATTR_MSS_CACHE_ENABLE_UNK_OFF
- // - fapi::ENUM_ATTR_MSS_CACHE_ENABLE_UNK_ON
- // - fapi::ENUM_ATTR_MSS_CACHE_ENABLE_UNK_HALF_A
- // - fapi::ENUM_ATTR_MSS_CACHE_ENABLE_UNK_HALF_B
- // The UNK values are for DD1.* Centaur chips where the fuses were
- // not blown correctly so the cache may not be in the correct state.
- //
- // Firmware does not normally support HALF enabled
- // If ON then ATTR_MSS_CACHE_ENABLE is set to ON
- // Else ATTR_MSS_CACHE_ENABLE is set to OFF and the L4 Target is
- // deconfigured
- //
- // However, an engineer can override ATTR_MSS_CACHE_ENABLE. If they
- // override it to HALF_A or HALF_B then
- // - ATTR_MSS_CACHE_ENABLE is set to HALF_X
- // - The L4 Target is not deconfigured
- if (l_cache_enable != fapi::ENUM_ATTR_MSS_CACHE_ENABLE_ON)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "call_mss_getecid: mss_get_cen_ecid returned L4 not-on (0x%02x)",
- l_cache_enable);
- l_cache_enable = fapi::ENUM_ATTR_MSS_CACHE_ENABLE_OFF;
- }
-
- // Set the ATTR_MSS_CACHE_ENABLE attribute
- l_pCentaur->setAttr<TARGETING::ATTR_MSS_CACHE_ENABLE>(
- l_cache_enable);
-
- // Read the ATTR_MSS_CACHE_ENABLE back to pick up any override
- uint8_t l_cache_enable_attr =
- l_pCentaur->getAttr<TARGETING::ATTR_MSS_CACHE_ENABLE>();
-
- if (l_cache_enable != l_cache_enable_attr)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "call_mss_getecid: ATTR_MSS_CACHE_ENABLE override (0x%02x)",
- l_cache_enable_attr);
- }
-
- // At this point HALF_A/HALF_B are only possible due to override
- if ((l_cache_enable_attr !=
- fapi::ENUM_ATTR_MSS_CACHE_ENABLE_ON) &&
- (l_cache_enable_attr !=
- fapi::ENUM_ATTR_MSS_CACHE_ENABLE_HALF_A) &&
- (l_cache_enable_attr !=
- fapi::ENUM_ATTR_MSS_CACHE_ENABLE_HALF_B))
- {
- // Deconfigure the L4 Cache Targets (there should be 1)
- TargetHandleList l_list;
- getChildChiplets(l_list, l_pCentaur, TYPE_L4, false);
-
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "call_mss_getecid: deconfiguring %d L4s (Centaur huid: 0x%.8X)",
- l_list.size(), get_huid(l_pCentaur));
-
- for (TargetHandleList::const_iterator
- l_l4_iter = l_list.begin();
- l_l4_iter != l_list.end();
- ++l_l4_iter)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "call_mss_getecid: deconfiguring L4 (huid: 0x%.8X)",
- get_huid( *l_l4_iter));
-
- l_err = HWAS::theDeconfigGard().
- deconfigureTarget(**l_l4_iter ,
- HWAS::DeconfigGard::
- DECONFIGURED_BY_MEMORY_CONFIG);
-
- if (l_err)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR: error deconfiguring Centaur L4");
-
- // Create IStep error log
- // and cross reference error that occurred
- l_StepError.addErrorDetails( l_err);
-
- // Commit Error
- errlCommit(l_err, HWPF_COMP_ID);
- }
- }
- }
- else
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "call_mss_getecid: Centaur L4 good, not deconfiguring");
- }
- }
-
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS : mss_get_cen_ecid HWP( )" );
- }
-
- #ifdef CONFIG_BMC_IPMI
- // Gather + Send the IPMI Fru Inventory data to the BMC
- IPMIFRUINV::setData(true);
- #endif
-
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_getecid exit" );
-
- // end task, returning any errorlogs to IStepDisp
- return l_StepError.getErrorHandle();
-}
-
-//
-// Wrapper function to call dmi_attr_update
-//
-void * call_dmi_attr_update( void * io_pArgs )
-{
- IStepError l_StepError;
-
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "call_dmi_attr_update entry" );
-
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "call_dmi_attr_update exit" );
-
- return l_StepError.getErrorHandle();
-
-}
-
-//
-// Wrapper function to call proc_dmi_scominit
-//
-void* call_proc_dmi_scominit( void *io_pArgs )
-{
- errlHndl_t l_errl = NULL;
- IStepError l_StepError;
-
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_dmi_scominit entry" );
-
- // Get all functional MCS chiplets
- TARGETING::TargetHandleList l_mcsTargetList;
- getAllChiplets(l_mcsTargetList, TYPE_MCS);
-
- // Invoke dmi_scominit on each one
- for (TargetHandleList::const_iterator
- l_mcs_iter = l_mcsTargetList.begin();
- l_mcs_iter != l_mcsTargetList.end();
- ++l_mcs_iter)
- {
- const TARGETING::Target* l_pTarget = *l_mcs_iter;
- const fapi::Target l_fapi_target( TARGET_TYPE_MCS_CHIPLET,
- (const_cast<TARGETING::Target*>(l_pTarget)));
-
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "Running proc_dmi_scominit HWP on "
- "target HUID %.8X", TARGETING::get_huid(l_pTarget));
-
- FAPI_INVOKE_HWP(l_errl, proc_dmi_scominit, l_fapi_target);
- if (l_errl)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X : proc_dmi_scominit HWP returns error",
- l_errl->reasonCode());
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_pTarget).addToLog( l_errl );
-
- break;
- }
- else
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "SUCCESS : proc_dmi_scominit HWP");
- }
- }
-
- if( l_errl )
- {
-
- // Create IStep error log and cross reference error that occurred
- l_StepError.addErrorDetails( l_errl);
-
- // Commit Error
- errlCommit( l_errl, HWPF_COMP_ID );
- }
-
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_dmi_scominit exit" );
-
- // end task, returning any errorlogs to IStepDisp
- return l_StepError.getErrorHandle();
-}
-
-//
-// Wrapper function to call dmi_scominit
-//
-void* call_dmi_scominit( void *io_pArgs )
-{
- errlHndl_t l_errl = NULL;
- IStepError l_StepError;
-
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_scominit entry" );
-
- // Get all functional membuf chips
- TARGETING::TargetHandleList l_membufTargetList;
- getAllChips(l_membufTargetList, TYPE_MEMBUF);
-
- // Invoke dmi_scominit on each one
- for (TargetHandleList::iterator l_membuf_iter = l_membufTargetList.begin();
- l_membuf_iter != l_membufTargetList.end();
- ++l_membuf_iter)
- {
- const TARGETING::Target* l_pTarget = *l_membuf_iter;
- const fapi::Target l_fapi_target(
- TARGET_TYPE_MEMBUF_CHIP,
- reinterpret_cast<void *>
- (const_cast<TARGETING::Target*>(l_pTarget)));
-
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "Running cen_dmi_scominit HWP on...");
- EntityPath l_path;
- l_path = l_pTarget->getAttr<ATTR_PHYS_PATH>();
- l_path.dump();
-
- FAPI_INVOKE_HWP(l_errl, cen_dmi_scominit, l_fapi_target);
- if (l_errl)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "ERROR 0x%.8X : cen_dmi_scominit HWP returns error",
- l_errl->reasonCode());
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_pTarget).addToLog( l_errl );
-
- break;
- }
- else
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "SUCCESS : dmi_scominit HWP");
- }
- }
-
- if( l_errl )
- {
- // Create IStep error log and cross reference error that occurred
- l_StepError.addErrorDetails( l_errl);
-
- // Commit Error
- errlCommit( l_errl, HWPF_COMP_ID );
- }
-
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_scominit exit" );
-
- // end task, returning any errorlogs to IStepDisp
- return l_StepError.getErrorHandle();
-}
-
-
-//
-// Wrapper function to call dmi_erepair
-//
-void* call_dmi_erepair( void *io_pArgs )
-{
- ISTEP_ERROR::IStepError l_StepError;
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_erepair entry" );
-
-#ifdef CONFIG_NO_DMI_EREPAIR
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "DMI erepair is disabled" );
-#else
-
- errlHndl_t l_errPtr = NULL;
- fapi::ReturnCode l_rc;
- std::vector<uint8_t> l_endp1_txFaillanes;
- std::vector<uint8_t> l_endp1_rxFaillanes;
- std::vector<uint8_t> l_endp2_txFaillanes;
- std::vector<uint8_t> l_endp2_rxFaillanes;
- uint32_t l_count = 0;
-
- TargetHandleList l_mcsTargetList;
- TargetHandleList l_memTargetList;
- TargetHandleList::iterator l_mem_iter;
-
- // find all MCS chiplets of all procs
- getAllChiplets(l_mcsTargetList, TYPE_MCS);
-
- for (TargetHandleList::const_iterator
- l_mcs_iter = l_mcsTargetList.begin();
- l_mcs_iter != l_mcsTargetList.end();
- ++l_mcs_iter)
- {
- // make a local copy of the MCS target
- TARGETING::Target *l_mcs_target = *l_mcs_iter;
- ATTR_CHIP_UNIT_type l_mcsNum = l_mcs_target->getAttr<ATTR_CHIP_UNIT>();
-
- // find all the Centaurs that are associated with this MCS
- getChildAffinityTargets(l_memTargetList, l_mcs_target,
- CLASS_CHIP, TYPE_MEMBUF);
-
- if(l_memTargetList.size() != EREPAIR_MAX_CENTAUR_PER_MCS)
- {
- continue;
- }
-
- // There will always be 1 Centaur associated with a MCS
- l_mem_iter = l_memTargetList.begin();
-
- // make a local copy of the MEMBUF target
- TARGETING::Target *l_mem_target = *l_mem_iter;
- ATTR_POSITION_type l_memNum = l_mem_target->getAttr<ATTR_POSITION>();
-
- // struct containing custom parameters that is fed to HWP
- // call the HWP with each target(if parallel, spin off a task)
- const fapi::Target l_fapi_endp1_target(TARGET_TYPE_MCS_CHIPLET,
- l_mcs_target);
-
- const fapi::Target l_fapi_endp2_target(TARGET_TYPE_MEMBUF_CHIP,
- l_mem_target);
-
- // Get the repair lanes from the VPD
- l_endp1_txFaillanes.clear();
- l_endp1_rxFaillanes.clear();
- l_endp2_txFaillanes.clear();
- l_endp2_rxFaillanes.clear();
- l_rc = erepairGetRestoreLanes(l_fapi_endp1_target,
- l_endp1_txFaillanes,
- l_endp1_rxFaillanes,
- l_fapi_endp2_target,
- l_endp2_txFaillanes,
- l_endp2_rxFaillanes);
-
- if(l_rc)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "Unable to"
- " retrieve DMI eRepair data from the VPD");
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "target HUID %.8X", TARGETING::get_huid(l_mem_target));
-
- // Convert fapi returnCode to Error handle
- l_errPtr = fapiRcToErrl(l_rc);
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_mcs_target).addToLog(l_errPtr);
- ErrlUserDetailsTarget(l_mem_target).addToLog(l_errPtr);
-
- // Create IStep error log and cross reference error that occurred
- l_StepError.addErrorDetails( l_errPtr);
-
- // Commit Error
- errlCommit(l_errPtr, HWPF_COMP_ID);
- break;
- }
-
- if(l_endp1_txFaillanes.size() || l_endp1_rxFaillanes.size())
- {
- // call the io_restore_erepair HWP to restore eRepair
- // lanes of endp1
-
- TRACDCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "io_restore_erepair HWP on %s"
- " ( mcs 0x%x, mem 0x%x ) : ",
- l_fapi_endp1_target.toEcmdString(),
- l_mcsNum,
- l_memNum );
-
- FAPI_INVOKE_HWP(l_errPtr,
- io_restore_erepair,
- l_fapi_endp1_target,
- l_endp1_txFaillanes,
- l_endp1_rxFaillanes);
- if(l_errPtr)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X : io_restore_erepair HWP"
- "( mcs 0x%x, mem 0x%x ) ",
- l_errPtr->reasonCode(),
- l_mcsNum,
- l_memNum);
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_mcs_target).addToLog(l_errPtr);
-
- // Create IStep error log and cross ref error that occurred
- l_StepError.addErrorDetails( l_errPtr);
-
- // Commit Error
- errlCommit(l_errPtr, HWPF_COMP_ID);
- break;
- }
-
- for(l_count = 0; l_count < l_endp1_txFaillanes.size(); l_count++)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,"Successfully"
- " restored Tx lane %d, of DMI-Bus, of endpoint %s",
- l_endp1_txFaillanes[l_count],
- l_fapi_endp1_target.toEcmdString());
- }
-
- for(l_count = 0; l_count < l_endp1_rxFaillanes.size(); l_count++)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,"Successfully"
- " restored Rx lane %d, of DMI-Bus, of endpoint %s",
- l_endp1_rxFaillanes[l_count],
- l_fapi_endp1_target.toEcmdString());
- }
- } // end of if(l_endp1_txFaillanes.size() || l_endp1_rxFaillanes.size())
-
- if(l_endp2_txFaillanes.size() || l_endp2_rxFaillanes.size())
- {
- // call the io_restore_erepair HWP to restore eRepair
- // lanes of endp2
-
- TRACDCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "io_restore_erepair HWP on %s"
- " ( mcs 0x%x, mem 0x%x ) : ",
- l_fapi_endp2_target.toEcmdString(),
- l_mcsNum,
- l_memNum );
- FAPI_INVOKE_HWP(l_errPtr,
- io_restore_erepair,
- l_fapi_endp2_target,
- l_endp2_txFaillanes,
- l_endp2_rxFaillanes);
- if (l_errPtr)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X : io_restore_erepair HWP"
- "( mcs 0x%x, mem 0x%x ) ",
- l_errPtr->reasonCode(),
- l_mcsNum,
- l_memNum);
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_mem_target).addToLog(l_errPtr);
-
- // Create IStep error log and cross ref error that occurred
- l_StepError.addErrorDetails( l_errPtr);
-
- // Commit Error
- errlCommit(l_errPtr, HWPF_COMP_ID);
- break;
- }
-
- for(l_count = 0; l_count < l_endp2_txFaillanes.size(); l_count++)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,"Successfully"
- " restored Tx lane %d, of DMI-Bus, of endpoint %s",
- l_endp2_txFaillanes[l_count],
- l_fapi_endp2_target.toEcmdString());
- }
-
- for(l_count = 0; l_count < l_endp2_rxFaillanes.size(); l_count++)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,"Successfully"
- " restored Rx lane %d, of DMI-Bus, of endpoint %s",
- l_endp2_rxFaillanes[l_count],
- l_fapi_endp2_target.toEcmdString());
- }
- } // end of if(l_endp2_txFaillanes.size() || l_endp2_rxFaillanes.size())
- } // end for l_mcs_target
-
-#endif
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_erepair exit" );
-
- return l_StepError.getErrorHandle();
-}
-
-//
-// Wrapper function to call dmi_io_dccal
-//
-void* call_dmi_io_dccal( void *io_pArgs )
-{
- errlHndl_t l_errl = NULL;
- ISTEP_ERROR::IStepError l_StepError;
-
- // We are not running this analog procedure in VPO
- if (TARGETING::is_vpo())
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Skip dmi_io_dccal in VPO!");
- return l_StepError.getErrorHandle();
- }
-
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "call_dmi_io_dccal entry" );
-
- TargetPairs_t l_dmi_io_dccal_targets;
- get_dmi_io_targets(l_dmi_io_dccal_targets);
-
-
- // Note:
- // Due to lab tester board environment, HW procedure writer (Varkey) has
- // requested to send in one target of a time (we used to send in
- // the MCS and MEMBUF pair in one call). Even though they don't have to be
- // in order, we should keep the pair concept here in case we need to send
- // in a pair in the future again.
- for (TargetPairs_t::const_iterator
- l_itr = l_dmi_io_dccal_targets.begin();
- l_itr != l_dmi_io_dccal_targets.end();
- ++l_itr)
- {
- const fapi::Target l_fapi_mcs_target( TARGET_TYPE_MCS_CHIPLET,
- (const_cast<TARGETING::Target*>(l_itr->first)));
-
- const fapi::Target l_fapi_membuf_target( TARGET_TYPE_MEMBUF_CHIP,
- (const_cast<TARGETING::Target*>(l_itr->second)));
-
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "===== Call dmi_io_dccal HWP( mcs 0x%.8X, mem 0x%.8X) : ",
- TARGETING::get_huid(l_itr->first),
- TARGETING::get_huid(l_itr->second));
-
- // Call on the MCS
- FAPI_INVOKE_HWP(l_errl, dmi_io_dccal, l_fapi_mcs_target);
-
- if (l_errl)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X : dmi_io_dccal HWP Target MCS 0x%.8X",
- l_errl->reasonCode(), TARGETING::get_huid(l_itr->first));
-
- // Create IStep error log and cross reference error that occurred
- l_StepError.addErrorDetails( l_errl );
-
- // Commit Error
- errlCommit( l_errl, HWPF_COMP_ID );
- // We want to continue the training despite the error, so
- // no break
- }
- else
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS : call_dmi_io_dccal HWP - Target 0x%.8X",
- TARGETING::get_huid(l_itr->first));
- }
-
- // io_dccal.C is going to look for a PLL ring with a "stub"
- // mem freq -- so set to a default, then clear it (so as not
- // to mess up MSS HWP later
- TARGETING::Target* l_membuf_target =
- (const_cast<TARGETING::Target*>(l_itr->second));
- l_membuf_target->setAttr<TARGETING::ATTR_MSS_FREQ>(1600);
-
- // Call on the MEMBUF
- FAPI_INVOKE_HWP(l_errl, dmi_io_dccal, l_fapi_membuf_target);
-
- // Clear MSS_FREQ. This attribute will be set in istep 12 (mss_freq) for good
- l_membuf_target->setAttr<TARGETING::ATTR_MSS_FREQ>(0);
-
- if (l_errl)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X : dmi_io_dccal HWP Target Membuf 0x%.8X",
- l_errl->reasonCode(), TARGETING::get_huid(l_itr->second));
-
- // Create IStep error log and cross reference error that occurred
- l_StepError.addErrorDetails( l_errl );
-
- // Commit Error
- errlCommit( l_errl, HWPF_COMP_ID );
- // We want to continue the training despite the error, so
- // no break
- }
- else
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS : call_dmi_io_dccal HWP - Target 0x%.8X",
- TARGETING::get_huid(l_itr->second));
- }
-
- }
-
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "call_dmi_io_dccal exit" );
-
- // end task, returning any errorlogs to IStepDisp
- return l_StepError.getErrorHandle();
-}
-
//
// Wrapper function to call dmi_pre_trainadv
OpenPOWER on IntegriCloud