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/vpd/vpd_if.H | |
parent | 1428a1fabd827dcc8b43fd0039bfc75d2712c190 (diff) | |
download | talos-hostboot-c9cf241bc97ff6aba866d6acf167fd910a0f39c5.tar.gz talos-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/vpd/vpd_if.H')
-rw-r--r-- | src/include/usr/vpd/vpd_if.H | 52 |
1 files changed, 43 insertions, 9 deletions
diff --git a/src/include/usr/vpd/vpd_if.H b/src/include/usr/vpd/vpd_if.H index 6c216edcf..af8e501d5 100644 --- a/src/include/usr/vpd/vpd_if.H +++ b/src/include/usr/vpd/vpd_if.H @@ -29,30 +29,64 @@ namespace VPD { /** - * Load the runtime VPD image into memory + * @brief typdef for vpdRecord values + */ + typedef uint32_t vpdRecord; + /** + * @brief typdef for vpdKeyword values + */ + typedef uint32_t vpdKeyword; + /** + * @brief typdef for vpdCmdTarget values + */ + enum vpdCmdTarget + { + AUTOSELECT, + PNOR, + SEEPROM, + INVALID_LOCATION = 0xFFFF, + }; + + /** + * @brief Load the runtime VPD image into memory * @param[out] The physical address of the VPD image * @return error handle if there was an error */ errlHndl_t vpd_load_rt_image(uint64_t & o_vpd_addr); /** - * @brief this function checks to see if the given mvpd target - * is present - * + * @brief This function checks to see if the given mvpd target + * is present * @param[in] i_target - Target device to search for mvpd - * * @return bool - true if mvpd is present, false if it is not. */ bool mvpdPresent ( TARGETING::Target * i_target ); /** - * @brief this function checks to see if the given cvpd target - * is present - * + * @brief This function checks to see if the given cvpd target + * is present * @param[in] i_target - Target device to search for cvpd - * * @return bool - true if cvpd is present, false if it is not. */ bool cvpdPresent ( TARGETING::Target * i_target ); + + /** + * @brief This function checks if the PNOR cache for this target is in + * sync with the SEEPROM, if not it loads the PNOR cache from SEEPROM. + * @param[in] i_target - Target device + * @return errlHndl_t - NULL if successful, otherwise a pointer to the + * error log. + */ + errlHndl_t ensureCacheIsInSync ( TARGETING::Target * i_target ); + + /** + * @brief This function invalidates the VPD data in the PNOR cache. + * @param[in] i_target - Target device + * @return errlHndl_t - NULL if successful, otherwise a pointer to the + * error log. + */ + errlHndl_t invalidatePnorCache ( TARGETING::Target * i_target ); + }; //end vpd namespace + #endif |