From e4a23b3b4b8a7906852a39f7fef202f04f374ce6 Mon Sep 17 00:00:00 2001 From: Mike Jones Date: Thu, 5 Jul 2012 11:08:27 -0500 Subject: Move proc_chiplet_scominit initfiles to dmi_scominit There was miscommunication. Some initfiles were provided and added to proc_chiplet_scominit, but they should have been added to dmi_scominit. Change-Id: I294d2a5909b0858d73eefd031916eb0c87bd6179 RTC: 44692 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1294 Tested-by: Jenkins Server Reviewed-by: Van H. Lee Reviewed-by: Thi N. Tran Reviewed-by: A. Patrick Williams III --- .../hwp/dmi_training/dmi_scominit/dmi_scominit.C | 108 ++++++++++++++++ .../hwp/dmi_training/dmi_scominit/dmi_scominit.H | 81 ++++++++++++ src/usr/hwpf/hwp/dmi_training/dmi_training.C | 137 +++++++++++++++------ src/usr/hwpf/hwp/dmi_training/makefile | 7 +- 4 files changed, 294 insertions(+), 39 deletions(-) create mode 100644 src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.C create mode 100644 src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.H (limited to 'src/usr/hwpf/hwp/dmi_training') diff --git a/src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.C b/src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.C new file mode 100644 index 000000000..709b4aeb6 --- /dev/null +++ b/src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.C @@ -0,0 +1,108 @@ +/* IBM_PROLOG_BEGIN_TAG + * This is an automatically generated prolog. + * + * $Source: src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.C $ + * + * IBM CONFIDENTIAL + * + * COPYRIGHT International Business Machines Corp. 2012 + * + * p1 + * + * Object Code Only (OCO) source materials + * Licensed Internal Code Source Materials + * IBM HostBoot Licensed Internal Code + * + * The source code for this program is not published or other- + * wise divested of its trade secrets, irrespective of what has + * been deposited with the U.S. Copyright Office. + * + * Origin: 30 + * + * IBM_PROLOG_END_TAG + */ +//------------------------------------------------------------------------------ +// *! (C) Copyright International Business Machines Corp. 2012 +// *! All Rights Reserved -- Property of IBM +// *! *** IBM Confidential *** +//------------------------------------------------------------------------------ +// *! TITLE : dmi_scominit.C +// *! DESCRIPTION : Wrapper HWP that invokes the dmi_scominit initfiles +// *! OWNER NAME : Mike Jones Email: mjjones@us.ibm.com +// *! BACKUP NAME : Mark Bellows Email: bellows@us.ibm.com +// *! ADDITIONAL COMMENTS : +// +// The purpose of this procedure execute dmi initfiles +// +//------------------------------------------------------------------------------ +// Don't forget to create CVS comments when you check in your changes! +//------------------------------------------------------------------------------ +// CHANGE HISTORY: +//------------------------------------------------------------------------------ +// Version:| Author: | Date: | Comment: +//---------|----------|---------|----------------------------------------------- +// 1.1 | mjjones |05-JUL-12| Initial version + +//---------------------------------------------------------------------- +// My Includes +//---------------------------------------------------------------------- +#include + +//---------------------------------------------------------------------- +// Includes +//---------------------------------------------------------------------- +#include + +const char * const MCS_DMI_IF = "p8.dmi.scom.if"; +const char * const CEN_DMI_IF = "cen.dmi.scom.if"; + +extern "C" { + +fapi::ReturnCode dmi_scominit(const fapi::Target & i_target) +{ + FAPI_INF("Performing HWP: dmi_scominit on %s", + i_target.toEcmdString()); + + fapi::ReturnCode l_rc; + fapi::TargetType l_type = i_target.getType(); + std::vector l_target; + l_target.push_back(i_target); + + do + { + if (l_type == fapi::TARGET_TYPE_MCS_CHIPLET) + { + FAPI_INF("Executing %s on %s", MCS_DMI_IF, i_target.toEcmdString()); + FAPI_EXEC_HWP(l_rc, fapiHwpExecInitFile, l_target, MCS_DMI_IF); + + if (l_rc) + { + FAPI_ERR("Error executing %s on %s", MCS_DMI_IF, + i_target.toEcmdString()); + break; + } + } + else if (l_type == fapi::TARGET_TYPE_MEMBUF_CHIP) + { + FAPI_INF("Executing %s on %s", CEN_DMI_IF, i_target.toEcmdString()); + FAPI_EXEC_HWP(l_rc, fapiHwpExecInitFile, l_target, CEN_DMI_IF); + + if (l_rc) + { + FAPI_ERR("Error executing %s on %s", CEN_DMI_IF, + i_target.toEcmdString()); + break; + } + } + else + { + FAPI_ERR("dmi_scominit has nothing to do for %s", + i_target.toEcmdString()); + } + + } while (0); + + return l_rc; +} + +} // extern "C" diff --git a/src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.H b/src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.H new file mode 100644 index 000000000..793742423 --- /dev/null +++ b/src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.H @@ -0,0 +1,81 @@ +/* IBM_PROLOG_BEGIN_TAG + * This is an automatically generated prolog. + * + * $Source: src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.H $ + * + * IBM CONFIDENTIAL + * + * COPYRIGHT International Business Machines Corp. 2012 + * + * p1 + * + * Object Code Only (OCO) source materials + * Licensed Internal Code Source Materials + * IBM HostBoot Licensed Internal Code + * + * The source code for this program is not published or other- + * wise divested of its trade secrets, irrespective of what has + * been deposited with the U.S. Copyright Office. + * + * Origin: 30 + * + * IBM_PROLOG_END_TAG + */ +//------------------------------------------------------------------------------ +// *! (C) Copyright International Business Machines Corp. 2012 +// *! All Rights Reserved -- Property of IBM +// *! *** IBM Confidential *** +//------------------------------------------------------------------------------ +// *! TITLE : dmi_scominit.H +// *! DESCRIPTION : Wrapper HWP that invokes the dmi_scominit initfiles +// *! OWNER NAME : Mike Jones Email: mjjones@us.ibm.com +// *! BACKUP NAME : Mark Bellows Email: bellows@us.ibm.com +// *! ADDITIONAL COMMENTS : +// +// Header file for dmi_scominit. +// +//------------------------------------------------------------------------------ +// Don't forget to create CVS comments when you check in your changes! +//------------------------------------------------------------------------------ +// CHANGE HISTORY: +//------------------------------------------------------------------------------ +// Version:| Author: | Date: | Comment: +//---------|----------|---------|----------------------------------------------- +// 1.1 | mjjones |05-JUL-12| Initial version + + +#ifndef DMI_SCOMINIT_H_ +#define DMI_SCOMINIT_H_ + +//---------------------------------------------------------------------- +// My Includes +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Includes +//---------------------------------------------------------------------- +#include + +typedef fapi::ReturnCode (*dmi_scominit_FP_t)(const fapi::Target & i_target); + +extern "C" { + +/** + * @brief HWP that calls the dmi_scominit initfiles + * + * Should be called with all functional MCS chiplets and all functional + * membuf chips. + * + * @param[in] i_target Reference to target + * If MCS_CHIPLET, calls: + * - p8.dmi.scom.initfile + * If MEMBUF_CHIP, calls: + * - cen.dmi.scom.initfile + * + * @return ReturnCode + */ +fapi::ReturnCode dmi_scominit(const fapi::Target & i_target); + +} // extern "C" + +#endif // DMI_SCOMINIT_H_ diff --git a/src/usr/hwpf/hwp/dmi_training/dmi_training.C b/src/usr/hwpf/hwp/dmi_training/dmi_training.C index 93f881731..49225dfef 100644 --- a/src/usr/hwpf/hwp/dmi_training/dmi_training.C +++ b/src/usr/hwpf/hwp/dmi_training/dmi_training.C @@ -60,6 +60,7 @@ #include "dmi_training.H" #include "proc_cen_framelock.H" #include "dmi_io_run_training.H" +#include "dmi_scominit.H" namespace DMI_TRAINING { @@ -73,13 +74,80 @@ using namespace fapi; // void call_dmi_scominit( void *io_pArgs ) { - errlHndl_t l_err = NULL; + errlHndl_t l_errl = NULL; + TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_scominit entry" ); + uint8_t l_num = 0; + + // Get all functional MCS chiplets + TARGETING::TargetHandleList l_mcsTargetList; + getAllChiplets(l_mcsTargetList, TYPE_MCS); + + // Invoke dmi_scominit on each one + for (l_num = 0; l_num < l_mcsTargetList.size(); l_num++) + { + const TARGETING::Target* l_pTarget = l_mcsTargetList[l_num]; + const fapi::Target l_fapi_target( + TARGET_TYPE_MCS_CHIPLET, + reinterpret_cast + (const_cast(l_pTarget))); + + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "Running dmi_scominit HWP on..."); + EntityPath l_path; + l_path = l_pTarget->getAttr(); + l_path.dump(); + + FAPI_INVOKE_HWP(l_errl, dmi_scominit, l_fapi_target); + if (l_errl) + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "ERROR 0x%.8X : dmi_scominit HWP returns error", + l_errl->reasonCode()); + break; + } + else + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "SUCCESS : dmi_scominit HWP"); + } + } + + if (!l_errl) + { + // Get all functional membuf chips + TARGETING::TargetHandleList l_membufTargetList; + getAllChips(l_membufTargetList, TYPE_MEMBUF); + // Invoke dmi_scominit on each one + for (l_num = 0; l_num < l_membufTargetList.size(); l_num++) + { + const TARGETING::Target* l_pTarget = l_membufTargetList[l_num]; + const fapi::Target l_fapi_target( + TARGET_TYPE_MEMBUF_CHIP, + reinterpret_cast + (const_cast(l_pTarget))); - TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "dmi_scominit exit" ); + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "Running dmi_scominit HWP on..."); + EntityPath l_path; + l_path = l_pTarget->getAttr(); + l_path.dump(); - task_end2( l_err ); + FAPI_INVOKE_HWP(l_errl, dmi_scominit, l_fapi_target); + if (l_errl) + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "ERROR 0x%.8X : dmi_scominit HWP returns error", + l_errl->reasonCode()); + break; + } + else + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "SUCCESS : dmi_scominit HWP"); + } + } + } + + TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_scominit exit" ); + + // end task, returning any errorlogs to IStepDisp + task_end2( l_errl ); } @@ -224,40 +292,8 @@ void call_dmi_io_run_training( void *io_pArgs ) task_end2( l_err ); } - -// -// Wrapper function to call 11.5 : host_startPRD_dmi -// -void call_host_startPRD_dmi( void *io_pArgs ) -{ - errlHndl_t l_err = NULL; - TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_host_startPRD_dmi entry" ); - - - TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "host_startPRD_dmi exit" ); - - task_end2( l_err ); -} - - -// -// Wrapper function to call 11.6 : host_attnlisten_cen -// -void call_host_attnlisten_cen( void *io_pArgs ) -{ - - errlHndl_t l_err = NULL; - - TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_host_attnlisten_cen entry" ); - - - TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "