History log of /openbmc/openpower-vpd-parser/vpd-manager/ (Results 76 – 100 of 136)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
834c078614-Feb-2023 Priyanga Ramasamy <priyanga24@in.ibm.com>

Defect fix in restoring system VPD via vpd-manager

In vpd-manager restore api, the keyword defaults should be taken from
the system vpd map. Instead it assumes blank value as default for all
keyword

Defect fix in restoring system VPD via vpd-manager

In vpd-manager restore api, the keyword defaults should be taken from
the system vpd map. Instead it assumes blank value as default for all
keywords.
This fails to restore UTIL D0 keyword as its default value is 0x00.

This commit fixes the issue.

Test:
~#vpd-tool -w -H -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R UTIL -K D0 -V 0x00

~# vpd-tool --fixSystemVPD
===============================================================================================================================================================================================
S.No Record Keyword Data On BMC Data On System Backplane Data Mismatch
===============================================================================================================================================================================================
1 UTIL D0 0x01 0x00 YES

~#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

~#vpd-tool --fixSystemVPD

===============================================================================================================================================================================================
S.No Record Keyword Data On BMC Data On System Backplane Data Mismatch
===============================================================================================================================================================================================
1 UTIL D0 0x01 0x01 NO

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

show more ...

952d6c5807-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 ...

ab2304d210-Jan-2023 Sunny Srivastava <sunnsr25@in.ibm.com>

Enable CM for NVMe Drives

Since NVMe backplane is not CMable whereas NVMe drives are
CMable, code has been modified to loop through the list of
FRUs under an EEPROM path instead of just checking the

Enable CM for NVMe Drives

Since NVMe backplane is not CMable whereas NVMe drives are
CMable, code has been modified to loop through the list of
FRUs under an EEPROM path instead of just checking the base
FRU for CMable flag.

Test:
Trigger collectFRUVPD using busctl command for NVMe drive
and check if the parser has been re-trigerred and returns
successfully.

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

show more ...

bc59947719-Dec-2022 Santosh Puranik <santosh.puranik@in.ibm.com>

manager: Fixes to CM related APIs

This commit fixes the following issues with manager APIs:

-- Handle inventory paths with and without a inventory prefix.
-- Properly handle GpioExceptions wherever

manager: Fixes to CM related APIs

This commit fixes the following issues with manager APIs:

-- Handle inventory paths with and without a inventory prefix.
-- Properly handle GpioExceptions wherever postFailAction is called.
-- Clean CCIN when deleteFRUVPD is called. This helps any EM config
files that latch onto the CCIN to detect that the FRU is gone.

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

show more ...

5ef6ccc030-May-2022 Sunny Srivastava <sunnsr25@in.ibm.com>

Code fix to handle Dbus failure

The commit implement changes to catch and log error instead
of re throwing a run time exception in case there is any Dbus
failure while calling phosphor-logging servi

Code fix to handle Dbus failure

The commit implement changes to catch and log error instead
of re throwing a run time exception in case there is any Dbus
failure while calling phosphor-logging service.

It was required as there is no need to re throw runtime error
in that case.

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

show more ...

41d498c116-Sep-2021 Alpana Kumari <alpankum@in.ibm.com>

CM: Bind the PCIe devices with LED driver

Bind the LED driver to the device if vpd collection done successfully
on adding the FRU to the system concurrently and unbind if FRU removed.
This binding w

CM: Bind the PCIe devices with LED driver

Bind the LED driver to the device if vpd collection done successfully
on adding the FRU to the system concurrently and unbind if FRU removed.
This binding will be required pca chip address which is defined in
inventory json for each cable card.

Test:

