History log of /openbmc/openpower-vpd-parser/ibm_vpd_app.cpp (Results 1 – 25 of 113)
Revision Date Author Comments
# 1da52faf 27-Aug-2024 Eddie James <eajames@linux.ibm.com>

Update udev paths for updated device tree paths

The new device tree has a different set up for the AHB and APB, so
update the udev path check appropriately.

Change-Id: I9eeb619bfae304f990f525ff01d5

Update udev paths for updated device tree paths

The new device tree has a different set up for the AHB and APB, so
update the udev path check appropriately.

Change-Id: I9eeb619bfae304f990f525ff01d52e40a53b2b9e
Signed-off-by: Eddie James <eajames@linux.ibm.com>

show more ...


# c023f9bf 25-Aug-2024 Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>

IBM: P12 kernel device tree addition

Added Huygens DTB file
Added Huygens json file

Change-Id: I030964db6398b506877eef84bb94374c90947708
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.c

IBM: P12 kernel device tree addition

Added Huygens DTB file
Added Huygens json file

Change-Id: I030964db6398b506877eef84bb94374c90947708
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>

show more ...


# 08dc31cd 16-Aug-2024 Patrick Williams <patrick@stwcx.xyz>

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda forma

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.

See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.

Change-Id: I917f3a65c985f3df3bb4d7a1bef0a13da54ab7bd
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 3b61ff52 18-Jul-2024 Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>

IBM:P11:support

Added IBM P11 device tree support

Change-Id: Ib2bf48a387f54984901594c9e491dd004ad121ca
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>


# af921756 17-Jun-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

Fix spelling mistakes using codespell

This commit corrects various spelling mistakes throughout the
repository. The corrections were made automatically using `codespell`[1]
tool.

[1]: https://githu

Fix spelling mistakes using codespell

This commit corrects various spelling mistakes throughout the
repository. The corrections were made automatically using `codespell`[1]
tool.

[1]: https://github.com/codespell-project/codespell

Change-Id: Iae81201889d1bb4ca324243b863948cb60420ae7
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# 7ef9c8cd 03-May-2024 Sunny Srivastava <sunnsr25@in.ibm.com>

Enable mux when setting symlink

Muxes, if required, are enabled again at the time of setting symlink
to system specific JSON.

This is done to avoid the scenario where, if system comes up with the
d

Enable mux when setting symlink

Muxes, if required, are enabled again at the time of setting symlink
to system specific JSON.

This is done to avoid the scenario where, if system comes up with the
default JSON, which will not have entry for muxes and will skip
enabling mux at the beginning, resulting in disabled mux.

This change ensures that if there is a change is system configuration
JSON symlink, same is picked and checked for required muxes to get
enabled.

Change-Id: I4e88f24f9ea5bd8e22fa90a50028686a67abc4a0
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...


# 0b33b34f 27-Feb-2024 Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>

VPD:collection: Fix BMC state check failure

we use the BMC state to check if we need to do a recollection and
in the case where the state manager is not up we get a failure.
when we get a failure ,

VPD:collection: Fix BMC state check failure

we use the BMC state to check if we need to do a recollection and
in the case where the state manager is not up we get a failure.
when we get a failure , since we do nto know the state we did not
populate anything and so did not do a recollect , this caused
certain preaction to not run and so some failure happened.we decided
to set the state as not ready on any failure getting state so that
the recollection will happen and we will have the preaction run.

Change-Id: I7887a5d45ae21ae16035a29609b74bbc30dfcdc1
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>

show more ...


# 1bb8716b 13-Feb-2024 Sunny Srivastava <sunnsr25@in.ibm.com>

Publish all EI while priming inventory

The change is to publish all the interfaces marked as extra interfaces
in config JSONs while priming the inventory.

The change was done so that code can pick

Publish all EI while priming inventory

The change is to publish all the interfaces marked as extra interfaces
in config JSONs while priming the inventory.

The change was done so that code can pick up any interfac eadded under
extra interface without any change.

Test:
Inventory objects published all the interfaces listed under EI in the
JSON.

Change-Id: I6fedf5c98345faca864b1e1d8644f84b7dee7ae5
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...


# 2cb6769e 30-Jan-2024 Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>

MUX enable to be done on any BMC reboot

MUX enablement was done only on AC cycle but since the settings do not
persist , we need to set it out of hold state on all BMC reboots.

Change-Id: I6a2c8f19

MUX enable to be done on any BMC reboot

