From 84a672bd28630d9998fc2808df3659ddcf5a7eda Mon Sep 17 00:00:00 2001 From: Bill Hoffa Date: Tue, 10 Feb 2015 15:18:00 -0600 Subject: IPMI FRU Updates Change-Id: Iab7684e1ab89cc29311d6882206952bb2966e4e4 RTC:119680 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/15860 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III --- src/include/usr/ipmi/ipmifruinv.H | 44 ++++++++++++++++++++++++++++++++++----- src/include/usr/vpd/cvpdenums.H | 4 ++++ 2 files changed, 43 insertions(+), 5 deletions(-) (limited to 'src/include/usr') diff --git a/src/include/usr/ipmi/ipmifruinv.H b/src/include/usr/ipmi/ipmifruinv.H index cc34b06e3..0df72462b 100644 --- a/src/include/usr/ipmi/ipmifruinv.H +++ b/src/include/usr/ipmi/ipmifruinv.H @@ -1,11 +1,11 @@ /* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ -/* $Source: src/include/usr/ipmi/ipmifru.H $ */ +/* $Source: src/include/usr/ipmi/ipmifruinv.H $ */ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014 */ +/* Contributors Listed Below - COPYRIGHT 2014,2015 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -32,10 +32,44 @@ namespace IPMIFRUINV * @brief Base function to be called to set the IPMI Fru * inventory data for all targets in system * - * @param[out] errlHndl_t, Any errors encountered sending - * IPMI Fru Inventory Data + * @param[in] updateData, Boolean indicating whether the data + * is being updated. If false, this function will send + * all the IPMI FRU Data. If True, it will only send + * updated data for procs/centaurs. */ - errlHndl_t setData(void); + void setData(bool i_updateData=false); + + /** + * @brief Clears fru data from BMC + * @param[in] fruId, The fruId to be cleared + */ + void clearData(uint8_t i_fruId); + + /** + * @brief Gathers potential list of frus who may need their fru + * data cleared from the BMC + * @param[in] pSys, Top level system target + * @param[in/out] frusToClear, Map of potential frus to clear + */ + void gatherClearData(const TARGETING::Target* i_pSys, + std::map& io_frusToClear); + + /** + * @brief Updates vector of potential frus to set inventory + * data for. Updates map of frus that need their + * fru inventory data cleared. + * @param[in] pSys, Top level system target + * @param[in/out] frusToClear, Map of potential frus to clear + * @param[in] updateData, Bool indicating the data is being updated + * True - Doing an update to previously set data + * False - Setting base data + */ + void gatherSetData(const TARGETING::Target* i_pSys, + std::map& io_frusToClear, + std::vector< std::pair >& + io_potentialFrus, + bool i_updateData); + }; #endif diff --git a/src/include/usr/vpd/cvpdenums.H b/src/include/usr/vpd/cvpdenums.H index 53bfcb27b..4b5adb271 100644 --- a/src/include/usr/vpd/cvpdenums.H +++ b/src/include/usr/vpd/cvpdenums.H @@ -45,6 +45,7 @@ namespace CVPD OPFR = 0x05, VNDR = 0x06, SPDX = 0x07, + OSYS = 0x08, // Last Record CVPD_LAST_RECORD, CVPD_TEST_RECORD, // Test purposes ONLY! @@ -120,6 +121,9 @@ namespace CVPD K6 = 0x39, K7 = 0x3a, K8 = 0x3b, + MM = 0x3c, + SS = 0x3d, + ET = 0x3e, // Last Keyword CVPD_LAST_KEYWORD, -- cgit v1.2.3