'''
sh-5.1# busctl call com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager CollectFRUVPD o "/system/chassis/motherboard/pcieslot10/pcie_card10"
sh-5.1#
sh-5.1# busctl call com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager deleteFRUVPD o "/system/chassis/motherboard/pcieslot10/pcie_card10"
sh-5.1#
sh-5.1# i2cdetect -y 11
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- 0c -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- 1b -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- 4d -- --
50: UU -- -- 53 -- -- -- -- -- -- -- -- -- -- -- --
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
sh-5.1# busctl call com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager CollectFRUVPD o "/system/chassis/motherboard/pcieslot10/pcie_card10"
sh-5.1# i2cdetect -y 11
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- 0c -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- 1b -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- 4d -- --
50: UU -- -- 53 -- -- -- -- -- -- -- -- -- -- -- --
60: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
sh-5.1# exit
exit
===============================================================================================

Corresponding response from vpd-manager-
CollectFRUVPD :

Change-Id: I629fd06df2a9f1550b1a0bf8e0a1abed853d0475
-------------
Setting GPIO: SLOT10_PRSNT_EN_RSVD to 1
Executing driver binding for chip address - 11-0060
sh: line 1: echo: write error: Device or resource busy <---------- When device already bound

deleteFRUVPD :
-------------
Unbinding device- 11-0060 <---- Unbind the device

CollectFRUVPD :
-------------
Setting GPIO: SLOT10_PRSNT_EN_RSVD to 1
Executing driver binding for chip address - 11-0060 <---Bind it again

===============================================================================================
'''

Signed-off-by: Alpana Kumari <alpankum@in.ibm.com>
Change-Id: I1d886d31e0e36c21d8b739c4b3d3e054ec876b6d

show more ...

6a1bd39b02-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 ...

28abd6e428-Jul-2021 Sunny Srivastava <sunnsr25@in.ibm.com>

Implementation of deleteFRUVPD api

The api sets present property of given FRU as false.
If the present property is already set to false, it will
log error.

One of the use case:
This api is to be ca

Implementation of deleteFRUVPD api

The api sets present property of given FRU as false.
If the present property is already set to false, it will
log error.

One of the use case:
This api is to be called before requesting VPD parser to
collect VPD of any given FRU in case of concurrent
maintenance.

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

show more ...

523af2e014-Feb-2022 Sunny Srivastava <sunnsr25@in.ibm.com>

Shift to boost asio library

This commit shifts vpd manager from sdbusplus event loop to
boost io_context event loop.
The shift was done to have a more flexible way to perform
async Dbus calls.
For e

Shift to boost asio library

This commit shifts vpd manager from sdbusplus event loop to
boost io_context event loop.
The shift was done to have a more flexible way to perform
async Dbus calls.
For example read/write of vpd data can be performed
asynchronously.

It also removes dependency of Manager class on the interface
class created as a part of Phosphor-Dbus-Interface repo.

Test:
- Introspect com.ibm.VPD.Manager /com/ibm/VPD/Manager to ensure
that all the methods exposed under com.ibm.VPD.Manager interface
matches to the ones documented under PDI repo.

- Make DBus call to each of the exposed api to ensure that the
funcation calls are working fine.

-To ensure bios handler call back is working.
Stop vpd-manager service.
Stop pldm service.
Start vpd-manager service
Start pldm service.
Should recieve callback.

-To ensure gpio call back
std::cout were added to callback function being trigerred on
timer expiration and the same were verified in journal.

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

show more ...

7a975f0b07-Dec-2022 Patrick Williams <patrick@stwcx.xyz>

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* bus_t
* exception_t
* manager_t
* match_t
* message_t
* object_t
* slot_t

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

show more ...

a2ddc96e29-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 ...

fdf9ff2a15-Jun-2022 Sunny Srivastava <sunnsr25@in.ibm.com>

Check for essential FRUs

Some FRUs are marked as essential in the inventory JSON, which
implies that those FRUs should be present in the system at
power on.

The commit checks for presence of those

Check for essential FRUs

Some FRUs are marked as essential in the inventory JSON, which
implies that those FRUs should be present in the system at
power on.

The commit checks for presence of those FRUs when the system is
powered on.
In case any FRU in the list is found missing, appropriate
PEL is logged.

Also, as it is not possible to say if the reason for GPIO failures
are hardware or firmware related. GPIO PELs has been modified
to just have description and no call outs and to be logged in place.

Commit link for PEL interface:
https://gerrit.openbmc.org/c/openbmc/phosphor-logging/+/54715

'''
Test steps(rainier):
Check for present property for fru path
/xyz/openbmc_project/inventory/system/chassis/motherboard/base_op_panel_blyth

if it is false then proceed else set the property to false using
busctl set-property command.

execute obmcutil poweron
PEL should be logged for missing essential fru.
'''

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

show more ...

f31a91bc09-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 ...

