summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThi Tran <thi@us.ibm.com>2012-07-06 14:33:13 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-07-10 16:42:27 -0500
commit2a37ac4be40500b6849444168181931202892a96 (patch)
tree5a8bd0aacdd641a30d9f96ed0aed245082a7e8f8
parent3977676c49b9a438398d39d7d323f6bb49902044 (diff)
downloadtalos-hostboot-2a37ac4be40500b6849444168181931202892a96.tar.gz
talos-hostboot-2a37ac4be40500b6849444168181931202892a96.zip
FAPI ring access supports
Change-Id: I92a9cd3d772276888aae4188154da6bd91aecb2c Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1297 Tested-by: Jenkins Server Reviewed-by: MIKE J. JONES <mjjones@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r--src/include/usr/hwpf/fapi/fapiHwAccess.H141
-rw-r--r--src/include/usr/hwpf/fapi/fapiPlatHwAccess.H155
-rw-r--r--src/usr/hwpf/fapi/fapiHwAccess.C286
-rw-r--r--src/usr/hwpf/fapi/makefile7
-rw-r--r--src/usr/hwpf/plat/fapiPlatHwAccess.C95
5 files changed, 587 insertions, 97 deletions
diff --git a/src/include/usr/hwpf/fapi/fapiHwAccess.H b/src/include/usr/hwpf/fapi/fapiHwAccess.H
index bb8dcfbbb..28cdc4ecd 100644
--- a/src/include/usr/hwpf/fapi/fapiHwAccess.H
+++ b/src/include/usr/hwpf/fapi/fapiHwAccess.H
@@ -1,25 +1,26 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/include/usr/hwpf/fapi/fapiHwAccess.H $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2011
-//
-// 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
+/* IBM_PROLOG_BEGIN_TAG
+ * This is an automatically generated prolog.
+ *
+ * $Source: src/include/usr/hwpf/fapi/fapiHwAccess.H $
+ *
+ * IBM CONFIDENTIAL
+ *
+ * COPYRIGHT International Business Machines Corp. 2011-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
+ */
/**
* @file fapiHwAccess.H
*
@@ -39,6 +40,7 @@
* mjjones 06/30/2011 Updated comment
* mjjones 09/14/2011 Prepended fapi to functions
* mjjones 11/10/2011 Use ecmdDataBufferBase
+ * 836579 thi May 22,2012 Spy/Ring supports
*/
#ifndef FAPIHWACCESS_H_
@@ -145,6 +147,101 @@ fapi::ReturnCode fapiModifyCfamRegister(const fapi::Target& i_target,
ecmdDataBufferBase & i_data,
const fapi::ChipOpModifyMode i_modifyMode);
+/**
+ * @brief Reads a ring from a target
+ * @param[in] i_target Target to operate on
+ * @param[in] i_address Ring address to read from
+ * @param[out] o_data ecmdDataBufferBase object that holds data read from
+ * address
+ * @return ReturnCode. Zero on success, else platform specified error
+ */
+fapi::ReturnCode fapiGetRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & o_data);
+
+/**
+ * @brief Writes a ring register on a target
+ * @param[in] i_target Target to operate on
+ * @param[in] i_address Ring address to write to
+ * @param[in] i_data ecmdDataBufferBase object that holds data to write into
+ * address
+ * @return ReturnCode. Zero on success, else platform specified error
+ */
+fapi::ReturnCode fapiPutRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & i_data);
+
+
+/**
+ * @brief Modifies a ring register on a target
+ * @param[in] i_target Target to operate on
+ * @param[in] i_address Ring address to modify
+ * @param[in] i_data ecmdDataBufferBase object that holds data to write into
+ * address
+ * @return ReturnCode. Zero on success, else platform specified error
+ */
+fapi::ReturnCode fapiModifyRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & i_data,
+ const fapi::ChipOpModifyMode i_modifyMode);
+
+// --------------------------------------------------------------------------
+// NOTE:
+// These spy access interfaces are only used in FSP.
+// HB does not allow spy access
+
+#ifndef _NO_SPY_ACCESS
+
+/**
+ * @brief Reads a Spy from a target
+ * @param[in] i_target Target to read spy from
+ * @param[in] i_spyId The spy's id
+ * @param[out] o_data Storage for output data
+ *
+ * @return ReturnCode. Zero on success, else platform specified error
+
+ */
+fapi::ReturnCode fapiGetSpy(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ ecmdDataBufferBase & o_data);
+
+/**
+ * @brief Writes a spy on a target
+ * @param[in] i_target Target to operate on
+ * @param[in] i_spyId The spy's id
+ * @param[in] i_data ecmdDataBufferBase object that holds data to write into
+ * address
+ *
+ * @return ReturnCode. Zero on success, else platform specified error
+ */
+fapi::ReturnCode fapiPutSpy(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ ecmdDataBufferBase & i_data);
+
+/**
+ * @brief Read spy Enum data from a target
+ * @param[in] i_target Target to read spy enum from
+ * @param[in] i_spyId The spy's id
+ * @param[out] o_enumVal Spy enum value
+ *
+ * @return ReturnCode. Zero on success, else platform specified error
+ */
+fapi::ReturnCode fapiGetSpyEnum(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ uint32_t& o_enumVal);
+
+/**
+ * @brief Write spy enum data to a target
+ * @param[in] i_target The chip or logical unit target
+ * @param[in] i_spyId The spy's id
+ * @param[in] i_enumVal Spy enum value to write
+ */
+fapi::ReturnCode fapiPutSpyEnum(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ const uint32_t i_enumVal);
+
+#endif
+
} // extern "C"
#endif // FAPIHWACCESS_H_
diff --git a/src/include/usr/hwpf/fapi/fapiPlatHwAccess.H b/src/include/usr/hwpf/fapi/fapiPlatHwAccess.H
index 95ebe08e8..f07cdc574 100644
--- a/src/include/usr/hwpf/fapi/fapiPlatHwAccess.H
+++ b/src/include/usr/hwpf/fapi/fapiPlatHwAccess.H
@@ -1,25 +1,26 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/include/usr/hwpf/fapi/fapiHwAccess.H $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2011
-//
-// 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
+/* IBM_PROLOG_BEGIN_TAG
+ * This is an automatically generated prolog.
+ *
+ * $Source: src/include/usr/hwpf/fapi/fapiPlatHwAccess.H $
+ *
+ * IBM CONFIDENTIAL
+ *
+ * COPYRIGHT International Business Machines Corp. 2011-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
+ */
/**
* @file fapiPlatHwAccess.H
*
@@ -47,6 +48,7 @@
* ------ -------------- ---------- ----------- ----------------------------
* monte 8sep2011 new
* mjjones 11/10/2011 Use ecmdDataBufferBase
+ * 836579 thi May 22,2012 Spy/Ring supports
*/
#ifndef FAPIPLATHWACCESS_H_
@@ -159,6 +161,115 @@ fapi::ReturnCode platModifyCfamRegister(const fapi::Target& i_target,
ecmdDataBufferBase & i_data,
const fapi::ChipOpModifyMode i_modifyMode);
+
+/**
+ * @brief Platform-level implementation called by fapiGetRing()
+ * Hardware procedures writers will not call this function.
+ *
+ * @param[in] i_target Target to operate on
+ * @param[in] i_address Ring address to read from
+ * @param[out] o_data ecmdDataBufferBase object that holds data read from
+ * address
+ * @return ReturnCode. Zero on success, else platform specified error
+ */
+fapi::ReturnCode platGetRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & o_data);
+
+
+/**
+ * @brief Platform-level implementation called by fapiPutRing()
+ * Hardware procedures writers will not call this function.
+ *
+ * @param[in] i_target Target to operate on
+ * @param[in] i_address Ring address to write to
+ * @param[in] i_data ecmdDataBufferBase object that holds data to write into
+ * address
+ * @return ReturnCode. Zero on success, else platform specified error
+ */
+fapi::ReturnCode platPutRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & i_data);
+
+
+/**
+ * @brief Platform-level implementation called by fapiModifyRing()
+ * Hardware procedures writers will not call this function.
+ *
+ * @param[in] i_target Target to operate on
+ * @param[in] i_address Ring address to modify
+ * @param[in] i_data ecmdDataBufferBase object that holds data to write into
+ * address
+ * @return ReturnCode. Zero on success, else platform specified error
+ */
+fapi::ReturnCode platModifyRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & i_data,
+ const fapi::ChipOpModifyMode i_modifyMode);
+
+// --------------------------------------------------------------------------
+// NOTE:
+// These spy access interfaces are only used in FSP.
+// HB does not allow spy access
+
+#ifndef _NO_SPY_ACCESS
+/**
+ * @brief Platform-level implementation called by fapiGetSpy()
+ * Hardware procedures writers will not call this function.
+ *
+ * @param[in] i_target Target to read spy from
+ * @param[in] i_spyId The spy's id
+ * @param[out] o_data Storage for output data
+ *
+ * @return ReturnCode. Zero on success, else platform specified error
+ */
+fapi::ReturnCode platGetSpy(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ ecmdDataBufferBase & o_data);
+
+/**
+ * @brief Platform-level implementation called by fapiPutSpy()
+ * Hardware procedures writers will not call this function.
+ *
+ * @param[in] i_target Target to operate on
+ * @param[in] i_spyId The spy's id
+ * @param[in] i_data ecmdDataBufferBase object that holds data to write into
+ * address
+ *
+ * @return ReturnCode. Zero on success, else platform specified error
+ */
+fapi::ReturnCode platPutSpy(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ ecmdDataBufferBase & i_data);
+
+/**
+ * @brief Platform-level implementation called by fapiGetSpyEnum()
+ * Hardware procedures writers will not call this function.
+ *
+ * @param[in] i_target Target to read spy enum from
+ * @param[in] i_spyId The spy's id
+ * @param[out] o_enumVal Spy enum value
+ *
+ * @return ReturnCode. Zero on success, else platform specified error
+ */
+fapi::ReturnCode platGetSpyEnum(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ uint32_t& o_enumVal);
+
+/**
+ * @brief Platform-level implementation called by fapiPutSpyEnum()
+ * Hardware procedures writers will not call this function.
+ *
+ * @param[in] i_target The chip or logical unit target
+ * @param[in] i_spyId The spy's id
+ * @param[in] i_enumVal Spy enum value to write
+ */
+fapi::ReturnCode platPutSpyEnum(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ const uint32_t i_enumVal);
+
+#endif
+
} // extern "C"
#endif // FAPIPLATHWACCESS_H_
diff --git a/src/usr/hwpf/fapi/fapiHwAccess.C b/src/usr/hwpf/fapi/fapiHwAccess.C
index adeec19dc..5d43bfda2 100644
--- a/src/usr/hwpf/fapi/fapiHwAccess.C
+++ b/src/usr/hwpf/fapi/fapiHwAccess.C
@@ -1,25 +1,26 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/usr/hwpf/fapi/fapiHwAccess.C $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2011
-//
-// 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
+/* IBM_PROLOG_BEGIN_TAG
+ * This is an automatically generated prolog.
+ *
+ * $Source: src/usr/hwpf/fapi/fapiHwAccess.C $
+ *
+ * IBM CONFIDENTIAL
+ *
+ * COPYRIGHT International Business Machines Corp. 2011-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
+ */
/**
* @file fapiHwAccess.C
*
@@ -40,6 +41,7 @@
* mjjones 10/13/2011 util namespace change
* mjjones 02/21/2012 Use high performance Target
* toEcmdString
+ * 836579 thi May 18,2012 Spy/ring supports
*/
#include <fapi.H>
@@ -56,7 +58,7 @@ fapi::ReturnCode fapiGetScom(const fapi::Target& i_target,
ecmdDataBufferBase & o_data)
{
fapi::ReturnCode l_rc;
- bool l_traceit = platIsScanTraceEnabled();
+ bool l_traceit = platIsScanTraceEnabled();
// call the platform implementation
l_rc = platGetScom( i_target, i_address, o_data );
@@ -71,7 +73,7 @@ fapi::ReturnCode fapiGetScom(const fapi::Target& i_target,
FAPI_SCAN( "TRACE : GETSCOM : %s : %.16llX %.16llX",
i_target.toEcmdString(),
i_address,
- o_data.getDoubleWord( 0 ) );
+ o_data.getDoubleWord( 0 ) );
}
return l_rc;
@@ -86,7 +88,7 @@ fapi::ReturnCode fapiPutScom(const fapi::Target& i_target,
ecmdDataBufferBase & i_data)
{
fapi::ReturnCode l_rc;
- bool l_traceit = platIsScanTraceEnabled();
+ bool l_traceit = platIsScanTraceEnabled();
// call the platform implementation
l_rc = platPutScom( i_target, i_address, i_data );
@@ -116,7 +118,7 @@ fapi::ReturnCode fapiPutScomUnderMask(const fapi::Target& i_target,
ecmdDataBufferBase & i_mask)
{
fapi::ReturnCode l_rc;
- bool l_traceit = platIsScanTraceEnabled();
+ bool l_traceit = platIsScanTraceEnabled();
// call the platform implementation
l_rc = platPutScomUnderMask( i_target, i_address, i_data, i_mask );
@@ -175,7 +177,7 @@ fapi::ReturnCode fapiPutCfamRegister(const fapi::Target& i_target,
ecmdDataBufferBase & i_data)
{
fapi::ReturnCode l_rc;
- bool l_traceit = platIsScanTraceEnabled();
+ bool l_traceit = platIsScanTraceEnabled();
// call the platform implementation
l_rc = platPutCfamRegister( i_target, i_address, i_data );
@@ -205,7 +207,7 @@ fapi::ReturnCode fapiModifyCfamRegister(const fapi::Target& i_target,
const fapi::ChipOpModifyMode i_modifyMode)
{
fapi::ReturnCode l_rc;
- bool l_traceit = platIsScanTraceEnabled();
+ bool l_traceit = platIsScanTraceEnabled();
// call the platform implementation
l_rc = platModifyCfamRegister( i_target, i_address, i_data, i_modifyMode );
@@ -247,4 +249,232 @@ fapi::ReturnCode fapiModifyCfamRegister(const fapi::Target& i_target,
return l_rc;
}
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+fapi::ReturnCode fapiGetRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & o_data)
+{
+ fapi::ReturnCode l_rc;
+ bool l_traceit = platIsScanTraceEnabled();
+
+ // call the platform implementation
+ l_rc = platGetRing( i_target, i_address, o_data );
+
+ if (l_rc)
+ {
+ FAPI_ERR("fapiGetRing failed - Target %s, Addr 0x%.8X", i_target.toEcmdString(), i_address);
+ }
+
+ if( l_traceit )
+ {
+ FAPI_SCAN( "TRACE : GETRING : %s : %.8X %.16llX",
+ i_target.toEcmdString(),
+ i_address,
+ o_data.getDoubleWord( 0 ) );
+ }
+
+ return l_rc;
+}
+
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+fapi::ReturnCode fapiPutRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & i_data)
+{
+ fapi::ReturnCode l_rc;
+ bool l_traceit = platIsScanTraceEnabled();
+
+ // call the platform implementation
+ l_rc = platPutRing( i_target, i_address, i_data );
+
+ if (l_rc)
+ {
+ FAPI_ERR("fapiPutRing failed - Target %s, Addr 0x%.8X", i_target.toEcmdString(), i_address);
+ }
+
+ if( l_traceit )
+ {
+ FAPI_SCAN( "TRACE : PUTRING : %s : %.8X %.16llX",
+ i_target.toEcmdString(),
+ i_address,
+ i_data.getDoubleWord(0));
+ }
+
+ return l_rc;
+}
+
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+fapi::ReturnCode fapiModifyRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & i_data,
+ const fapi::ChipOpModifyMode i_modifyMode)
+{
+ fapi::ReturnCode l_rc;
+ bool l_traceit = platIsScanTraceEnabled();
+
+ // call the platform implementation
+ l_rc = platModifyRing( i_target, i_address, i_data, i_modifyMode );
+
+ if (l_rc)
+ {
+ FAPI_ERR("platModifyRing failed - Target %s, Addr 0x%.8X, ModifyMode 0x%.8X",
+ i_target.toEcmdString(), i_address, i_modifyMode);
+ }
+
+ if( l_traceit )
+ {
+ // get string representation of the modify mode
+ const char * l_pMode = NULL;
+
+ if (i_modifyMode == fapi::CHIP_OP_MODIFY_MODE_OR)
+ {
+ l_pMode = "OR";
+ }
+ else if (i_modifyMode == fapi::CHIP_OP_MODIFY_MODE_AND)
+ {
+ l_pMode = "AND";
+ }
+ else if (i_modifyMode == fapi::CHIP_OP_MODIFY_MODE_XOR)
+ {
+ l_pMode = "XOR";
+ }
+ else
+ {
+ l_pMode = "?";
+ }
+
+ FAPI_SCAN( "TRACE : MODRING : %s : %.8X %.16llX %s",
+ i_target.toEcmdString(),
+ i_address,
+ i_data.getDoubleWord(0),
+ l_pMode);
+ }
+
+ return l_rc;
+}
+
+// --------------------------------------------------------------------------
+// NOTE:
+// These spy access interfaces are only used in FSP.
+// HB does not allow spy access
+
+#ifndef _NO_SPY_ACCESS
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+fapi::ReturnCode fapiGetSpy(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ ecmdDataBufferBase & o_data)
+{
+ fapi::ReturnCode l_rc;
+ bool l_traceit = platIsScanTraceEnabled();
+
+ // call the platform implementation
+ l_rc = platGetSpy( i_target, i_spyId, o_data );
+
+ if (l_rc)
+ {
+ FAPI_ERR("fapiGetSpy failed - Target %s, SpyId 0x%.8X", i_target.toEcmdString(), i_spyId);
+ }
+
+ if( l_traceit )
+ {
+ FAPI_SCAN( "TRACE : GETSPY : %s : %.8X %.16llX",
+ i_target.toEcmdString(),
+ i_spyId,
+ o_data.getDoubleWord(0));
+ }
+
+ return l_rc;
+}
+
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+fapi::ReturnCode fapiPutSpy(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ ecmdDataBufferBase & i_data)
+{
+ fapi::ReturnCode l_rc;
+ bool l_traceit = platIsScanTraceEnabled();
+
+ // call the platform implementation
+ l_rc = platPutSpy( i_target, i_spyId, i_data );
+
+ if (l_rc)
+ {
+ FAPI_ERR("fapiPutSpy failed - Target %s, SpyId 0x%.8X", i_target.toEcmdString(), i_spyId);
+ }
+
+ if( l_traceit )
+ {
+ FAPI_SCAN( "TRACE : PUTSPY : %s : %.8X %.16llX",
+ i_target.toEcmdString(),
+ i_spyId,
+ i_data.getDoubleWord(0));
+ }
+
+ return l_rc;
+}
+
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+fapi::ReturnCode fapiGetSpyEnum(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ uint32_t& o_enumVal)
+{
+ fapi::ReturnCode l_rc;
+ bool l_traceit = platIsScanTraceEnabled();
+
+ // call the platform implementation
+ l_rc = platGetSpyEnum( i_target, i_spyId, o_enumVal );
+
+ if (l_rc)
+ {
+ FAPI_ERR("fapiGetSpyEnum failed - Target %s, SpyId 0x%.8X", i_target.toEcmdString(), i_spyId);
+ }
+
+ if( l_traceit )
+ {
+ FAPI_SCAN( "TRACE : GETSPYENUM : %s : %.8X %.8X",
+ i_target.toEcmdString(),
+ i_spyId,
+ o_enumVal);
+ }
+
+ return l_rc;
+}
+
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+fapi::ReturnCode fapiPutSpyEnum(const fapi::Target& i_target,
+ const uint32_t i_spyId,
+ const uint32_t i_enumVal)
+{
+ fapi::ReturnCode l_rc;
+ bool l_traceit = platIsScanTraceEnabled();
+
+ // call the platform implementation
+ l_rc = platPutSpyEnum( i_target, i_spyId, i_enumVal );
+
+ if (l_rc)
+ {
+ FAPI_ERR("fapiPutSpyEnum failed - Target %s, SpyId 0x%.8X, EnumVal %d",
+ i_target.toEcmdString(), i_spyId, i_enumVal);
+ }
+
+ if( l_traceit )
+ {
+ FAPI_SCAN( "TRACE : PUTSPYENUM : %s : %.8X %.8X",
+ i_target.toEcmdString(),
+ i_spyId,
+ i_enumVal);
+ }
+
+ return l_rc;
+}
+
+#endif
+
} // extern "C"
diff --git a/src/usr/hwpf/fapi/makefile b/src/usr/hwpf/fapi/makefile
index 262a73ece..9df36f54c 100644
--- a/src/usr/hwpf/fapi/makefile
+++ b/src/usr/hwpf/fapi/makefile
@@ -1,11 +1,11 @@
-# IBM_PROLOG_BEGIN_TAG
+# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/usr/hwpf/fapi/makefile $
#
# IBM CONFIDENTIAL
#
-# COPYRIGHT International Business Machines Corp. 2011
+# COPYRIGHT International Business Machines Corp. 2011-2012
#
# p1
#
@@ -19,7 +19,7 @@
#
# Origin: 30
#
-# IBM_PROLOG_END
+# IBM_PROLOG_END_TAG
ROOTPATH = ../../../..
MODULE = fapi
@@ -27,6 +27,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/include/usr/ecmddatabuffer
EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/fapi
EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/plat
EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/hwp
+CUSTOMFLAGS += -D_NO_SPY_ACCESS=1
OBJS = fapiReturnCode.o \
fapiReturnCodeDataRef.o \
diff --git a/src/usr/hwpf/plat/fapiPlatHwAccess.C b/src/usr/hwpf/plat/fapiPlatHwAccess.C
index 1464ff906..ad3a02aef 100644
--- a/src/usr/hwpf/plat/fapiPlatHwAccess.C
+++ b/src/usr/hwpf/plat/fapiPlatHwAccess.C
@@ -1,25 +1,26 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/usr/hwpf/plat/fapiPlatHwAccess.C $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2011
-//
-// 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
+/* IBM_PROLOG_BEGIN_TAG
+ * This is an automatically generated prolog.
+ *
+ * $Source: src/usr/hwpf/plat/fapiPlatHwAccess.C $
+ *
+ * IBM CONFIDENTIAL
+ *
+ * COPYRIGHT International Business Machines Corp. 2011-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
+ */
// This is an automatically generated prolog.
//
// $Source: src/usr/hwpf/plat/fapiPlatHwAccess.C $
@@ -551,4 +552,54 @@ fapi::ReturnCode platModifyCfamRegister(const fapi::Target& i_target,
return l_rc;
}
+//******************************************************************************
+// platGetRing function, the platform implementation
+//******************************************************************************
+fapi::ReturnCode platGetRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & o_data)
+{
+ FAPI_DBG(ENTER_MRK "platGetRing");
+
+ fapi::ReturnCode l_rc;
+
+ //TODO - Implement getRing when RTC 34014 is ready
+
+ FAPI_DBG(EXIT_MRK "platGetRing");
+ return l_rc;
+}
+
+//******************************************************************************
+// platPutRing function
+//******************************************************************************
+fapi::ReturnCode platPutRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & i_data)
+{
+ FAPI_DBG(ENTER_MRK "platPutRing");
+ fapi::ReturnCode l_rc;
+
+ //TODO - Implement getRing when RTC 34014 is ready
+
+ FAPI_DBG(EXIT_MRK "platPutRing");
+ return l_rc;
+}
+
+//******************************************************************************
+// platModifyRing function
+//******************************************************************************
+fapi::ReturnCode platModifyRing(const fapi::Target& i_target,
+ const uint32_t i_address,
+ ecmdDataBufferBase & i_data,
+ const fapi::ChipOpModifyMode i_modifyMode)
+{
+ FAPI_DBG(ENTER_MRK "platModifyRing");
+ fapi::ReturnCode l_rc;
+
+ //TODO - Implement ModifyRing when RTC 34014 is ready
+
+ FAPI_DBG(EXIT_MRK "platModifyRing");
+ return l_rc;
+}
+
} // extern "C"
OpenPOWER on IntegriCloud