diff options
author | Mike Jones <mjjones@us.ibm.com> | 2012-07-05 11:08:27 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-07-09 13:03:22 -0500 |
commit | e4a23b3b4b8a7906852a39f7fef202f04f374ce6 (patch) | |
tree | 35563b2753a5f08769c8f69977e1522bcc72d19e /src/usr/hwpf/hwp/dmi_training | |
parent | 552815060119a4612ed82c67d31fb38ecee2ccaf (diff) | |
download | talos-hostboot-e4a23b3b4b8a7906852a39f7fef202f04f374ce6.tar.gz talos-hostboot-e4a23b3b4b8a7906852a39f7fef202f04f374ce6.zip |
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 <vanlee@us.ibm.com>
Reviewed-by: Thi N. Tran <thi@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/dmi_training')
-rw-r--r-- | src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.C | 108 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.H | 81 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/dmi_training/dmi_training.C | 137 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/dmi_training/makefile | 7 |
4 files changed, 294 insertions, 39 deletions
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 <dmi_scominit.H> + +//---------------------------------------------------------------------- +// Includes +//---------------------------------------------------------------------- +#include <fapiHwpExecInitFile.H> + +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<fapi::Target> 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 <fapi.H> + +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<void *> + (const_cast<TARGETING::Target*>(l_pTarget))); + + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "Running dmi_scominit HWP on..."); + EntityPath l_path; + l_path = l_pTarget->getAttr<ATTR_PHYS_PATH>(); + 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<void *> + (const_cast<TARGETING::Target*>(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<ATTR_PHYS_PATH>(); + 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, "<host_attnlisten_cen exit" ); - - task_end2( l_err ); -} - // -// Wrapper function to call 11.7 : proc_cen_framelock +// Wrapper function to call 11.5 : proc_cen_framelock // void call_proc_cen_framelock( void *io_pArgs ) { @@ -342,6 +378,35 @@ void call_proc_cen_framelock( void *io_pArgs ) task_end2( l_err ); } +// +// Wrapper function to call 11.6 : 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.7 : 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, "<host_attnlisten_cen exit" ); + + task_end2( l_err ); +} // // Wrapper function to call 11.8 : cen_set_inband_addr diff --git a/src/usr/hwpf/hwp/dmi_training/makefile b/src/usr/hwpf/hwp/dmi_training/makefile index 6b1356cd5..70cd04b29 100644 --- a/src/usr/hwpf/hwp/dmi_training/makefile +++ b/src/usr/hwpf/hwp/dmi_training/makefile @@ -39,15 +39,16 @@ EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/bus_training ## NOTE: add a new EXTRAINCDIR when you add a new HWP EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/dmi_training/proc_cen_framelock EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/dmi_training/dmi_io_run_training +EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/dmi_training/dmi_scominit OBJS = dmi_training.o \ proc_cen_framelock.o \ - dmi_io_run_training.o + dmi_io_run_training.o \ + dmi_scominit.o ## NOTE: add a new directory onto the vpaths when you add a new HWP VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/dmi_training/proc_cen_framelock VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/dmi_training/dmi_io_run_training -## vpath %.C proc_cen_framelock:io_run_training -## vpath %.H proc_cen_framelock:io_run_training +VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/dmi_training/dmi_scominit include ${ROOTPATH}/config.mk |