e008432a27-Sep-2022 Priyanga Ramasamy <priyanga24@in.ibm.com>

Use namespace std in place

This commit uses std in place in header files rather than
using namespace.

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

Use namespace std in place

This commit uses std in place in header files rather than
using namespace.

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

show more ...

84d61e8222-Jul-2022 Priyanga Ramasamy <priyanga24@in.ibm.com>

Bug fix in initializing VPD with BIOS attribute

When syncing FCO attribute with RG keyword in system VPD,
there occurs a corner case where VSYS-RG keyword is not
programmed in VPD and has all ASCII

Bug fix in initializing VPD with BIOS attribute

When syncing FCO attribute with RG keyword in system VPD,
there occurs a corner case where VSYS-RG keyword is not
programmed in VPD and has all ASCII blanks(32 in decimal)
and if FCO BIOS attribute value is 32, then existing logic
fails to initialise the VPD with the BIOS attribute.

The existing code checks if the value in VPD is same as the FCO
value. The check compares only the LSB of the VPD value instead of
the complete value. This commit has a fix for it.

Test:

Case 1: Value in VPD is blank and BIOS FCO value is 32

busctl set-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.VSYS RG ay 4 32 32 32 32

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.VSYS RG
ay 4 32 32 32 32

busctl call xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager GetAttribute s "hb_field_core_override"
svv "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Integer" x 0 x 0

busctl call xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager SetAttribute sv "hb_field_core_override" x 32

busctl call xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager GetAttribute s "hb_field_core_override"
svv "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Integer" x 32 x 0

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.VSYS RG
ay 4 0 0 0 32

===================================================================

Case 2: Value in VPD is not blank and BIOS FCO value is 24(numerically different values)

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.VSYS RG
ay 4 0 0 0 32

busctl call xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager SetAttribute sv "hb_field_core_override" x 24

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.VSYS RG
ay 4 0 0 0 24

==================================================================

Case 3: Value in VPD and BIOS FCO value are (equal) 0 (null)

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.VSYS RG
ay 4 0 0 0 0

busctl call xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager SetAttribute sv "hb_field_core_override" x 0

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.VSYS RG
ay 4 0 0 0 0

===================================================================

Case 4: Value in VPD is blank and BIOS FCO value is 16

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.VSYS RG
ay 4 32 32 32 32

busctl call xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager SetAttribute sv "hb_field_core_override" x 16

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.VSYS RG
ay 4 0 0 0 16

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

show more ...

a97b63eb20-May-2022 Santosh Puranik <santosh.puranik@in.ibm.com>

manager: Sync pvm_clear_nvram BIOS Attribute

This commit adds support to synchronize the pvm_clear_nvram BIOS
attribute to bit 2 in the UTIL/D1 keyword of the motherboard VPD.

The attribute will be

manager: Sync pvm_clear_nvram BIOS Attribute

This commit adds support to synchronize the pvm_clear_nvram BIOS
attribute to bit 2 in the UTIL/D1 keyword of the motherboard VPD.

The attribute will be used by PHYP to determine when to clear their
NVRAM content.

A value of "Disabled" in the BIOS attribute maps to the D1:2 bit being 0
and a value of "Enabled: maps to the D1:2 bit being 1.

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

show more ...

b2c2ccc214-May-2022 Santosh Puranik <santosh.puranik@in.ibm.com>

manager: Add some attributes to BIOS restore

This commit adds support to synchronize the pvm_keep_and_clear
and pvm_create_default_lpar BIOS attributes to the UTIL/D1
keyword in the motherboard VPD.

manager: Add some attributes to BIOS restore

This commit adds support to synchronize the pvm_keep_and_clear
and pvm_create_default_lpar BIOS attributes to the UTIL/D1
keyword in the motherboard VPD.

The use-case for doing this is the same as the other attributes we
already handle - that to restore them post a factory reset.

pvm_keep_and_clear - Backed up to UTIL/D1, bit 0
pvm_create_default_lpar - Backed up to UTIL/D1, bit 1

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

show more ...

c99a0b0508-Jun-2022 Priyanga Ramasamy <priyanga24@in.ibm.com>

vpd-tool: Fix for Hardware write option

With this commit, vpd-tool has a fix in Hardware (-H) write
option to update only in hardware and not in cache.

