Home
last modified time | relevance | path

Searched full:vpd (Results 1 – 25 of 409) sorted by relevance

12345678910>>...17

/openbmc/docs/designs/
H A Dvpd-collection.md1 # VPD collection app on OpenBMC
9 On OpenBMC, Vital Product Data (VPD) collection is limited to only one or two
11 systems, the BMC also supports just one VPD format, the [OpenPower VPD] [1]
13 VPD, which the BMC currently does not support. Certain FRUs also have keyword
14 format VPD.
16 The BMC requires to read VPD for all FRUs for several reasons:
18 - Some of the VPD information such as FRU part number, serial number need to be
26 - There are use cases for the BMC to send VPD data to the host
28 get VPD that is not directly accessible to it.
30 The VPD data itself may reside on an EEPROM (typical) or may be synthesized out
[all …]
/openbmc/phosphor-power/phosphor-regulators/src/
H A Dvpd.hpp30 * @class VPD
32 * Abstract base class that provides an interface to hardware VPD (Vital Product
35 * The interface is used to obtain VPD keyword values.
37 class VPD class
41 VPD() = default;
42 VPD(const VPD&) = delete;
43 VPD(VPD&&) = delete;
44 VPD& operator=(const VPD&) = delete;
45 VPD& operator=(VPD&&) = delete;
46 virtual ~VPD() = default;
[all …]
/openbmc/openpower-vpd-parser/vpd-manager/src/
H A Dvpd_parser_main.cpp17 * It recieves path of the VPD file(mandatory) and path to a config
21 * Steps to get parsed VPD.
22 * - Pass VPD file path and config file (if applicable).
23 * - Read VPD file to vector.
25 * parser object to get the Parsed VPD map.
26 * - If VPD format is other than the existing formats. Follow the steps
40 CLI::App app{"VPD-parser-app - APP to parse VPD. "}; in main()
42 app.add_option("-f, --file", vpdFilePath, "VPD file path")->required(); in main()
50 vpd::logging::logMessage("VPD file path recieved" + vpdFilePath); in main()
52 // VPD file path is a mandatory parameter to execute any parser. in main()
[all …]
H A Dmanager_main.cpp16 * @brief Main function for VPD parser application.
31 std::make_shared<vpd::Manager>(io_con, interface, connection); in main()
35 std::make_shared<vpd::BiosHandler<vpd::IbmBiosHandler>>( in main()
40 vpd::logging::logMessage("Start VPD-Manager event loop"); in main()
52 if (typeid(l_ex) == typeid(vpd::JsonException)) in main()
55 vpd::EventLogger::createAsyncPel( in main()
56 vpd::types::ErrorType::JsonFailure, in main()
57 vpd::types::SeverityType::Informational, __FILE__, __FUNCTION__, in main()
59 std::string("VPD Manager service failed with : ") + l_ex.what(), in main()
62 else if (typeid(l_ex) == typeid(vpd::GpioException)) in main()
[all …]
H A Dparser_factory.cpp10 namespace vpd namespace
14 * @brief Type of VPD formats.
18 IPZ_VPD, /**< IPZ VPD type */
19 KEYWORD_VPD, /**< Keyword VPD type */
20 DDR4_DDIMM_MEMORY_VPD, /**< DDR4 DDIMM Memory VPD type */
21 DDR5_DDIMM_MEMORY_VPD, /**< DDR5 DDIMM Memory VPD type */
22 DDR4_ISDIMM_MEMORY_VPD, /**< DDR4 ISDIMM Memory VPD type */
23 DDR5_ISDIMM_MEMORY_VPD, /**< DDR5 ISDIMM Memory VPD type */
24 INVALID_VPD_FORMAT /**< Invalid VPD type */
28 * @brief API to get the type of VPD.
[all …]
/openbmc/linux/drivers/pci/
H A Dvpd.c3 * PCI VPD support
41 /* VPD access through PCI 2.2+ VPD capability */
69 pci_warn(dev, "failed VPD read at offset %zu\n", in pci_vpd_size()
93 pci_info(dev, "invalid VPD tag %#04x (size %zu) at offset %zu%s\n", in pci_vpd_size()
101 struct pci_vpd *vpd = &dev->vpd; in pci_vpd_available() local
103 if (!vpd->cap) in pci_vpd_available()
106 if (vpd->len == 0 && check_size) { in pci_vpd_available()
107 vpd->len = pci_vpd_size(dev); in pci_vpd_available()
108 if (vpd->len == PCI_VPD_SZ_INVALID) { in pci_vpd_available()
109 vpd->cap = 0; in pci_vpd_available()
[all …]
/openbmc/openbmc-test-automation/openpower/vpd/
H A Dtest_vpd_tool.robot2 Documentation This suite tests System Vital Product Data (VPD) using vpdtool.
23 Verify System VPD Data Via Vpdtool
24 [Documentation] Verify the system VPD details via vpdtool output.
26 [Template] Verify VPD Data Via Vpdtool
34 Verify VPD Component Read
35 [Documentation] Verify details of all VPD component via vpdtool.
41 Verify VPD Component Read Operation ${component}
45 Verify VPD Field Read
46 [Documentation] Verify reading VPD field value via vpdtool.
57 Verify VPD Field Read Operation ${component}
[all …]
/openbmc/openpower-vpd-parser/vpd-tool/src/
H A Dvpd_tool_main.cpp11 * @brief Resets the VPD on DBus for all the Frus.
14 * manager(PIM) DBus service and the VPD manager service. VPD manager service
15 * collects the VPD for all the FRU's listed on the system config JSON and calls
16 * PIM to publish VPD on DBus.
24 if (vpd::utils::isChassisPowerOff()) in forceReset()
26 vpd::VpdTool l_vpdToolObj; in forceReset()
33 return vpd::constants::FAILURE; in forceReset()
55 …<< "This option resets some of the system VPD keywords to their default values. Do you really wish… in doMfgClean()
60 return vpd::constants::SUCCESS; in doMfgClean()
64 vpd::VpdTool l_vpdToolObj; in doMfgClean()
[all …]
/openbmc/openpower-vpd-parser/vpd-manager/include/
H A Dkeyword_vpd_parser.hpp6 namespace vpd namespace
10 * @brief Concrete class to implement Keyword VPD parsing
13 * functionality to implement parsing logic for Keyword VPD format.
34 * @brief A wrapper function to parse the keyword VPD binary data.
39 * @throw DataException - VPD is not valid
46 * @brief Parse the VPD data and emplace them as pair into the Map.
48 * @throw DataException - VPD data size is 0, check VPD
59 * @param[in] i_checkSumStart - VPD iterator pointing at checksum start
61 * @param[in] i_checkSumEnd - VPD iterator pointing at checksum end value
62 * @throw DataException - checksum invalid, check VPD
[all …]
H A Dworker.hpp13 namespace vpd namespace
16 * @brief A class to process and publish VPD data.
18 * The class works on VPD and is mainly responsible for following tasks:
21 * 3) Calling respective parser class to get parsed VPD.
22 * 4) Arranging VPD data under required interfaces.
23 * 5) Calling PIM to publish VPD.
25 * The class may also implement helper functions required for VPD handling.
45 * @param[in] i_maxThreadCount - Maximum thread while collecting FRUs VPD.
62 * Before BUS name for VPD-Manager is claimed, fitconfig whould be set for
64 * system VPD should be on DBus.
[all …]
H A Dmanager.hpp10 namespace vpd namespace
13 * @brief Class to manage VPD processing.
15 * The class is responsible to implement methods to manage VPD on the system.
17 * VPD data.
51 * To update IPZ type VPD, input parameter for writing should be in the form
54 * To update Keyword type VPD, input parameter for writing should be in the
74 * To update IPZ type VPD, input parameter for writing should be in the form
77 * To update Keyword type VPD, input parameter for writing should be in the
93 * API can be used to read VPD keyword from the given input path.
98 * To read keyword from keyword type VPD, just keyword name has to be
[all …]
H A Dparser.hpp13 namespace vpd namespace
17 * The class based on VPD file passed, selects the required parser and exposes
18 * API to parse the VPD and return the parsed data in required format to the
27 * @param[in] vpdFilePath - Path to the VPD file.
35 * This API is called to select parser based on the vpd data extracted from
36 * the VPD file path passed to the constructor of the class.
43 * @brief API to get parser instance based on VPD type.
45 * This API detects the VPD type based on the file path passed to the
50 std::shared_ptr<vpd::ParserInterface> getVpdParserInstance();
59 * To update IPZ type VPD, input parameter for writing should be in the form
[all …]
H A Dddimm_parser.hpp9 namespace vpd namespace
12 * @brief Concrete class to implement DDIMM VPD parsing.
15 * functionality to implement parsing logic for DDIMM VPD format.
35 * @param[in] i_vpdVector - VPD data.
43 throw(DataException("Malformed DDIMM VPD")); in DdimmVpdParser()
48 * @brief API to parse DDIMM VPD file.
50 * @return parsed VPD data
59 * @param[in] i_iterator - iterator to buffer containing VPD
64 * @brief API to calculate DDIMM size from DDIMM VPD
66 * @param[in] i_iterator - iterator to buffer containing VPD
[all …]
H A Dipz_parser.hpp10 namespace vpd namespace
13 * @brief Concrete class to implement IPZ VPD parsing.
16 * functionality to implement parsing logic for IPZ VPD format.
31 * @param[in] vpdVector - VPD data.
32 * @param[in] vpdFilePath - Path to VPD EEPROM.
33 * @param[in] vpdStartOffset - Offset from where VPD starts in the file.
60 * @brief API to parse IPZ VPD file.
65 * @return parsed VPD data.
70 * @brief API to check validity of VPD header.
74 * @param[in] itrToVPD - Iterator to the beginning of VPD file.
[all …]
H A Dparser_factory.hpp9 namespace vpd namespace
15 * on the type of vpd file.
32 * type of VPD extracted from VPD vector passed to the API.
33 * To detect respective parser from VPD vector, add logic into the API
36 * Note: API throws DataException in case vpd type check fails for any
39 * @param[in] i_vpdVector - vpd file content to check for the type.
41 * @param[in] i_vpdStartOffset - Offset from where VPD starts in the VPD
50 } // namespace vpd
H A Dbios_handler.hpp8 namespace vpd namespace
62 * The API will read the backed up data from the VPD keyword and based on
90 * The API checks value stored in VPD. If found default then the BIOS value
91 * is saved to VPD else VPD value is restored in BIOS pending attribute
97 * @brief API to save FCO data into VPD.
111 * @brief API to save AMM data into VPD.
127 * The API checks value stored in VPD. If found default then the BIOS value
128 * is saved to VPD else VPD value is restored in BIOS pending attribute
136 * The API reads the value from VPD and restore it to the BIOS attribute
149 * @brief API to save given value to VPD.
[all …]
/openbmc/openpower-vpd-parser/
H A DREADME.md3 This repository hosts code for OpenPower and IBM IPZ format VPD parsers. Both
4 OpenPower VPD and IPZ VPD formats are structured binaries that consist of
11 ## OpenPower VPD Parser
13 This is a build-time YAML driven application that parses the OpenPower VPD
18 - How VPD data is translated into D-Bus interfaces and properties.
20 The application instance must be passed in the file path to the VPD (this can,
24 ## IBM VPD Parser
27 option. This parser differs from the OpenPower VPD parser in the following ways:
29 - It parses all the records and keywords from the VPD, including large keywords
33 representing the VPD for a given VPD file path.
[all …]
H A Dmeson_options.txt1 option('BUSNAME', type : 'string', value : 'com.ibm.VPD.Manager',description : 'BUS NAME FOR THE SE…
2 option('OBJPATH', type : 'string', value : '/com/ibm/VPD/Manager', description : 'OBJECT PATH FOR T…
3 option('IFACE', type : 'string', value : 'com.ibm.VPD.Manager', description : 'INTERFACE NAME')
6 …'BAD_VPD_DIR', type: 'string', value: '/tmp/bad-vpd/', description: 'Directory which contains the …
7 …lue: '/usr/share/vpd/vpd_inventory.json', description: 'JSON file that defines inventory blueprin…
8 …N_SYM_LINK', type: 'string', value: '/var/lib/vpd/vpd_inventory.json', description: 'Symbolic lin…
9 option('JSON_ABSOLUTE_PATH_PREFIX', type: 'string', value: '/usr/share/vpd/', description: 'Path t…
10 …ing', value: '/sys/bus/i2c/drivers/at24/8-0050/eeprom', description: 'EEPROM path of system VPD.')
11 …n('VPD_SYMLIMK_PATH', type: 'string', value: '/var/lib/vpd', description: 'Symlink folder for VPD
/openbmc/phosphor-dbus-interfaces/yaml/com/ibm/VPD/
H A DManager.interface.yaml2 Implement to manage VPD data in system.
6 A method to update the keyword value for a given VPD record.
26 - com.ibm.VPD.Error.PathNotFound
27 - com.ibm.VPD.Error.RecordNotFound
28 - com.ibm.VPD.Error.KeywordNotFound
52 - com.ibm.VPD.Error.LocationNotFound
53 - com.ibm.VPD.Error.NodeNotFound
72 - com.ibm.VPD.Error.LocationNotFound
73 - com.ibm.VPD.Error.NodeNotFound
97 - com.ibm.VPD.Error.LocationNotFound
[all …]
H A DCollection.interface.yaml2 Implement to provide VPD collection state management.
8 Property which tells the current status of FRU VPD collection.
13 The current status of FRU VPD collection.
17 FRU VPD collection is in progress.
20 FRU VPD collection is successfully completed.
23 FRU VPD collection failed.
26 FRU VPD collection not started.
/openbmc/openbmc/meta-phosphor/recipes-phosphor/configuration/
H A Dentity-manager_git.bb18 PACKAGECONFIG[dts-vpd] = "-Ddevicetree-vpd=true, -Ddevicetree-vpd=false"
32 SYSTEMD_SERVICE:devicetree-vpd = "devicetree-vpd-parser.service"
40 ${@bb.utils.contains('PACKAGECONFIG', 'dts-vpd', 'devicetree-vpd', '', d)} \
51 FILES:devicetree-vpd = "${bindir}/devicetree-vpd-parser"
55 ${@bb.utils.contains('PACKAGECONFIG', 'dts-vpd', 'devicetre
[all...]
/openbmc/phosphor-dbus-interfaces/yaml/com/ibm/ipzvpd/
H A DREADME.md1 # IPZ VPD D-Bus Interfaces
3 IPZ is a VPD (Vital Product Data) format used in IBM Power systems. The format
8 The [OpenPower VPD][1] format is quite similar to the IPZ format and describes
11 Also refer to the [VPD Collection design document][2] that describes how the VPD
12 collection application on the BMC will parse and publish the VPD data for IBM
15 The D-Bus interfaces defined here describe how IPZ VPD will be made available on
16 D-Bus. Each YAML here represents a record in the IPZ VPD and keywords that
22 [2]: https://github.com/openbmc/docs/blob/master/designs/vpd-collection.md
/openbmc/openpower-vpd-parser/test/
H A Dutest_ipz_parser.cpp12 vpd::Parser l_vpdParser(l_vpdFile, l_json); in TEST()
14 vpd::types::IPZVpdMap l_ipzVpdMap; in TEST()
16 if (auto l_ipzVpdMapPtr = std::get_if<vpd::types::IPZVpdMap>(&l_parsedMap)) in TEST()
66 // Vpd file does not exist in TEST()
70 EXPECT_THROW(vpd::Parser(l_vpdFile, l_json), std::runtime_error); in TEST()
78 vpd::Parser l_vpdParser(l_vpdFile, l_json); in TEST()
88 vpd::Parser l_vpdParser(l_vpdFile, l_json); in TEST()
95 // Vpd vector size is less than RECORD_MIN(44), fails for checkHeader in TEST()
98 vpd::Parser l_vpdParser(l_vpdFile, l_json); in TEST()
110 vpd::Parser l_vpdParser(l_vpdFile, l_json); in TEST()
[all …]
/openbmc/openpower-vpd-parser/vpd-tool/include/
H A Dvpd_tool.hpp10 namespace vpd namespace
13 * @brief Class to support operations on VPD.
19 * Fix system VPD if any mismatch between DBus and hardware data.
20 * Reset specific system VPD keywords to its default value.
21 * Force VPD collection for hardware.
142 * @brief Prints the user options for fix system VPD command.
157 * vpd-manager DBus service to get the keyword's value.
166 * @brief API to print system VPD keyword's information.
195 * @brief API to handle more option for fix system VPD command.
204 * @brief API to get VPD value of keyword in BIOS Config Manager.
[all …]
/openbmc/openpower-vpd-parser/scripts/
H A Dwait-vpd-status.sh3 echo "Checking every 2s for VPD collection status ...."
7 …output=$(busctl get-property com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager Collecti…
10 echo "VPD collection is completed"
15 echo "Waiting for VPD status update. Retries remaining: $retries"
17 echo "Exit wait for VPD services to finish with timeout"

12345678910>>...17