summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/dmi_training
diff options
context:
space:
mode:
authorMike Jones <mjjones@us.ibm.com>2012-07-05 11:08:27 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-07-09 13:03:22 -0500
commite4a23b3b4b8a7906852a39f7fef202f04f374ce6 (patch)
tree35563b2753a5f08769c8f69977e1522bcc72d19e /src/usr/hwpf/hwp/dmi_training
parent552815060119a4612ed82c67d31fb38ecee2ccaf (diff)
downloadtalos-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.C108
-rw-r--r--src/usr/hwpf/hwp/dmi_training/dmi_scominit/dmi_scominit.H81
-rw-r--r--src/usr/hwpf/hwp/dmi_training/dmi_training.C137
-rw-r--r--src/usr/hwpf/hwp/dmi_training/makefile7
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
OpenPOWER on IntegriCloud