This commit also has an added change. User ca

vpd-tool: Fix for Hardware write option

With this commit, vpd-tool has a fix in Hardware (-H) write
option to update only in hardware and not in cache.

This commit also has an added change. User can provide
VPD offset(--seek) value while using read from hardware and write
to hardware options. Providing offset value(--seek) is optional.
By default offset value is 0. This option is mainly usefull
when providing an EEPROM path which is not present in VPD json.

Test: Tested on everest.

CASE 1: Using Hardware write option will update only hardware and not cache.

root@ever20bmc:/tmp# ./vpd-tool -w -H -O /sys/bus/spi/drivers/at25/spi12.0/eeprom -R VINI -K CC --seek 0x30000 -V 0x32

root@ever20bmc:/tmp# ./vpd-tool -r -H -O /sys/bus/spi/drivers/at25/spi12.0/eeprom -R VINI -K CC --seek 0x30000
{
"/sys/bus/spi/drivers/at25/spi12.0/eeprom": {
"CC": "2C5F"
}
}
root@ever20bmc:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/dcm0/cpu0 -R VINI -K CC
{
"/system/chassis/motherboard/dcm0/cpu1": {
"CC": "5C5F"
}
}

CASE 2: Using normal write option will update both hardware and cache

root@ever20bmc:/tmp# ./vpd-tool -w -O /system/chassis/motherboard/dcm0/cpu1 -R VINI -K CC -V 0x64

root@ever20bmc:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/dcm0/cpu1 -R VINI -K CC
{
"/system/chassis/motherboard/dcm0/cpu1": {
"CC": "dC5F"
}
}
root@ever20bmc:/tmp# ./vpd-tool -r -H -O /sys/bus/spi/drivers/at25/spi22.0/eeprom -R VINI -K CC --seek 0x30000

{
"/sys/bus/spi/drivers/at25/spi22.0/eeprom": {
"CC": "dC5F"
}
}

CASE 3: Providing wrong offset value during hardware read

root@ever20bmc:/tmp# ./vpd-tool -r -H -O /sys/bus/i2c/drivers/at24/28-0051/eeprom -R VINI -K CC --seek 19
VHDR record not found
Did you provide a valid offset? By default VPD offset is taken as 0. To input offset, use --offset. Refer vpd-tool help.

CASE 4: Providing offset value during normal read operation. As mentioned, there'll be no impact as the offset value will be
valid only while using --Hardware/-H option.

root@ever20bmc:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/dcm0/cpu1 -R VINI -K CC --seek 0
{
"/system/chassis/motherboard/dcm0/cpu1": {
"CC": "5C5F"
}
}

CASE 5: Providing wrong offset value during hardware write

root@ever20bmc:/tmp# ./vpd-tool -w -H -O /sys/bus/spi/drivers/at25/spi12.0/eeprom -R VINI -K CC --seek 20 -V 0x53
Could not find start tag in VPD /sys/bus/spi/drivers/at25/spi12.0/eeprom
Did you provide a valid offset? By default VPD offset is taken as 0. To input offset, use --seek. Refer vpd-tool help.

CASE 6: Providing offset value during normal write. As mentioned, there'll be no impact as the offset value will be valid
only while using --Hardware/-H option.

root@ever8bmc:/tmp# ./vpd-tool -w -O /system/chassis/motherboard/dasd_backplane/panel1 -R VMPU -K VZ -V 0x64 --seek 19
root@ever8bmc:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/dasd_backplane/panel1 -R VMPU -K VZ
{
"/system/chassis/motherboard/dasd_backplane/panel1": {
"VZ": "d1"
}
}

CASE 7: Reading and Writing on a EEPROM path which is not a key in JSON.

root@ever8bmc:/tmp# ./vpd-tool -w -O /sys/bus/spi/drivers/at25/spi13.0/eeprom -R VMPU -K VZ --seek 196608 -H -V 0x64
root@ever8bmc:/tmp#
root@ever8bmc:/tmp# ./vpd-tool -r -O /sys/bus/spi/drivers/at25/spi13.0/eeprom -R VMPU -K VZ --seek 196608 -H
{
"/sys/bus/spi/drivers/at25/spi13.0/eeprom": {
"VZ": "d1"
}
}

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

