diff options
| author | Chris Phan <cphan@us.ibm.com> | 2013-03-25 17:40:14 -0500 |
|---|---|---|
| committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-04-03 22:08:07 -0500 |
| commit | 393a4144ae5ba71810d5063e0c643efe565aaed6 (patch) | |
| tree | 0597fcb7d6b6d27eaa86b21ae2b110ec25ddd9a0 /src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.C | |
| parent | db788c8ab715f12958584a9d20a31cef28b64698 (diff) | |
| download | blackbird-hostboot-393a4144ae5ba71810d5063e0c643efe565aaed6.tar.gz blackbird-hostboot-393a4144ae5ba71810d5063e0c643efe565aaed6.zip | |
PRD: change scom accesses to use fapiGetScom/fapiPutScom
- These fapi scom methods are common between fsp and hostboot
- This change will allow scom data traces to turn on via
hbfwTrace -d=SCAN:1 or fsp-trace -d scan_ll 1
RTC: 67620
Change-Id: I7a7c346a5e5039b7f72eafe90d6bb3cdc7b7c41d
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3731
Tested-by: Jenkins Server
Reviewed-by: BENJAMIN J. WEISENBECK <bweisenb@us.ibm.com>
Reviewed-by: Zane Shelley <zshelle@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3855
Diffstat (limited to 'src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.C')
| -rwxr-xr-x | src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.C | 80 |
1 files changed, 11 insertions, 69 deletions
diff --git a/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.C b/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.C index 55f68d122..cb107b3c6 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.C +++ b/src/usr/diag/prdf/common/framework/register/prdfHomRegisterAccess.C @@ -32,14 +32,8 @@ #ifdef __HOSTBOOT_MODULE #include <ecmdDataBufferBase.H> - #include <fapi.H> - #include <errlmanager.H> - #include <devicefw/userif.H> - #include <targeting/common/targetservice.H> #else #include <ecmdDataBuffer.H> - #include <hwcoScanScom.H> - #include <chicservlib.H> #include <hwsvExecutionService.H> #endif @@ -51,6 +45,7 @@ #include <prdfGlobal.H> #include <prdfErrlUtil.H> #include <prdfTrace.H> + #undef prdfHomRegisterAccess_C @@ -145,15 +140,12 @@ uint32_t ScomAccessor::Access(TARGETING::TargetHandle_t i_target, uint32_t rc = SUCCESS; errlHndl_t errH = NULL; uint32_t bsize = bs.GetLength(); - uint32_t l_ecmdRc = ECMD_DBUF_SUCCESS; if(i_target != NULL) { #ifdef __HOSTBOOT_MODULE ecmdDataBufferBase buffer(bsize); - uint64_t l_data = 0; - size_t l_size = sizeof(uint64_t); #else @@ -172,36 +164,22 @@ uint32_t ScomAccessor::Access(TARGETING::TargetHandle_t i_target, // FIXME: If register is in a EX chiplet, need to also update // PORE image ???? - #ifdef __HOSTBOOT_MODULE - - l_data = buffer.getDoubleWord(0); - errH = deviceWrite( i_target, - &l_data, - l_size, - DEVICE_SCOM_ADDRESS(registerId)); - - #else - - errH = HWSV::hwsvPutScom(i_target, registerId, buffer); - - #endif + PRD_FAPI_TO_ERRL(errH, + fapiPutScom, + PlatServices::getFapiTarget(i_target), + registerId, + buffer); break; case MopRegisterAccess::READ: bs.Pattern(0x00000000); // clear all bits - #ifdef __HOSTBOOT_MODULE - - errH = deviceRead( i_target, &l_data, l_size, - DEVICE_SCOM_ADDRESS(registerId) ); - l_ecmdRc = buffer.setDoubleWord(0, l_data); - - #else - - errH = HWSV::hwsvGetScom(i_target, registerId, buffer); - - #endif + PRD_FAPI_TO_ERRL(errH, + fapiGetScom, + PlatServices::getFapiTarget(i_target), + registerId, + buffer); for(unsigned int i = 0; i < bsize; ++i) { @@ -264,42 +242,6 @@ uint32_t ScomAccessor::Access(TARGETING::TargetHandle_t i_target, errH = NULL; } } - if (l_ecmdRc != ECMD_DBUF_SUCCESS) - { - PRDF_ERR( "ScomAccessor::Access ecmdDataBuffer " - "operation failed with ecmd_rc = 0x%.8X", l_ecmdRc ); - /*@ - * @errortype - * @subsys EPUB_FIRMWARE_SP - * @reasoncode PRDF_ECMD_DATA_BUFFER_FAIL - * @moduleid PRDF_HOM_SCOM - * @userdata1 ecmdDataBuffer return code - * @userdata2 Chip HUID - * @userdata3 unused - * @userdata4 unused - * @devdesc Low-level data buffer support returned a failure. Probable firmware error. - * @procedure EPUB_PRC_SP_CODE - */ - errlHndl_t ecmd_rc_errl = NULL; - PRDF_CREATE_ERRL(ecmd_rc_errl, - ERRL_SEV_PREDICTIVE, // error on diagnosticERRL_ETYPE_NOT_APPLICABLE - ERRL_ETYPE_NOT_APPLICABLE, - SRCI_MACH_CHECK, // B1xx src - SRCI_NO_ATTR, - PRDF_HOM_SCOM, // module id - FSP_DEFAULT_REFCODE, // refcode - PRDF_ECMD_DATA_BUFFER_FAIL, // Reason code - see prdf_service_codes.H - l_ecmdRc, // user data word 1 - PlatServices::getHuid(i_target), // user data word 2 - 0, // user data word 3 - 0 // user data word 4 - ); - - PRDF_ADD_PROCEDURE_CALLOUT(ecmd_rc_errl, SRCI_PRIORITY_MED, EPUB_PRC_SP_CODE); - PRDF_COMMIT_ERRL(ecmd_rc_errl, ERRL_ACTION_REPORT); - - rc = FAIL; - } PRDF_DEXIT("ScomAccessor::Access(): rc=%d", rc); |

