From 2a37ac4be40500b6849444168181931202892a96 Mon Sep 17 00:00:00 2001 From: Thi Tran Date: Fri, 6 Jul 2012 14:33:13 -0500 Subject: 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 Reviewed-by: A. Patrick Williams III --- src/include/usr/hwpf/fapi/fapiHwAccess.H | 141 ++++++++++--- src/include/usr/hwpf/fapi/fapiPlatHwAccess.H | 155 ++++++++++++--- src/usr/hwpf/fapi/fapiHwAccess.C | 286 ++++++++++++++++++++++++--- src/usr/hwpf/fapi/makefile | 7 +- src/usr/hwpf/plat/fapiPlatHwAccess.C | 95 ++++++--- 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 @@ -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" -- cgit v1.2.1