show more ...

2eb0176c22-Jul-2022 Patrick Williams <patrick@stwcx.xyz>

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* bus_t
* exception_t
* manager_t
* match_t
* message_t
* object_t
* slot_t

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

show more ...

6b2b537402-Jun-2022 Santosh Puranik <santosh.puranik@in.ibm.com>

manager: Move System VPD Restore to Manager

This commit moves the system VPD restore functionality to the VPD
manager.

This ensures there are no race conditions with doing it in the parser
process

manager: Move System VPD Restore to Manager

This commit moves the system VPD restore functionality to the VPD
manager.

This ensures there are no race conditions with doing it in the parser
process when the manager is synchronizing BIOS attributes to VPD.

Tested: I tested both the VPD restore as well as the BIOS attribute sync
paths. They tested out fine.

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

show more ...

f7f8da6f06-May-2022 Santosh Puranik <santosh.puranik@in.ibm.com>

manager: Update BIOS Attributes only if needed

This commit adds a check before updating the FCO and AMM
BIOS attributes. If the attributes are already the value that
we are trying to update, we skip

manager: Update BIOS Attributes only if needed

This commit adds a check before updating the FCO and AMM
BIOS attributes. If the attributes are already the value that
we are trying to update, we skip the BIOS attribute update.

This helps eliminate unnecessary BIOS updates being sent to PHYP.

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

show more ...

f2d3b53d19-Apr-2022 Santosh Puranik <santosh.puranik@in.ibm.com>

manager: Save and Restore BIOS Attributes

This commit saves any updates made to BIOS attributes
to VPD.

It also restores the attributes from the VPD when we
start VPD manager.

Signed-off-by: Santo

manager: Save and Restore BIOS Attributes

This commit saves any updates made to BIOS attributes
to VPD.

It also restores the attributes from the VPD when we
start VPD manager.

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

show more ...

a4a2adfa03-Feb-2022 Priyanga Ramasamy <priyanga24@in.ibm.com>

VPD ECC shared library

This commit makes the VPD ECC source into a shared library
and links the shared library with other executables which
are dependant on VPD ECC.

Since the ECC source file is co

VPD ECC shared library

This commit makes the VPD ECC source into a shared library
and links the shared library with other executables which
are dependant on VPD ECC.

Since the ECC source file is confidential, we need to share the
ECC as a shared library to the IBM Power customers.

Test:
Tested on simics:
1. Corrupted the vpd data.
root@p10bmc:/usr/lib# dd if=/dev/zero of=/sys/bus/i2c/drivers/at24/7-0050/eeprom bs=1 count=2 seek=184
2+0 records in
2+0 records out

root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom
ERROR: ECC check did not pass for the Record:VINI

2. VPD Parser parsed successfully for a valid vpd
root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom
<no error>

3.ECC Code worked fine with VPD-Manager
root@p10bmc:/usr/lib# vpd-tool -w -O /system/chassis/motherboard/base_op_panel_blyth -R VINI -K PN -V "PN34"
root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom
root@p10bmc:/usr/lib#
root@p10bmc:/usr/lib#
root@p10bmc:/usr/lib# vpd-tool -w -O /system/chassis/motherboard/base_op_panel_blyth -R VINI -K PN -V "PN12"
root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom

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

show more ...

bf78ed8820-Apr-2022 Santosh Puranik <santosh.puranik@in.ibm.com>

vpd-manager: Fix compile failure.

Manager needs common_utility.hpp to get to callPIM

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

b62f605406-Apr-2022 Santosh Puranik <santosh.puranik@in.ibm.com>

manager: Sync AssetTag Property

The AssetTag property on the system inventory object is used to
hold the custom system name. This property is settable by the user via
Redfish and by the host via PLD

manager: Sync AssetTag Property

The AssetTag property on the system inventory object is used to
hold the custom system name. This property is settable by the user via
Redfish and by the host via PLDM.

The Redfish server and PLDM daemon both use the
org.freedesktop.DBus.Properties Set method to set this on D-Bus.

However, this is not persisted by PIM, which only persists properties
that get set via Notify call.

This commit adds a workaround to the VPD manager code to listen for
property changed events on the AssetTag property and relay it to a
Notify call so that the custom name is persisted.

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

show more ...

123456