diff options
author | Mike Jones <mjjones@us.ibm.com> | 2012-10-09 16:34:56 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-10-17 10:11:02 -0500 |
commit | 399b036c4c27776a2a8577274ed6cb3657f15518 (patch) | |
tree | 15190aac1d96e46a44640063a6dfd2fd05e87ec8 /src/usr/hwpf/plat/fapiPlatMvpdAccess.C | |
parent | 3602edd91b57506d18b9aedbf4f98dd4ef275463 (diff) | |
download | talos-hostboot-399b036c4c27776a2a8577274ed6cb3657f15518.tar.gz talos-hostboot-399b036c4c27776a2a8577274ed6cb3657f15518.zip |
HWPF: Add fapiSetMvpdField function
Change-Id: I112708de8f5de7af9cf328034b2b612cd53b74e9
RTC: 50183
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/2006
Tested-by: Jenkins Server
Reviewed-by: Van H. Lee <vanlee@us.ibm.com>
Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/plat/fapiPlatMvpdAccess.C')
-rw-r--r-- | src/usr/hwpf/plat/fapiPlatMvpdAccess.C | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/usr/hwpf/plat/fapiPlatMvpdAccess.C b/src/usr/hwpf/plat/fapiPlatMvpdAccess.C index 5328145e9..977a9a7cc 100644 --- a/src/usr/hwpf/plat/fapiPlatMvpdAccess.C +++ b/src/usr/hwpf/plat/fapiPlatMvpdAccess.C @@ -268,4 +268,64 @@ fapi::ReturnCode fapiGetMvpdField(const fapi::MvpdRecord i_record, return l_rc; } +//****************************************************************************** +// fapiSetMvpdField +//****************************************************************************** +fapi::ReturnCode fapiSetMvpdField(const fapi::MvpdRecord i_record, + const fapi::MvpdKeyword i_keyword, + const fapi::Target &i_procTarget, + const uint8_t * const i_pBuffer, + const uint32_t i_fieldSize) +{ + fapi::ReturnCode l_rc; + FAPI_DBG("fapiSetMvpdField entry"); + + do + { + // Translate the FAPI record to a Hostboot record + MVPD::mvpdRecord l_hbRecord = MVPD::MVPD_INVALID_RECORD; + + l_rc = fapi::MvpdRecordXlate(i_record, l_hbRecord); + + if (l_rc) + { + break; + } + + // Translate the FAPI keyword to a Hostboot keyword + MVPD::mvpdKeyword l_hbKeyword = MVPD::INVALID_MVPD_KEYWORD; + + l_rc = fapi::MvpdKeywordXlate(i_keyword, l_hbKeyword); + + if (l_rc) + { + break; + } + + size_t l_fieldLen = i_fieldSize; + + errlHndl_t l_errl = deviceWrite( + reinterpret_cast< TARGETING::Target*>(i_procTarget.get()), + const_cast<uint8_t *>(i_pBuffer), + l_fieldLen, + DEVICE_MVPD_ADDRESS(l_hbRecord, l_hbKeyword)); + + if (l_errl) + { + FAPI_ERR("fapiSetMvpdField: ERROR: deviceWrite : errorlog PLID=0x%x", + l_errl->plid()); + + // Add the error log pointer as data to the ReturnCode + l_rc.setPlatError(reinterpret_cast<void *> (l_errl)); + + break; + } + + } while(0); + + FAPI_DBG( "fapiSetMvpdField: exit" ); + + return l_rc; +} + } // extern "C" |