MUX enablement was done only on AC cycle but since the settings do not
persist , we need to set it out of hold state on all BMC reboots.

Change-Id: I6a2c8f1936cce3d96f91b634d59976844e659c72
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>

show more ...


# 63cce0ff 29-Jan-2024 Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>

Do VPD collection manually for ISDIMM

The VPD collection was initially done from the device tree, This has
caused some issues, and so the entries for the ISDIMM were removed from
the device tree. No

Do VPD collection manually for ISDIMM

The VPD collection was initially done from the device tree, This has
caused some issues, and so the entries for the ISDIMM were removed from
the device tree. Now we have the VPD app to manually trigger the ISDIMM
by binding the driver for it, so that the collection will happen via
the udev rule specified.

Once UDEV signal is received for the ISDIMM the service to collect the
VPD is triggered.

Change-Id: I5846d419989f23637f5094b485d771b3418183c0
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>

show more ...


# 9a60c8b4 16-Jan-2024 Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>

Enable MUX by getting it out of hold state

Bring MUX out of hold state by setting the holdidle to 0.
This will be done only if the MUX details are in the system json.
Done during system vpd collecti

Enable MUX by getting it out of hold state

Bring MUX out of hold state by setting the holdidle to 0.
This will be done only if the MUX details are in the system json.
Done during system vpd collection so that it is run only once.

Change-Id: I9d598ca6a6285a05956bdf1d470f1a561f7c1d0d
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>

show more ...


# 37992a65 11-Jul-2023 Sunny Srivastava <sunnsr25@in.ibm.com>

Back up and Restore update

The commit updates the flow of Back up and Restore of system VPD.

Updates:
- Removing call_out_inventory_path tag from the PEL create call
in case there is any issue whil

Back up and Restore update

The commit updates the flow of Back up and Restore of system VPD.

Updates:
- Removing call_out_inventory_path tag from the PEL create call
in case there is any issue while backup or restore.
This was done to avoid any calls from phosphor-logging to
VPD-Manager at this stage as Manager service is not up at this
point resulting in a D-Bus call failure.

- Removing dupicate code as and where possible in the flow.

The commit is an extension of following commit:
https://gerrit.openbmc.org/c/openbmc/openpower-vpd-parser/+/62250/

Tests:
PEL was created duringthe flow and confirmed that there was no
call to VPD-Manager from phosphor-logging.

Tested for all te scenarios w.r.t backup and restore of system
VPD.

Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
Change-Id: I92779247438bf50d907fd7f60ed94dda6fadb2a0

show more ...


# 38ee9c8d 07-Apr-2023 Kantesh Nagaradder <kantesh.nagaradder@ibm.com>

Backup & restore changes for bonnell's system VPD

This commit implements the changes of system backplane VPD backup on
the base banel VPD and restoring it from the base panel VPD

The bonnell BMC is

Backup & restore changes for bonnell's system VPD

This commit implements the changes of system backplane VPD backup on
the base banel VPD and restoring it from the base panel VPD

The bonnell BMC is embedded in the system backplane, so if either fails,
the backplane should be replaced as a whole. So the changes have been
made to backup the system backplane critical keywords on the operator
panel base EEPROM under the VSBK record.

Test:
Case 1: A PEL with error severity is created when the base
panel EEPROM file doesn't exist.

Case 2: A PEL with error severity is created when the base
panel VPD has ecc exceptions.

Case 3: A PEL with error severity is created when the base
panel EEPROM doesn't contain VSBK record.

Case 4: System VPD's critical keywords are backing up in the base panel
VPD

Case 5: System VPD's critical keywords are restoring from the base panel
VPD

Case 6: The VSBK record creation and population of properties on dbus

Case 7: A PEL with warning serverity is created when there is a
mismatch between system VPD & base panel keyword values.

Case 8: A PEL with error serverity is created when both the system VPD
& base panel keyword values are default.

Tests above works as expected.

Change-Id: Ieea6ff4e267518f010c924e2d51a2b080b47e91c
Signed-off-by: Kantesh Nagaradder <kantesh.nagaradder@ibm.com>

show more ...


# c78d887c 10-May-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

Change-Id: Ia442cdc88aaeaab2f1384cc46a56f5cd5e40f2f5
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# f457a3ef 13-Apr-2023 jinuthomas <jinu.joy.thomas@in.ibm.com>

Additional change to support ee1004 driver

changed the code to remove hardcoding of driver
changed read parser executable to take driver as input

Change-Id: I6909e2d56d4572e3ff78610248683a75337bb

