summaryrefslogtreecommitdiffstats
path: root/src/include/usr/devicefw
diff options
context:
space:
mode:
authorCorey Swenson <cswenson@us.ibm.com>2014-09-08 15:56:45 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-10-17 14:12:26 -0500
commitc9cf241bc97ff6aba866d6acf167fd910a0f39c5 (patch)
tree37f0ddf358ee5cf5aff393ceee9d3aafb4887f72 /src/include/usr/devicefw
parent1428a1fabd827dcc8b43fd0039bfc75d2712c190 (diff)
downloadblackbird-hostboot-c9cf241bc97ff6aba866d6acf167fd910a0f39c5.tar.gz
blackbird-hostboot-c9cf241bc97ff6aba866d6acf167fd910a0f39c5.zip
BMC: VPD Caching in PNOR
For MVPD CVPD SPD, during presence detect VPD part number and serial number are compared between PNOR and SEEPROM. Mismatch triggers copy of VPD from SEEPROM to PNOR. Change-Id: Ia0a7b3fdf80bc15aee05c1303efa406fffa318ce RTC: 106885 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/13233 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr/devicefw')
-rw-r--r--src/include/usr/devicefw/userif.H42
1 files changed, 39 insertions, 3 deletions
diff --git a/src/include/usr/devicefw/userif.H b/src/include/usr/devicefw/userif.H
index 38cad8ea6..69d334634 100644
--- a/src/include/usr/devicefw/userif.H
+++ b/src/include/usr/devicefw/userif.H
@@ -37,6 +37,7 @@
#ifndef PARSER
#include <stdint.h>
#include <errl/errlentry.H>
+#include <vpd/vpd_if.H>
#include <targeting/common/targetservice.H>
#endif // not PARSER
@@ -98,7 +99,18 @@ namespace DeviceFW
* by the device driver.
*/
#define DEVICE_SPD_ADDRESS( i_keyword )\
- DeviceFW::SPD, static_cast<uint64_t>(( i_keyword ))
+ DEVICE_SPD_FORCE_ADDRESS( i_keyword, VPD::AUTOSELECT )
+
+ /**
+ * Construct the device addressing parameters for the SPD device ops.
+ * @param[in] i_keyword - The keyword enumeration value to be accessed
+ * by the device driver.
+ * @param[in] i_location - The location to be used for
+ * accessing the keyword (PNOR/SEEPROM).
+ */
+ #define DEVICE_SPD_FORCE_ADDRESS( i_keyword, i_location )\
+ DeviceFW::SPD, static_cast<uint64_t>(( i_keyword )),\
+ static_cast<uint64_t>(( i_location))
/**
* Construct the device addressing parameters for the MAILBOX device.
@@ -115,8 +127,20 @@ namespace DeviceFW
* within the i_record Record to access.
*/
#define DEVICE_MVPD_ADDRESS( i_record, i_keyword )\
+ DEVICE_MVPD_FORCE_ADDRESS( i_record, i_keyword, VPD::AUTOSELECT )
+
+ /**
+ * Construct the device addressing parameters for the MVPD device ops.
+ * @param[in] i_record - The enumeration of the MVPD record to access.
+ * @param[in] i_keyword - The enumeration of the MVPD keyword, located
+ * within the i_record Record to access.
+ * @param[in] i_location - The location of the data (PNOR/SEEPROM)
+ see vpd_if.H
+ */
+ #define DEVICE_MVPD_FORCE_ADDRESS( i_record, i_keyword, i_location )\
DeviceFW::MVPD, static_cast<uint64_t>(( i_record )),\
- static_cast<uint64_t>(( i_keyword ))
+ static_cast<uint64_t>(( i_keyword )),\
+ static_cast<uint64_t>(( i_location ))
/**
* Construct the device addressing parameters for the CVPD device ops.
@@ -125,8 +149,20 @@ namespace DeviceFW
* within the i_record Record to access.
*/
#define DEVICE_CVPD_ADDRESS( i_record, i_keyword )\
+ DEVICE_CVPD_FORCE_ADDRESS( i_record, i_keyword, VPD::AUTOSELECT )
+
+ /**
+ * Construct the device addressing parameters for the CVPD device ops.
+ * @param[in] i_record - The enumeration of the CVPD record to access.
+ * @param[in] i_keyword - The enumeration of the CVPD keyword, located
+ * within the i_record Record to access.
+ * @param[in] i_location - The location of the data (PNOR/SEEPROM)
+ see vpd_if.H
+ */
+ #define DEVICE_CVPD_FORCE_ADDRESS( i_record, i_keyword, i_location )\
DeviceFW::CVPD, static_cast<uint64_t>(( i_record )),\
- static_cast<uint64_t>(( i_keyword ))
+ static_cast<uint64_t>(( i_keyword )),\
+ static_cast<uint64_t>(( i_location ))
/**
* Construct the device addressing parameters for the SCAN device ops.
OpenPOWER on IntegriCloud