diff options
author | Caleb Palmer <cnpalmer@us.ibm.com> | 2016-07-12 14:54:20 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-07-26 17:54:59 -0400 |
commit | c7ed9fa3d0ad160f53b4e8ca5f59f1fa37666d0c (patch) | |
tree | 0f4f1d535e4e645dcc783de368ba60ce03bfb34b /src | |
parent | fd5d5fb16635b508fda6ec8d117205e6edce794c (diff) | |
download | blackbird-hostboot-c7ed9fa3d0ad160f53b4e8ca5f59f1fa37666d0c.tar.gz blackbird-hostboot-c7ed9fa3d0ad160f53b4e8ca5f59f1fa37666d0c.zip |
MDIA: Use Hostboot interfaces instead of fapi2
Change-Id: Id8f1113cd0e747e7031f0027a55009e23e1dc906
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/26922
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/diag/mdia/mdiasm.C | 70 |
1 files changed, 25 insertions, 45 deletions
diff --git a/src/usr/diag/mdia/mdiasm.C b/src/usr/diag/mdia/mdiasm.C index ee2c18f0a..e92a7149c 100644 --- a/src/usr/diag/mdia/mdiasm.C +++ b/src/usr/diag/mdia/mdiasm.C @@ -194,7 +194,6 @@ fapi2::TargetType getMdiaTargetType() errlHndl_t ceErrorSetup( TargetHandle_t i_mba ) { errlHndl_t err = NULL; - fapi2::buffer<uint64_t> buffer; do { @@ -204,15 +203,13 @@ errlHndl_t ceErrorSetup( TargetHandle_t i_mba ) uint64_t addr = ( ( 0 == i_mba->getAttr<TARGETING::ATTR_CHIP_UNIT>()) ? MEM_MBA0_MBSTR : MEM_MBA1_MBSTR ); + uint64_t data = 0; + size_t sz_data = sizeof(uint64_t); - fapi2::Target<fapi2::TARGET_TYPE_MEMBUF_CHIP> fapiMb(membuf); - fapi2::ReturnCode fapirc = fapi2::getScom( fapiMb, addr, buffer ); - - err = fapi2::rcToErrl( fapirc ); - + err = deviceRead( membuf, &data, sz_data, DEVICE_SCOM_ADDRESS(addr) ); if( NULL != err ) { - MDIA_FAST("ceErrorSetup: fapiGetScom on 0x%08X failed HUID:0x%08X", + MDIA_FAST("ceErrorSetup: deviceRead on 0x%08X failed HUID:0x%08X", addr, get_huid(membuf)); break; } @@ -224,23 +221,12 @@ errlHndl_t ceErrorSetup( TargetHandle_t i_mba ) // and hard CEs ( set 55, 56, 57 bits ). // First clear starting 52 bits and than set relevant bits. - uint64_t data = ( uint64_t(buffer) & 0x0000000000000fff ) - | 0xf0010010010011c0; - - if( fapi2::FAPI2_RC_SUCCESS != buffer.set(data) ) - { - MDIA_FAST("ceErrorSetup: set() for 0x%08X failed" - " HUID:0x%08X data:0x%16X", - addr, get_huid(membuf), data); - break; - } - - fapirc = fapi2::putScom( fapiMb, addr , buffer ); - err = fapi2::rcToErrl( fapirc ); + data = ( data & 0x0000000000000fff ) | 0xf0010010010011c0; + err = deviceWrite( membuf, &data, sz_data, DEVICE_SCOM_ADDRESS(addr) ); if( NULL != err ) { - MDIA_FAST("ceErrorSetup: fapiPutScom on 0x%08X failed HUID:0x%08X", + MDIA_FAST("ceErrorSetup: deviceWrite on 0x%08X failed HUID:0x%08X", addr, get_huid(i_mba)); break; } @@ -254,7 +240,7 @@ void StateMachine::processCommandTimeout(const MonitorIDs & i_monitorIDs) MDIA_FAST("sm: processCommandTimeout"); /* TODO RTC 145132 WorkFlowProperties *wkflprop = NULL; - errlHndl_t err = NULL; + errlHndl_t err = nullptr; vector<mss_MaintCmd *> stopCmds; @@ -271,48 +257,42 @@ void StateMachine::processCommandTimeout(const MonitorIDs & i_monitorIDs) if((*wit)->timer == *monitorIt) { TargetHandle_t target = getTarget(**wit); - ecmdDataBufferBase buffer(64); - uint64_t mbaspa = 0; - uint64_t mbaspamask = 0; - // check MBASPA for maint cmd complete bit - // if set then don't time out - fapi::Target fapiMba(TARGET_TYPE_MBA_CHIPLET, target); - ReturnCode fapirc = fapiGetScom( fapiMba, MBA01_SPA, buffer); - - err = fapiRcToErrl(fapirc); - if(err) + + uint64_t firData = 0; + uint64_t mskData = 0; + size_t sz_uint64 = sizeof(uint64_t); + + // Check for command complete. If set, don't time out. + err = deviceRead( target, &firData, sz_uint64, + DEVICE_SCOM_ADDRESS(MBA01_SPA) ); + if ( nullptr != err ) { - MDIA_FAST("sm: fapiGetScom on 0x%08X failed HUID:0x%08X", + MDIA_FAST("sm: deviceRead on 0x%08X failed HUID:0x%08X", MBA01_SPA, get_huid(target)); //commit locally and let it timeout errlCommit(err, MDIA_COMP_ID); } else { - mbaspa = buffer.getDoubleWord(0) & 0x8080000000000000; + firData &= 0x8080000000000000; } - if(0 != mbaspa) + if ( 0 != firData ) { - fapirc = fapiGetScom( fapiMba, MBA01_SPA_MASK, buffer); - - err = fapiRcToErrl(fapirc); - if(err) + err = deviceRead( target, &mskData, sz_uint64, + DEVICE_SCOM_ADDRESS(MBA01_SPA_MASK) ); + if ( nullptr != err ) { - MDIA_FAST("sm: fapiGetScom on 0x%08X failed " + MDIA_FAST("sm: deviceRead on 0x%08X failed " "HUID:0x%08X", MBA01_SPA_MASK, get_huid(target)); //commit locally and let it timeout errlCommit(err, MDIA_COMP_ID); } - else - { - mbaspamask = buffer.getDoubleWord(0); - } } // Pending maint cmd complete, reset timer - if(mbaspa & ~mbaspamask) + if(firData & ~mskData) { // Committing an info log to help debug SW timeout if((*wit)->timeoutCnt >= MBA_TIMEOUT_LOG) |