Additional change to support ee1004 driver

changed the code to remove hardcoding of driver
changed read parser executable to take driver as input

Change-Id: I6909e2d56d4572e3ff78610248683a75337bbd72
Signed-off-by: jinuthomas <jinu.joy.thomas@in.ibm.com>

show more ...


# d640f696 28-Mar-2023 jinuthomas <jinu.joy.thomas@in.ibm.com>

More changes to support JEDEC format VPD

Change-Id: I7d8e4b0508bc1f92c3f6fd1a924a153ebe23f17e
Signed-off-by: jinuthomas <jinu.joy.thomas@in.ibm.com>


# 18bb985c 16-Nov-2022 girik <giridharikrishnan@gmail.com>

Correction of VPD using ECC

ECC algorithm corrects VPD data in 32:1 bit ratio in the
event of corruption.
Main Test Cases:
1) Check correction of KW in records.
2) Check correction while writing and

Correction of VPD using ECC

ECC algorithm corrects VPD data in 32:1 bit ratio in the
event of corruption.
Main Test Cases:
1) Check correction of KW in records.
2) Check correction while writing and reading VPD.
3) Check for Module VPD correction.

Signed-off-by: Giridhari Krishna <giridharikrishnan@gmail.com>
Change-Id: I48a3db18df9d3a2aecde814610ab1b357e6f310d

show more ...


# aca61373 24-Jan-2023 Priyanga Ramasamy <priyanga24@in.ibm.com>

Do not populate presence if handlePresence=false

This commit is to skip populating Present property for those frus whose
handlePresence is made false explicitly in VPD JSON.

This is required in cas

Do not populate presence if handlePresence=false

This commit is to skip populating Present property for those frus whose
handlePresence is made false explicitly in VPD JSON.

This is required in cases where the FRU has its own VPD, yet its
presence gets handled by other application and not by VPD parser app.

Test:
Test works as expected.
To note:
phosphor-fan-monitor identifies and sets the fan presence before
collecting system VPD. Journal log be like,

Feb 14 12:54:08 ever6bmc phosphor-fan-monitor[601]: Fan /system/chassis/motherboard/fan0 presence state change to true
Feb 14 12:54:09 ever6bmc systemd[1]: Finished Wait for /xyz/openbmc_project/led/groups/bmc_booted.
Feb 14 12:54:09 ever6bmc phosphor-psu-monitor[604]: Binding device driver. path: /sys/bus/i2c/drivers/ibm-cffps/bind device: 3-006b
Feb 14 12:54:09 ever6bmc phosphor-psu-monitor[604]: Failed binding or unbinding device. errno=16
Feb 14 12:54:09 ever6bmc phosphor-psu-monitor[604]: Updating inventory present property. present:true invpath:/system/chassis/motherboard/powersupply3 name:powersupply3
Feb 14 12:54:09 ever6bmc systemd[1]: Starting Wait for /xyz/openbmc_project/led/groups...
Feb 14 12:54:09 ever6bmc systemd[1]: Starting Set the Asserted property of all the LED groups to false...
Feb 14 12:54:09 ever6bmc systemd[1]: Starting Update BIOS attr table with host firmware well-known names...
Feb 14 12:54:09 ever6bmc systemd[1]: Started Network IPMI daemon.
Feb 14 12:54:09 ever6bmc systemd[1]: Started Network IPMI daemon.
Feb 14 12:54:09 ever6bmc systemd[1]: Starting System VPD Collection...

Tested in the above mentioned scenario:
-> busctl set-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/
inventory/system/chassis/motherboard/fan0 xyz.openbmc_project.Inventory.Item
Present b false

->busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
xyz.openbmc_project.Inventory.Item interface - - -
.Present property b false emits-change writable
.PrettyName property s "fan0"

-> busctl set-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/
inventory/system/chassis/motherboard xyz.openbmc_project.Inventory.Item Present b false

->systemctl restart system-vpd.service

Result:
busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
xyz.openbmc_project.Inventory.Item interface - - -
.Present property b false emits-change writable
.PrettyName property s "fan0"

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I775380792b0f031efdff8c42e236b822ba3c2b45

show more ...


# 24942235 05-Jan-2023 Priyanga Ramasamy <priyanga24@in.ibm.com>

Rewordings required in logging PEL

This commit rewords some of the comments and variables
in restore VPD PEL code and in vpd-tool restore function.

