/openbmc/phosphor-logging/test/openpower-pels/ |
H A D | fru_identity_test.cpp | 23 // Unflatten a FRUIdentity that is a HW FRU callout 35 FRUIdentity fru{stream}; in TEST() local 37 EXPECT_EQ(fru.failingComponentType(), FRUIdentity::hardwareFRU); in TEST() 38 EXPECT_EQ(fru.flattenedSize(), data.size()); in TEST() 39 EXPECT_EQ(fru.type(), 0x4944); in TEST() 41 EXPECT_EQ(fru.getPN().value(), "1234567"); in TEST() 42 EXPECT_EQ(fru.getCCIN().value(), "AAAA"); in TEST() 43 EXPECT_EQ(fru.getSN().value(), "123456789ABC"); in TEST() 44 EXPECT_FALSE(fru.getMaintProc()); in TEST() 49 fru.flatten(newStream); in TEST() [all …]
|
/openbmc/openbmc-test-automation/ipmi/ |
H A D | test_ipmi_fru_device.robot | 2 Documentation Test IPMI FRU data. 28 Test FRU Device Name 29 [Documentation] Search FRU for device name 32 ${output}= Run IPMI Standard Command fru 33 Should Contain ${output} ${FRU_NAME} msg=Fail: Given FRU device ${FRU_NAME} not found 36 Verify Fru Device Configuration 37 [Documentation] Read the FRU device configuration of each device 41 # IPMI FRU print. 42 ${ipmi_output}= Run IPMI Standard Command fru 44 # Create dictionary with FRU device serial number as key and details as value from IPMI. [all …]
|
H A D | test_ipmi_fru.robot | 2 Documentation Test IPMI FRU data. 21 Test FRU Info Of Power Supplies 22 [Documentation] Verify FRU info of power supply via IPMI and Redfish. 25 # IPMI FRU info. 26 ${ipmi_fru_component_info}= Get Component FRU Info ${COMPONENT_NAME_OF_POWER_SUPPLY} 29 # Redfish FRU info. 43 [Documentation] Get IPMI And Redfish subcomponents of FRU and verify. 47 # ${ipmi_fru_info} IPMI FRU component values. 48 # ${redfish_fru_info} Redfish FRU component values. 58 Compare IPMI And Redfish FRU Component ${ipmi_fru_sub_component} [all …]
|
/openbmc/phosphor-dbus-interfaces/yaml/xyz/openbmc_project/Inventory/Source/PLDM/ |
H A D | FRU.interface.yaml | 2 Implement to represent a PLDM FRU ( 4 This interface is composed of standard (not OEM) FRU field type (FRU 7 Caveat: This interface is primarily for consumption by the PLDM FRU format 8 producer apps (for eg the PLDM daemon) and apps that transform specific FRU 12 An OpenBMC implementation that wants to process a PLDM FRU record table 14 object that represents a PLDM FRU definition - a set of properties and their 15 values for the FRU. Typically such an app would parse PLDM FRU records and 17 FRU field is missing in the FRU record, then the corresponding D-Bus 30 Chassis type of the FRU. Can be empty if the FRU is not a chassis. 34 Model of the FRU. [all …]
|
/openbmc/libpldm/include/libpldm/ |
H A D | fru.h | 33 /** @brief PLDM FRU commands 42 /** @brief FRU record types 49 /** @brief Encoding type for FRU fields 60 /** @brief FRU field types 82 * Structure representing PLDM get FRU table metadata response. 86 uint8_t fru_data_major_version; //!< The major version of the FRU Record 87 uint8_t fru_data_minor_version; //!< The minor version of the FRU Record 88 uint32_t fru_table_maximum_size; //!< The size of the largest FRU Record data 89 uint32_t fru_table_length; //!< The total length of the FRU Record Table 90 uint16_t total_record_set_identifiers; //!< The total number of FRU [all …]
|
/openbmc/pldm/libpldmresponder/ |
H A D | fru.hpp | 8 #include <libpldm/fru.h> 40 * @brief Builds the PLDM FRU table containing the FRU records 45 /* @brief Header size for FRU record, it includes the FRU record set 46 * identifier, FRU record type, Number of FRU fields, Encoding type 47 * of FRU fields 57 * for PLDM FRU 58 * @param[in] fruMasterJsonPath - path to the file containing the FRU D-Bus 64 * @param[in] oemFruHandler - OEM fru handler 74 /** @brief Total length of the FRU table in bytes, this includes the pad 77 * @return size of the FRU table [all …]
|
H A D | pdr_utils.cpp | 3 #include <libpldm/fru.h> 21 // 7: uint16_t(FRU Record Set Identifier), uint8_t(FRU Record Type), 22 // uint8_t(Number of FRU fields), uint8_t(Encoding Type for FRU fields), 23 // uint8_t(FRU Field Type), uint8_t(FRU Field Length) 26 // // 2: 1byte FRU Field Type, 1byte FRU Field Length 216 // 7: uint16_t(FRU Record Set Identifier), uint8_t(FRU Record Type), in parseFruRecordTable() 217 // uint8_t(Number of FRU fields), uint8_t(Encoding Type for FRU fields), in parseFruRecordTable() 218 // uint8_t(FRU Field Type), uint8_t(FRU Field Length) in parseFruRecordTable() 221 error("Invalid FRU length '{LENGTH}' while parsing FRU record table", in parseFruRecordTable() 231 FruRecordDataFormat fru; in parseFruRecordTable() local [all …]
|
H A D | fru_parser.hpp | 30 namespace fru namespace 37 } // namespace fru 52 pldm::responder::dbus::PropertyType, pldm::responder::fru::FieldType>; 55 std::tuple<pldm::responder::fru::RecordType, 56 pldm::responder::fru::EncodingType, std::vector<FieldInfo>>; 64 * @brief Parses the PLDM FRU configuration files to populate the data 66 * inventory information into PLDM FRU Record. 81 * needed to build FRU record data table 83 * @return service and inventory interfaces needed to build the FRU records 90 /** @brief Get the information need to create PLDM FRU records for a [all …]
|
/openbmc/openbmc/meta-phosphor/recipes-phosphor/ipmi/ipmitool/ |
H A D | 0001-Fru-Fix-edit-field-not-checking-area-existence.patch | 4 Subject: [PATCH] Fru: Fix edit field not checking area existence 6 The current implementation of ipmitool fru edit does not perform proper 7 checks when attempting to resize the FRU. This results in undesireable 8 changes to the FRU in several instances: 9 1. If the FRU is shrinking and a FRU area does not exist (offset 0), 13 FRU spec, ipmitool may shift the wrong fields, which would cause data 14 loss. (the FRU spec does not specify a required order for FRU fields) 15 3. If the FRU is being enlarged after a fru field edit, the FRU size is 16 not properly modified before writing the FRU, so the end of the FRU 24 3. Properly edit the size of the FRU before the FRU is written. [all …]
|
/openbmc/ipmitool/lib/ |
H A D | ipmi_fru.c | 71 struct fru_info fru, struct fru_header header, 75 fru_area_print_multirec_bloc(struct ipmi_intf * intf, struct fru_info * fru, 78 read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, 82 /* get_fru_area_str - Parse FRU area string from raw data 84 * @data: raw FRU data 87 * returns pointer to FRU area string 215 /* build_fru_bloc - build fru bloc for write protection 218 * @fru_info: information about FRU device 219 * @id : Fru id 230 build_fru_bloc(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id) in build_fru_bloc() argument [all …]
|
H A D | ipmi_kontronoem.c | 50 extern int read_fru_area(struct ipmi_intf *intf, struct fru_info *fru, 53 extern int write_fru_area(struct ipmi_intf * intf, struct fru_info *fru, 84 printf("fru setsn\n"); in ipmi_kontronoem_main() 88 printf("FRU serial number setted successfully\n"); in ipmi_kontronoem_main() 90 printf("FRU serial number set failed\n"); in ipmi_kontronoem_main() 95 printf("fru setmfgdate\n"); in ipmi_kontronoem_main() 99 printf("FRU manufacturing date setted successfully\n"); in ipmi_kontronoem_main() 101 printf("FRU manufacturing date set failed\n"); in ipmi_kontronoem_main() 202 /* ipmi_fru_set_serial_number - Set the Serial Number in FRU 205 * @id: fru id [all …]
|
/openbmc/openbmc/meta-ampere/meta-jefferson/recipes-ampere/platform/ampere-utils/ |
H A D | ampere_firmware_upgrade.sh | 3 # Helper script to flash FRU and Boot EEPROM devices. 5 # Syntax for FRU: 6 # ampere_firmware_upgrade.sh fru <image> [<dev>] 7 # dev: 1 for CIO FRU (default), 2 for BMC FRU, 3 for MB-1 FRU, 4 for MB-2 FRU 68 echo "Flash CIO FRU with image $IMAGE at $FRU_DEVICE" 71 echo "Flash BMC FRU with image $IMAGE at $FRU_DEVICE" 74 echo "Flash MB-1 FRU with image $IMAGE at $FRU_DEVICE" 77 echo "Flash MB-2 FRU with image $IMAGE at $FRU_DEVICE" 79 echo "Please select CIO FRU (1), BMC FRU (2)," 80 echo "MB-1 FRU (3), MB-2 FRU (4)," [all …]
|
/openbmc/ipmi-fru-parser/ |
H A D | fru_area.hpp | 15 * IPMIFruArea represents a piece of a FRU that is accessible over IPMI. 26 * @param[in] fruID - FRU identifier value 27 * @param[in] type - the type of FRU area. 28 * @param[in] bmcOnlyFru - Is this FRU only accessible via the BMC 34 * Set whether the FRU is present. 44 * Retrieves the FRU's ID. 46 * @return the FRU ID. 54 * Returns the length of the FRU data. 64 * Returns the type of the current FRU area. 66 * @return the type of FRU area [all …]
|
/openbmc/pldm/libpldmresponder/examples/fru/ |
H A D | FRU_Master.json | 1 // This is the master config file for generating PLDM FRU records from the D-Bus 4 // D-Bus objects and "entities" section specifies the type of FRU's for which 5 // FRU records are created in the FRU table. FRU Record Set PDR and Entity 6 // Association PDR are generated for matching FRU. In this example, PLDM FRU 7 // records will be created for all FRU's of type Board and CPU. The "entity_type" 8 // field is the PLDM entity type for Board and CPU. For each FRU type, 10 // directory, Board_General.json is the config to generate the General FRU 11 // record for FRU of type Board and Board_VINI.json is the config to generate 12 // the OEM record (VINI is a record in IBM IPZ VPD format) for FRU of type Board. 13 // For all instances of the same FRU, the same config JSON will apply.
|
H A D | Cpu_General.json | 1 // This JSON has the information needed to create General FRU record for FRU of 2 // type Cpu. The FRU fields are based on the PLDM specification DSP0257. 5 // FRU Record Type - General FRU Record 7 // Encoding Type for FRU fields - ASCII 13 // FRU Field Type 3 - Part Number 15 // D-Bus property to read and populate the FRU field 23 // FRU Field Type 4 - Serial Number 25 // D-Bus property to read and populate the FRU field
|
H A D | Board_General.json | 1 // This JSON has the information needed to create General FRU record for FRU of 2 // type Board. The FRU fields are based on the PLDM specification DSP0257. 5 // FRU Record Type - General FRU Record 7 // Encoding Type for FRU fields - ASCII 13 // FRU Field Type 3 - Part Number 15 // D-Bus property to read and populate the FRU field 23 // FRU Field Type 4 - Serial Number 25 // D-Bus property to read and populate the FRU field
|
H A D | Board_VINI.json | 1 // This JSON has the information needed to create OEM FRU record VINI for FRU of 5 // FRU Record Type - OEM FRU Record 7 // Encoding Type for FRU fields - ASCII 13 // FRU Field Type 2 - Keyword RT 15 // D-Bus property to read and populate the FRU field 23 // FRU Field Type 3 - Keyword B3 25 // D-Bus property to read and populate the FRU field
|
/openbmc/entity-manager/src/ |
H A D | fru_utils.hpp | 70 size_t start; // Fru Area Start offset 71 size_t size; // Fru Area Size 72 size_t end; // Fru Area end offset 73 size_t updateFieldLoc; // Fru Area update Field Location 143 /// \brief Find a FRU header. 155 /// \brief Read and validate FRU contents. 158 /// \return the FRU contents from the file and bool indicating if the FRU Header 163 /// \brief Validate an IPMI FRU common header 175 /// \param fruData - vector to store fru data 176 /// \param propertyName - fru property Name [all …]
|
/openbmc/openbmc/meta-ibm/recipes-phosphor/configuration/ |
H A D | acx22-yaml-config.bb | 10 file://acx22-ipmi-fru-bmc.yaml \ 11 file://acx22-ipmi-fru-not-sent-by-host.yaml \ 27 acx22-ipmi-fru-bmc.yaml \ 28 acx22-ipmi-fru-not-sent-by-host.yaml \ 41 # generate extra-properties.yaml from the MRW for ipmi-fru-parser 43 -c $op_configpath/ipmi-fru-properties-mrw.yaml \ 46 # generate fru-read.yaml from the MRW, for ipmid and ipmi-fru-parser 48 -m $op_configpath/ipmi-hostboot-fru-mrw.yaml \ 49 -o fru-read-partial.yaml ${EXTRA_MRW_SCRIPT_ARGS} 50 cat fru-read-partial.yaml ${ACx22_IPMI_EXTRA_FRU_READ_YAMLS} \ [all …]
|
/openbmc/pldm/oem/ibm/libpldmresponder/ |
H A D | fru_oem_ibm.hpp | 4 #include "libpldmresponder/fru.hpp" 8 #include <libpldm/oem/ibm/fru.h> 40 /** @brief Method to set the fru handler in the 45 void setIBMFruHandler(pldm::responder::fru::Handler* handler); 47 /** @brief Process OEM FRU table 49 * @param[in] fruData - the data of the fru records 66 pldm::responder::fru::Handler* fruHandler; //!< pointer to PLDM fru handler 70 * @param[in] fruRSI - fru record set identifier 72 * creating the pldm fru records 88 * @param[in] adapterObjectPath - the fru object path [all …]
|
/openbmc/docs/designs/ |
H A D | vpd-collection.md | 10 Field Replaceable Units (FRUs) today - one example is the BMC FRU. On OpenPower 18 - Some of the VPD information such as FRU part number, serial number need to be 22 code path based on what level of FRU is plugged in. For example, the 24 registers based on the version of the voltage regulator FRU. 31 of certain parameters of the FRU (atypical - for FRUs that do not have an 40 Each keyword can be used to contain specific data about the FRU. For example, 72 the hardware level of the FRU. 77 FRU VPD without powering the system ON. 82 - If a FRU does not have a VPD store such as an EEPROM, the BMC should be able 92 - The BMC must create/update FRU inventory objects for all FRUs that it collects [all …]
|
/openbmc/phosphor-power/phosphor-regulators/src/actions/ |
H A D | compare_presence_action.hpp | 47 * @param fru Field-Replaceable Unit (FRU). Specify the D-Bus inventory path 48 * of the FRU. 51 explicit ComparePresenceAction(const std::string& fru, bool value) : in ComparePresenceAction() argument 52 fru{fru}, value{value} in ComparePresenceAction() 69 * Returns the Field-Replaceable Unit (FRU). 71 * @return FRU 75 return fru; in getFRU() 97 * Field-Replaceable Unit (FRU) for this action. 99 * The D-Bus inventory path of the FRU. 101 const std::string fru{}; member in phosphor::power::regulators::ComparePresenceAction
|
/openbmc/phosphor-led-manager/fault-monitor/ |
H A D | fru-fault-monitor.hpp | 14 namespace fru namespace 21 /** @brief Assert or deassert an LED based on the input FRU 23 * @param[in] path - Inventory path of the FRU 29 * @brief Implementation of LED handling after resolution of FRU fault 30 * @details Implement methods for watching the resolution of FRU faults 45 * @param[in] path - Inventory path to fru 56 /** @brief inventory path of the FRU */ 62 /** @brief Callback function for fru fault created 67 /** @brief function to create fault remove match for a fru 83 * @brief Implementation of LED handling during FRU fault [all …]
|
/openbmc/phosphor-host-ipmid/ |
H A D | ipmi_fru_info_area.cpp | 15 namespace fru namespace 52 // Minimum size of resulting FRU blob. 63 * @brief Format Beginning of Individual IPMI FRU Data Section 66 * @param[in/out] data FRU area data 70 // Add id for version of FRU Info Storage Spec used in preFormatProcessing() 83 * @brief Append checksum of the FRU area data 85 * @param[in/out] data FRU area data 96 * @brief Append padding bytes for the FRU area data 98 * @param[in/out] data FRU area data 110 * @brief Format End of Individual IPMI FRU Data Section [all …]
|
/openbmc/openbmc/meta-ibm/meta-romulus/recipes-phosphor/configuration/ |
H A D | romulus-yaml-config.bb | 9 file://romulus-ipmi-fru.yaml \ 10 file://romulus-ipmi-fru-bmc.yaml \ 11 file://romulus-ipmi-fru-properties.yaml \ 20 cat romulus-ipmi-fru.yaml romulus-ipmi-fru-bmc.yaml > fru-read.yaml 22 install -m 0644 -D romulus-ipmi-fru-properties.yaml \ 24 install -m 0644 -D fru-read.yaml \ 25 ${D}${datadir}/${BPN}/ipmi-fru-read.yaml 34 ${datadir}/${BPN}/ipmi-fru-read.yaml \
|