summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/plat/fapiPlatMvpdAccess.C
diff options
context:
space:
mode:
authorMike Jones <mjjones@us.ibm.com>2012-10-09 16:34:56 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-10-17 10:11:02 -0500
commit399b036c4c27776a2a8577274ed6cb3657f15518 (patch)
tree15190aac1d96e46a44640063a6dfd2fd05e87ec8 /src/usr/hwpf/plat/fapiPlatMvpdAccess.C
parent3602edd91b57506d18b9aedbf4f98dd4ef275463 (diff)
downloadtalos-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.C60
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"
OpenPOWER on IntegriCloud