Eg:
>>Cache value -> Backup value
[As backup

Rewordings required in logging PEL

This commit rewords some of the comments and variables
in restore VPD PEL code and in vpd-tool restore function.

Eg:
>>Cache value -> Backup value
[As backup need not be in cache only]
>>Blank data -> Default data
[As default data need not be blank only]
>>Hardware data -> Primary data
The VPD backup values and backup memory are machine specific.

Thus providing generic terms makes the code statements/comments
more reliable w.r.t any machine.

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I34fcd44e94b928db0fc30cda94eb8f03e6e87987

show more ...


# 952d6c58 07-Nov-2022 Priyanga Ramasamy <priyanga24@in.ibm.com>

Enhance system VPD map

This commit enhances system VPD map to incorporate useful
information about each critical keywords like the default
keyword value, if the keyword is restorable or not, if the

Enhance system VPD map

This commit enhances system VPD map to incorporate useful
information about each critical keywords like the default
keyword value, if the keyword is restorable or not, if the
keyword is resettable at manufacturing or not, if a PEL
required or not when failed to restore the keywords.

Tested the following,
1. system VPD restore on cache via parser
2. system VPD restore on hardware via vpd-manager
3. system VPD restore via vpd-tool
4. system VPD reset via vpd-tool

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I29ae6016f6d84342a8ad91ba72617a45121cf8a6

show more ...


# f612368f 02-Dec-2022 Priyanga Ramasamy <priyanga24@in.ibm.com>

Defect fix in logging system VPD mismatch PEL

This commit has the below fixes in ibm-read-vpd app.

1. Fixed the incorrect dbus path passed in CALLOUT_INVENTORY_PATH
when there is a system VPD misma

Defect fix in logging system VPD mismatch PEL

This commit has the below fixes in ibm-read-vpd app.

1. Fixed the incorrect dbus path passed in CALLOUT_INVENTORY_PATH
when there is a system VPD mismatch between cache and hardware.

2. Fixed the incorrect PEL interface logged when there is a
system VPD mismatch between cache and hardware.

Test:
Ensured that "com.ibm.VPD.Error.SystemVPDMismatch" PEL interface
is logged and "/xyz/openbmc_project/inventory/system/chassis"
"/motherboard" inventory path is called out when there is a
system VPD mismatch.

peltool -i 0x500024AB
{
"Private Header": {
"Section Version": "1",
"Sub-section type": "0",
"Created by": "0x4000",
"Created at": "12/05/2022 05:58:47",
"Committed at": "12/05/2022 05:58:47",
"Creator Subsystem": "BMC",
"CSSVER": "",
"Platform Log Id": "0x500024AB",
"Entry Id": "0x500024AB",
"BMC Event Log Id": "314"
},
"User Header": {
"Section Version": "1",
"Sub-section type": "0",
"Log Committed by": "0x2000",
"Subsystem": "CEC Hardware - VPD Interface",
"Event Scope": "Entire Platform",
"Event Severity": "Predictive Error",
"Event Type": "Not Applicable",
"Action Flags": [
"Service Action Required",
"Report Externally",
"HMC Call Home"
],
"Host Transmission": "Not Sent",
"HMC Transmission": "Not Sent"
},
"Primary SRC": {
"Section Version": "1",
"Sub-section type": "1",
"Created by": "0x4000",
"SRC Version": "0x02",
"SRC Format": "0x55",
"Virtual Progress SRC": "False",
"I5/OS Service Event Bit": "False",
"Hypervisor Dump Initiated":"False",
"Backplane CCIN": "2E2D",
"Terminate FW Error": "False",
"Deconfigured": "False",
"Guarded": "False",
"Error Details": {
"Message": "A system VPD restoration error"
"occurred."
},
"Valid Word Count": "0x09",
"Reference Code": "BD554008",
"Hex Word 2": "00080055",
"Hex Word 3": "2E2D0010",
"Hex Word 4": "00000000",
"Hex Word 5": "00000000",
"Hex Word 6": "00000000",
"Hex Word 7": "00000000",
"Hex Word 8": "00000000",
"Hex Word 9": "00000000",
"Callout Section": {
"Callout Count": "2",
"Callouts": [{
"FRU Type": "Normal Hardware FRU",
"Priority": "Mandatory, replace all with this"
"type as a unit",
"Location Code": "U78DA.ND0.WZS007H-P0",
"Part Number": "02WG676",
"CCIN": "2E2D",
"Serial Number": "YF33UF19Y007"
}, {
"FRU Type": "Maintenance Procedure Required",
"Priority": "Mandatory, replace all with this"
"type as a unit",
"Procedure": "BMC0007"
}]
}
},
"Extended User Header": {
"Section Version": "1",
"Sub-section type": "0",
"Created by": "0x2000",
"Reporting Machine Type": "9105-22B",
"Reporting Serial Number": "1392BE0",
"FW Released Ver": "",
"FW SubSys Version": "fw1040.00-1.2",
"Common Ref Time": "00/00/0000 00:00:00",
"Symptom Id Len": "20",
"Symptom Id": "BD554008_2E2D0010"
},
"Failing MTMS": {
"Section Version": "1",
"Sub-section type": "0",
"Created by": "0x2000",
"Machine Type Model": "9105-22B",
"Serial Number": "1392BE0"
},
"User Data 0": {
"Section Version": "1",
"Sub-section type": "1",
"Created by": "0x2000",
"BMCLoad": "0.22 0.41 0.33",
"BMCState": "Ready",
"BMCUptime": "0y 0d 0h 13m 6s",
"BootState": "Unspecified",
"ChassisState": "Off",
"FW Version ID": "fw1040.00-1.2-2-g1859836242-dirty",
"HostState": "Off",
"System IM": "50001001"
},
"User Data 1": {
"Section Version": "1",
"Sub-section type": "1",
"Created by": "0x2000",
"CALLOUT_INVENTORY_PATH": "/xyz/openbmc_project/inventory/system"
"/chassis/motherboard",
"DESCRIPTION": "VPD data mismatch on cache and hardware for"
"record: LXR0 and keyword: LX",
"Value on Cache: ": "0x31 0x0 0x4 0x1 0x0 0x30 0x0 0x71 ",
"Value read from EEPROM: ": "0x64 0x65 0x4 0x1 0x0 0x30 0x0 0x71 "
}
}

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I0b94b60d03f4223e5c14162e859dd45e76a4c2fb

show more ...


# dedb5a63 19-Dec-2022 Santosh Puranik <santosh.puranik@in.ibm.com>

Add Bonnell Support

-- Add initial support for Bonnell
-- Miscellaneous fixes in the VPD app:
Set Enabled property as true by default.
Capture the mismatched data for system VPD in the PEL.

Add Bonnell Support

-- Add initial support for Bonnell
-- Miscellaneous fixes in the VPD app:
Set Enabled property as true by default.
Capture the mismatched data for system VPD in the PEL.
Clear CCIN for FRUs where the VPD cannot be collected.

Signed-off-by: Santosh Puranik <santosh.puranik@in.ibm.com>
Change-Id: I8c6c82c1d3d6aa09eaafff67832462dd3c31ebb4

show more ...


# 6a1bd39b 02-Jun-2021 Sunny Srivastava <sunnsr25@in.ibm.com>

Single FRU VPD collection

This commit implements a Dbus Api to collect VPD of a given FRU
by launching the parser exe asynchronously.

The caller is supposed to update Present property for that FRU

Single FRU VPD collection

This commit implements a Dbus Api to collect VPD of a given FRU
by launching the parser exe asynchronously.

The caller is supposed to update Present property for that FRU
as false on Dbus before calling this Api and need to listen for
Present property change signal to mark the collection of VPD
complete for the FRU.

One of the use case for this api is to collect VPD for FRU
undergoing concurrent maintenance.

Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
Change-Id: Idc44d6bc05deb04f3b9097ccf3129f5d2b11eaf0

show more ...


# a2ddc96e 29-Jun-2022 Sunny Srivastava <sunnsr25@in.ibm.com>

Async request to create PEL

To avoid any deadlocks between phosphor-logging and vpd-manager
service a wrapper around request to create PEL is created
which enables vpd-manager to make async requests

Async request to create PEL

To avoid any deadlocks between phosphor-logging and vpd-manager
service a wrapper around request to create PEL is created
which enables vpd-manager to make async requests to create PEL.

It also implements a new exception type to throw any GPIO
related exception. This was required to throw specific
exception.

Test:
Scenario 1:
While vpd-manager logs a pel with call out to an inventory
item.
It should be checked that both the services do not enter into
a deadlock situation.

Scenario 2:
Any third process is requesting to log PEL with call out
to an inventory item in a loop.
In the mean time vpd-manager also requests to log a PEL
with or without call out to inventory item.
All the pels should be logged correctly in the system.
No deadlock should appear.

Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
Change-Id: I0efaf6918e679ca94808fc70d747c843a50eaf78

show more ...


# f31a91bc 09-Jun-2022 Sunny Srivastava <sunnsr25@in.ibm.com>

Update vpd read and write flow

The commit implement changes to log Pel and call out
FRU and record in case of any ECC failure while reading
the vpd data for the FRU and continue with the processing

Update vpd read and write flow

The commit implement changes to log Pel and call out
FRU and record in case of any ECC failure while reading
the vpd data for the FRU and continue with the processing
of rest of the records.

In case of write, BMC reboot is blocked till the VPD is
updated. Doing this will restrict any data/Ecc corruption
due to BMC reboot while VPD data is being updated.

Tested:
Corrupted vpd for tpm_wilson then triggered collection of
vpd for the FRU.
Pel was logged calling out the FRU

'''
root@rain127bmc:~# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/0-0051/eeprom
root@rain127bmc:~# peltool -a
[
{
"Private Header": {
"Section Version": "1",
"Sub-section type": "0",
"Created by": "0x4000",
"Created at": "06/10/2022 06:36:59",
"Committed at": "06/10/2022 06:36:59",
"Creator Subsystem": "BMC",
"CSSVER": "",
"Platform Log Id": "0x50002B35",
"Entry Id": "0x50002B35",
"BMC Event Log Id": "10"
},
"User Header": {
"Section Version": "1",
"Sub-section type": "0",
"Log Committed by": "0x2000",
"Subsystem": "CEC Hardware - VPD Interface",
"Event Scope": "Entire Platform",
"Event Severity": "Predictive Error",
"Event Type": "Not Applicable",
"Action Flags": [
"Service Action Required",
"Report Externally",
"HMC Call Home"
],
"Host Transmission": "Not Sent",
"HMC Transmission": "Not Sent"
},
"Primary SRC": {
"Section Version": "1",
"Sub-section type": "1",
"Created by": "0x4000",
"SRC Version": "0x02",
"SRC Format": "0x55",
"Virtual Progress SRC": "False",
"I5/OS Service Event Bit": "False",
"Hypervisor Dump Initiated":"False",
"Backplane CCIN": "2E43",
"Terminate FW Error": "False",
"Deconfigured": "False",
"Guarded": "False",
"Error Details": {
"Message": "A VPD ecc exception occurred."
},
"Valid Word Count": "0x09",
"Reference Code": "BD554002",
"Hex Word 2": "00080255",
"Hex Word 3": "2E430010",
"Hex Word 4": "00000000",
"Hex Word 5": "00000000",
"Hex Word 6": "00000000",
"Hex Word 7": "00000000",
"Hex Word 8": "00000000",
"Hex Word 9": "00000000",
"Callout Section": {
"Callout Count": "1",
"Callouts": [{
"FRU Type": "Normal Hardware FRU",
"Priority": "Mandatory, replace all with this type as a unit",
"Location Code": "U78DB.ND0.WZS002U-P0-C22",
"Part Number": "02WF429",
"CCIN": "6B59",
"Serial Number": "Y131UF09S00H"
}]
}
},
"Extended User Header": {
"Section Version": "1",
"Sub-section type": "0",
"Created by": "0x2000",
"Reporting Machine Type": "9105-42A",
"Reporting Serial Number": "13BE990",
"FW Released Ver": "",
"FW SubSys Version": "fw1020.00-58.9",
"Common Ref Time": "00/00/0000 00:00:00",
"Symptom Id Len": "20",
"Symptom Id": "BD554002_2E430010"
},
"Failing MTMS": {
"Section Version": "1",
"Sub-section type": "0",
"Created by": "0x2000",
"Machine Type Model": "9105-42A",
"Serial Number": "13BE990"
},
"User Data 0": {
"Section Version": "1",
"Sub-section type": "1",
"Created by": "0x2000",
"BMCState": "Ready",
"BootState": "SecondaryProcInit",
"ChassisState": "On",
"FW Version ID": "fw1020.00-58.9-3-gb29698f8cf",
"HostState": "Running",
"System IM": "50001000"
},
"User Data 1": {
"Section Version": "1",
"Sub-section type": "1",
"Created by": "0x2000",
"CALLOUT_INVENTORY_PATH": "/xyz/openbmc_project/inventory/system/chassis/motherboard/tpm_wilson",
"DESCRIPTION": "ERROR: ECC check did not pass for the Record:VINI"
}
}
]
'''

Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
Change-Id: Ie7c7fff5699d8b89d5aa0995f4074ccb3fdd6c37

show more ...


12345