/openbmc/openpower-vpd-parser/vpd-manager/include/utility/ |
H A D | json_utility.hpp | 59 (!i_sysCfgJsonObj.contains("frus"))) in getVPDOffset() 64 if (i_sysCfgJsonObj["frus"].contains(i_vpdFilePath)) in getVPDOffset() 66 return i_sysCfgJsonObj["frus"][i_vpdFilePath].at(0).value("offset", 0); in getVPDOffset() 70 i_sysCfgJsonObj["frus"].get_ref<const nlohmann::json::object_t&>(); in getVPDOffset() 77 if (i_vpdFilePath == i_sysCfgJsonObj["frus"][l_fruPath].at(0).value( in getVPDOffset() 81 return i_sysCfgJsonObj["frus"][l_fruPath].at(0).value("offset", 0); in getVPDOffset() 154 if (!i_sysCfgJsonObj.contains("frus")) in getInventoryObjPathFromJson() 156 throw std::runtime_error("Missing frus tag in system config JSON."); in getInventoryObjPathFromJson() 160 if (i_sysCfgJsonObj["frus"].contains(i_vpdPath)) in getInventoryObjPathFromJson() 162 return i_sysCfgJsonObj["frus"][i_vpdPat in getInventoryObjPathFromJson() [all...] |
/openbmc/docs/designs/ |
H A D | vpd-collection.md | 10 Field Replaceable Units (FRUs) today - one example is the BMC FRU. On OpenPower 13 VPD, which the BMC currently does not support. Certain FRUs also have keyword 16 The BMC requires to read VPD for all FRUs for several reasons: 19 included in the Platform Error Logs (PELs) for calling out FRUs for service. 31 of certain parameters of the FRU (atypical - for FRUs that do not have an 67 - The BMC must collect VPD for all FRUs that it has direct access to by the time 71 BMC applications need to be able to read VPD for FRUs to determine, for ex., 83 to synthesize VPD for such FRUs. Details on VPD synthesis will be in its own 86 - The BMC should be able to recollect VPD for FRUs that can be hotplugged or 92 - The BMC must create/update FRU inventory objects for all FRUs that it collects [all …]
|
/openbmc/skeleton/pyinventorymgr/ |
H A D | inventory_items.py | 21 FRUS = {} variable 93 FRUS = inv 98 FRUS = System.FRU_INSTANCES variable 102 for f in list(FRUS.keys()): 106 obj = InventoryItem(bus, obj_path, FRUS[f]) 111 if FRUS[f]["fru_type"] == "BMC":
|
/openbmc/phosphor-mrw-tools/ |
H A D | gen_presence_yaml.pl | 4 #for FRUs. Its output is used by code that determines which FRUs 41 #Finds FRUs and their Presence detects where a tach reading 86 while (my ($method, $FRUs) = each(%{$presence})) 89 while (my ($name, $data) = each(%{$FRUs}))
|
H A D | Inventory.pm | 44 #This will pick up FRUs and other chips like the BMC and processor. 120 #Don't need card segments for non-FRUs 427 =item * All targets of class CARD or CHIP that are FRUs. 474 won't show up in the name of any child cards that are FRUs.
|
/openbmc/openpower-vpd-parser/vpd-manager/include/ |
H A D | manager.hpp | 153 * @brief Get D-Bus object path of FRUs from expanded location code. 163 * @return List of FRUs D-Bus object paths for the given location code. 169 * @brief Get D-Bus object path of FRUs from unexpanded location code. 181 * @return List of FRUs D-Bus object paths for the given location code. 199 * This api will trigger parser to perform VPD recollection for FRUs that 226 * system VPD is published, VPD for other FRUs should be collected. This API 228 * triggers VPD collection for rest of the FRUs. 280 * Some FRUs VPD is specific to powerVS system. The API detects the
|
H A D | worker.hpp | 45 * @param[in] i_maxThreadCount - Maximum thread while collecting FRUs VPD. 77 * @brief API to process all FRUs presnt in config JSON file. 80 * trigger parser for all the FRUs and publish it on DBus. 252 * @brief An API to process embedded and synthesized FRUs. 263 * For some FRUs VPD can be processed only if the FRU has some specific 265 * FRUs can't be processed. 409 * Also, if post action is required to be processed only for FRUs with 515 * Some FRUs, under some given scenarios should not be collected and
|
H A D | gpio_monitor.hpp | 59 * @brief An API to set event handler for FRUs GPIO presence. 137 // Array of event handlers for all the attachable FRUs.
|
/openbmc/phosphor-host-ipmid/ |
H A D | read_fru_data.cpp | 16 extern const FruMap frus; 96 for (const auto& [fruId, instanceList] : frus) in processFruPropChange() 134 auto iter = frus.find(fruNum); in readDataFromInventory() 135 if (iter == frus.end()) in readDataFromInventory()
|
H A D | storagehandler.cpp | 42 extern const FruMap frus; 764 auto iter = frus.find(fruID); in ipmiStorageGetFruInvAreaInfo() 765 if (iter == frus.end()) in ipmiStorageGetFruInvAreaInfo() 808 auto iter = frus.find(fruDeviceId); in ipmiStorageReadFruData() 809 if (iter == frus.end()) in ipmiStorageReadFruData() 866 ipmi::sensor::sensors.size() + frus.size() + entityRecords.size(); in ipmiGetRepositoryInfo()
|
/openbmc/openpower-vpd-parser/vpd-manager/src/ |
H A D | worker.cpp | 48 if (!m_parsedJson.contains("frus")) in Worker() 107 m_parsedJson["frus"].get_ref<const nlohmann::json::object_t&>(); in primeSystemBlueprint() 118 // Prime the inventry for FRUs which in primeSystemBlueprint() 197 m_parsedJson["frus"][SYSTEM_VPD_FILE_PATH].at(0).value( in isSystemVPDOnDBus() 800 else if (!m_parsedJson["frus"].contains(i_vpdFilePath)) in primeInventory() 808 for (const auto& l_Fru : m_parsedJson["frus"][i_vpdFilePath]) in primeInventory() 898 // embedded frus. If the subfru is not an embedded FRU, the subfru may in processEmbeddedAndSynthesizedFrus() 899 // or may not be physically present. Those non embedded frus will always in processEmbeddedAndSynthesizedFrus() 902 // Present to true for such sub frus. in processEmbeddedAndSynthesizedFrus() 904 // for such sub frus. Also donot populate present property for embedded in processEmbeddedAndSynthesizedFrus() [all …]
|
H A D | manager.cpp | 318 std::to_string(l_threadCount) + "] FRUs."); in SetTimerToDetectVpdCollectionStatus() 819 if (!l_sysCfgJsonObj.contains("frus")) in getExpandedLocationCode() 821 logging::logMessage("Missing frus tag in system config JSON"); in getExpandedLocationCode() 825 l_sysCfgJsonObj["frus"].get_ref<const nlohmann::json::object_t&>(); in getExpandedLocationCode() 863 if (!l_sysCfgJsonObj.contains("frus")) in getFrusByUnexpandedLocationCode() 865 logging::logMessage("Missing frus tag in system config JSON"); in getFrusByUnexpandedLocationCode() 869 l_sysCfgJsonObj["frus"].get_ref<const nlohmann::json::object_t&>(); in getFrusByUnexpandedLocationCode() 1076 // TODO: check for all the essential FRUs in the system. in hostStateChangeCallBack()
|
/openbmc/openbmc-test-automation/redfish/systems/ |
H A D | test_systems_inventory.robot | 2 Documentation Inventory of hardware FRUs under redfish. 219 [Documentation] Verify a minimum number of FRUs. 224 # min_num_frus The minimum acceptable number of FRUs found. 229 ${status} ${num_valid_frus}= Run Key U Get Num Valid FRUs \ ${fru_type} 234 Fail Too few "${fru_type}" FRUs found, found only ${num_valid_frus}.
|
/openbmc/phosphor-dbus-interfaces/yaml/com/ibm/VPD/ |
H A D | Manager.interface.yaml | 48 List of all the FRUs D-Bus object paths for the given location 68 List of all the FRUs D-Bus object path for the given location 102 An api to check for FRUs replaced and if required, perform
|
/openbmc/phosphor-fan-presence/monitor/ |
H A D | power_off_cause.hpp | 101 PowerOffCause(count, "Missing Fan FRUs") in MissingFanFRUCause() 191 * @param[in] count - The minimum number of fan FRUs with 199 * @brief Returns true if 'count' or more fan FRUs have
|
/openbmc/fb-ipmi-oem/src/ |
H A D | storagecommands.cpp | 224 ManagedObjectType frus; in replaceCacheFru() local 228 resp.read(frus); in replaceCacheFru() 250 for (const auto& fru : frus) in replaceCacheFru() 398 // TODO: Handle Multi-Record FRUs? in ipmiStorageWriteFRUData() 467 ManagedObjectType frus; in getFruSdrs() local 475 resp.read(frus); in getFruSdrs() 483 frus.begin(), frus.end(), in getFruSdrs() 509 if (fru == frus.end()) in getFruSdrs()
|
/openbmc/pldm/libpldmresponder/ |
H A D | pdr_utils.cpp | 226 std::vector<FruRecordDataFormat> frus; in parseFruRecordTable() local 261 frus.push_back(fru); in parseFruRecordTable() 264 return frus; in parseFruRecordTable()
|
/openbmc/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-inventory-example/ |
H A D | inventory | 1 FRUS=BMC
|
/openbmc/openbmc/meta-yadro/meta-nicole/recipes-phosphor/vpd/nicole-openpower-fru-inventory/ |
H A D | inventory | 1 FRUS=BMC,ETHERNET
|
/openbmc/phosphor-logging/extensions/openpower-pels/ |
H A D | data_interface.hpp | 113 * called when certain FRUs become present. 496 * @brief Returns the FRUs DI property value hosted on the VINI iterface for 501 * @return std::optional<std::vector<uint8_t>> - The FRUs DI or 588 * FRUs become present. 910 * @brief Returns the FRUs DI property value hosted on the VINI iterface for 915 * @return std::optional<std::vector<uint8_t>> - The FRUs DI or 976 * @brief Start watching for the hotpluggable FRUs to become 991 * Only does something if it's one of the hotpluggable FRUs,
|
/openbmc/intel-ipmi-oem/ |
H A D | meson.options | 4 …-decorators', type: 'feature', description: 'Enable using EM decorators to map FRUs to entity IDs')
|
/openbmc/openbmc/meta-openpower/recipes-phosphor/vpd/openpower-fru-vpd/ |
H A D | op-vpd-parser.service | 11 ExecStart=/usr/bin/openpower-read-vpd --vpd $EEPROM --fru $FRUS --object $PATHS
|
/openbmc/phosphor-host-ipmid/scripts/ |
H A D | readfru.mako.cpp |
|
/openbmc/ipmi-fru-parser/scripts/ |
H A D | writefru.cpp.mako | 5 extern const FruMap frus = {
|
/openbmc/intel-ipmi-oem/src/ |
H A D | storagecommands.cpp | 122 ManagedObjectType frus; variable 168 for (const auto& fru : frus) in recalculateHashes() 232 frus = bus->yield_method_call<ManagedObjectType>( in replaceCacheFru() 331 frus[path] = object; in startMatch() 357 frus.erase(path); in startMatch() 527 frus.begin(), frus.end(), in getFruSdrs() 553 if (fru == frus.end()) in getFruSdrs()
|