diff options
| author | Corey Swenson <cswenson@us.ibm.com> | 2014-09-08 15:56:45 -0500 |
|---|---|---|
| committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-10-17 14:12:26 -0500 |
| commit | c9cf241bc97ff6aba866d6acf167fd910a0f39c5 (patch) | |
| tree | 37f0ddf358ee5cf5aff393ceee9d3aafb4887f72 /src/include/usr/devicefw | |
| parent | 1428a1fabd827dcc8b43fd0039bfc75d2712c190 (diff) | |
| download | blackbird-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.H | 42 |
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. |

