summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9
diff options
context:
space:
mode:
authorChris Steffen <cwsteffen@us.ibm.com>2015-12-02 09:41:43 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-05-04 17:52:33 -0400
commit26af5472dc150e2948b4394d0564b78d6bae9e4a (patch)
tree6016da5aa16b4e8a55164c21545c95291c9a2582 /src/import/chips/p9
parent3037972405ee2abc3d9e60ceb107303df6f0d357 (diff)
downloadtalos-hostboot-26af5472dc150e2948b4394d0564b78d6bae9e4a.tar.gz
talos-hostboot-26af5472dc150e2948b4394d0564b78d6bae9e4a.zip
P9 I/O Xbus Clear Firs L2
Change-Id: I3a796c132f7b34f48f8b356f4459153f2576d764 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/22391 Tested-by: Jenkins Server Reviewed-by: Richard J. Knight <rjknight@us.ibm.com> Reviewed-by: Gary A. Peterson <garyp@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/24103 Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9')
-rw-r--r--src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.C140
-rw-r--r--src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.H61
-rw-r--r--src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.mk20
3 files changed, 221 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.C b/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.C
new file mode 100644
index 000000000..4e305e7e7
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.C
@@ -0,0 +1,140 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.C $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* EKB Project */
+/* */
+/* COPYRIGHT 2015 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* IBM_PROLOG_END_TAG */
+///
+/// @file p9_io_xbus_clear_firs.C
+/// @brief Clears I/O Firs
+///-----------------------------------------------------------------------------
+/// *HWP HWP Owner : Chris Steffen <cwsteffen@us.ibm.com>
+/// *HWP HWP Backup Owner : Gary Peterson <garyp@us.ibm.com>
+/// *HWP FW Owner : Jamie Knight <rjknight@us.ibm.com>
+/// *HWP Team : IO
+/// *HWP Level : 2
+/// *HWP Consumed by : FSP:HB
+///-----------------------------------------------------------------------------
+///
+/// @verbatim
+/// High-level procedure flow:
+///
+/// Clears I/O Xbus FIRs on the PHY Rx/Tx.
+///
+/// Clocks must be running.
+///
+/// @endverbatim
+///----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+// Includes
+//-----------------------------------------------------------------------------
+#include <p9_io_xbus_clear_firs.H>
+#include <p9_io_gcr.H>
+#include <p9_io_regs.H>
+
+//-----------------------------------------------------------------------------
+// Definitions
+//-----------------------------------------------------------------------------
+fapi2::ReturnCode io_rx_fir_reset(
+ const fapi2::Target < fapi2::TARGET_TYPE_XBUS >& i_target,
+ const uint8_t& i_clock_group);
+
+fapi2::ReturnCode io_tx_fir_reset(
+ const fapi2::Target < fapi2::TARGET_TYPE_XBUS >& i_target,
+ const uint8_t& i_clock_group);
+
+/**
+ * @brief A HWP that runs on every instance of the XBUS(EDI+)
+ * @param[in] i_target FAPI2 Target
+ * @param[in] i_clock_group Clock Group
+ * @retval ReturnCode
+ */
+fapi2::ReturnCode p9_io_xbus_clear_firs(
+ const fapi2::Target < fapi2::TARGET_TYPE_XBUS >& i_target,
+ const uint8_t& i_clock_group)
+{
+ FAPI_IMP("I/O Start Xbus Clear FIRs");
+
+ FAPI_TRY(io_tx_fir_reset(i_target, i_clock_group), "Tx Reset Failed");
+
+ FAPI_TRY(io_rx_fir_reset(i_target, i_clock_group), "Rx Reset Failed");
+
+fapi_try_exit:
+ FAPI_IMP("I/O End Xbus Clear FIRs");
+ return fapi2::current_err;
+}
+
+/**
+ * @brief This function resets the Rx Firs on a EDI+ Xbus
+ * @param[in] i_target FAPI2 Target
+ * @param[in] i_clock_group Clock Group
+ * @retval ReturnCode
+ */
+fapi2::ReturnCode io_rx_fir_reset(
+ const fapi2::Target < fapi2::TARGET_TYPE_XBUS >& i_target,
+ const uint8_t& i_clock_group)
+{
+ Register < EDIP_RX_GLBSM_CNTL1_EO_PG > rx_fir_reg;
+
+ FAPI_TRY(rx_fir_reg.read(i_target, i_clock_group),
+ "Reading Rx Fir Reg Failed");
+
+ rx_fir_reg.set<EDIP_RX_FIR_RESET>(0);
+ FAPI_TRY(rx_fir_reg.write(i_target, i_clock_group),
+ "Writing Rx Fir Reg Failed");
+
+ rx_fir_reg.set<EDIP_RX_FIR_RESET>(1);
+ FAPI_TRY(rx_fir_reg.write(i_target, i_clock_group),
+ "Writing rx Fir Reg Failed");
+
+ rx_fir_reg.set<EDIP_RX_FIR_RESET>(0);
+ FAPI_TRY(rx_fir_reg.write(i_target, i_clock_group),
+ "Writing Rx Fir Reg Failed");
+
+fapi_try_exit:
+ return fapi2::current_err;
+}
+
+/**
+ * @brief This function resets the Tx Firs on a EDI+ Xbus
+ * @param[in] i_target FAPI2 Target
+ * @param[in] i_clock_group Clock Group
+ * @retval ReturnCode
+ */
+fapi2::ReturnCode io_tx_fir_reset(
+ const fapi2::Target < fapi2::TARGET_TYPE_XBUS >& i_target,
+ const uint8_t& i_clock_group)
+{
+ Register < EDIP_TX_FIR_RESET_PG > tx_fir_reg;
+
+ FAPI_TRY(tx_fir_reg.read(i_target, i_clock_group),
+ "Reading Tx Fir Reg Failed");
+
+ tx_fir_reg.set<EDIP_TX_FIR_RESET>(0);
+ FAPI_TRY(tx_fir_reg.write(i_target, i_clock_group),
+ "Writing Tx Fir Reg Failed");
+
+ tx_fir_reg.set<EDIP_TX_FIR_RESET>(1);
+ FAPI_TRY(tx_fir_reg.write(i_target, i_clock_group),
+ "Writing Tx Fir Reg Failed");
+
+ tx_fir_reg.set<EDIP_TX_FIR_RESET>(0);
+ FAPI_TRY(tx_fir_reg.write(i_target, i_clock_group),
+ "Writing Tx Fir Reg Failed");
+
+fapi_try_exit:
+ return fapi2::current_err;
+}
diff --git a/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.H b/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.H
new file mode 100644
index 000000000..2cb4ecebe
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.H
@@ -0,0 +1,61 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* EKB Project */
+/* */
+/* COPYRIGHT 2015 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* IBM_PROLOG_END_TAG */
+///
+/// @file p9_io_xbus_clear_firs.H
+/// @brief Clears I/O Firs
+///-----------------------------------------------------------------------------
+/// *HWP HWP Owner : Chris Steffen <cwsteffen@us.ibm.com>
+/// *HWP HWP Backup Owner : Gary Peterson <garyp@us.ibm.com>
+/// *HWP FW Owner : Jamie Knight <rjknight@us.ibm.com>
+/// *HWP Team : IO
+/// *HWP Level : 2
+/// *HWP Consumed by : FSP:HB
+///-----------------------------------------------------------------------------
+#ifndef _P9_IO_XBUS_CLEAR_FIRS_H
+#define _P9_IO_XBUS_CLEAR_FIRS_H
+
+//-----------------------------------------------------------------------------
+// System Header Include
+//-----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+// fapi2 Includes
+//-----------------------------------------------------------------------------
+#include <fapi2.H>
+
+typedef fapi2::ReturnCode (*p9_io_xbus_clear_firs_FP_t)
+(const fapi2::Target < fapi2::TARGET_TYPE_XBUS >&, const uint8_t&);
+
+extern "C"
+{
+
+ /**
+ * @brief Clears PHY Rx/Tx FIRs on a the XBUS(EDI+) instance.
+ * @param[in] i_target FAPI2 Target
+ * @param[in] i_clock_group Clock Group
+ * @retval ReturnCode
+ */
+ fapi2::ReturnCode p9_io_xbus_clear_firs(
+ const fapi2::Target < fapi2::TARGET_TYPE_XBUS >& i_target,
+ const uint8_t& i_clock_group );
+
+} // extern "C"
+
+
+#endif // _P9_IO_XBUS_CLEAR_FIRS_H
diff --git a/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.mk b/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.mk
new file mode 100644
index 000000000..bce6df168
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.mk
@@ -0,0 +1,20 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: chips/p9/procedures/hwp/io/p9_io_xbus_clear_firs.mk $
+#
+# IBM CONFIDENTIAL
+#
+# EKB Project
+#
+# COPYRIGHT 2015
+# [+] International Business Machines Corp.
+#
+#
+# The source code for this program is not published or otherwise
+# divested of its trade secrets, irrespective of what has been
+# deposited with the U.S. Copyright Office.
+#
+# IBM_PROLOG_END_TAG
+PROCEDURE=p9_io_xbus_clear_firs
+$(call BUILD_PROCEDURE)
OpenPOWER on IntegriCloud