History log of /openbmc/openpower-pnor-code-mgmt/functions.cpp (Results 1 – 22 of 22)
Revision Date Author Comments
# 96442c88 16-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: I014e7670ca4ba57f7e1b80e96c001474cf7a6676
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# 749bdcc9 17-Jan-2024 Adriana Kobylak <anoo@us.ibm.com>

functions: Replace IBMCompatibleSystem with Compatible

The Compatible interface will be replacing the IBMCompatibleSystem
interface. Reference:
https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-int

functions: Replace IBMCompatibleSystem with Compatible

The Compatible interface will be replacing the IBMCompatibleSystem
interface. Reference:
https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/68125
https://gerrit.openbmc.org/c/openbmc/entity-manager/+/68128

Tested: Verified the symlinks for the PNOR files were created
successfully on a Rainier 4U system with the new Compatible interface
changes.

Change-Id: Idf2511d6616723bd21c945fe228499ae9eaf2fea
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# af29f723 20-Oct-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-17 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-17 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: I0354bf7192c66505b2173aaece3525940a5caa06
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 7fb6c346 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: I4530f5b9df4f5898e26a2eef7efcf82e9728197f
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 75352b42 20-Sep-2022 Nan Zhou <nanzhoumails@gmail.com>

functions: change EM's ObjectManager path

EntityManager moves its ObjectManager in commit [1], this patch is to
change accordingly. Please see [1] for why we made that change.

[1] https://gerrit.op

functions: change EM's ObjectManager path

EntityManager moves its ObjectManager in commit [1], this patch is to
change accordingly. Please see [1] for why we made that change.

[1] https://gerrit.openbmc.org/c/openbmc/entity-manager/+/57279

Tested: code compiles. I don't know how to test this project. But code
inspection can show that only ObjectManager path changed.

Signed-off-by: Nan Zhou <nanzhoumails@gmail.com>
Change-Id: Iff4c5cc58daa29c8f1caa2c3faff0241d47c8b9a

show more ...


# 0dea1992 22-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: If9a7314dade153dd7dbd149a76352aca8257839d

show more ...


# 2b78eb0e 06-Apr-2022 Adriana Kobylak <anoo@us.ibm.com>

functions: Remove GetObject to check if PLDM is running

In order to check if PLDM is running, the code was subscribing to Name
Owner change and calling GetObject to see if PLDM was running, but PLDM

functions: Remove GetObject to check if PLDM is running

In order to check if PLDM is running, the code was subscribing to Name
Owner change and calling GetObject to see if PLDM was running, but PLDM
starts and does not immediately create its Object Manager, therefore
there is a time window when if PLDM starts but hasn't created its Object
Manager, and the openpower service starts, it'll hang forever waiting
for the Name Owner change signal that will not be sent because PLDM
already started.

Instead of calling GetObject, just attempt to run the callback, in this
case setting the bios attribute, and forward the exception if it fails
(due to PLDM not running and the property not existing in D-Bus yet),
so that the openpower service continues to wait. Change the log severity
to informational since setting the bios attribute will fail if PLDM has
not started yet.

Tested: Stopped the PLDM and Entity Manager services and started these
services and the openpower service in various different orders to verify
the openpower service ran when both PLDM and EM had started.

Change-Id: Idd2f344beda8dfcf2b987b3cab6f8967c63cab4c
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# 9cbc06b1 09-Nov-2021 Adriana Kobylak <anoo@us.ibm.com>

functions: Add runtime entries to bios attr string

Enhance the parsing of the JSON file to add runtime entries to the bios
attribute string. Currently, if the JSON contains a A.P10 and a

functions: Add runtime entries to bios attr string

Enhance the parsing of the JSON file to add runtime entries to the bios
attribute string. Currently, if the JSON contains a A.P10 and a
A.P10.iplTime entry, it will only add the iplTime entry to the bios
attribute string.
Instead of skipping the A.P10 entries when an iplTime entry exists, add
them as a runtime file (suffix _RT) to the bios attribute string for
hostboot to consume.

Tested: New _RT entries were created:
root@p10bmc:~# pldmtool bios GetBIOSAttributeCurrentValueByHandle -a
hb_lid_ids
{
"CurrentValue":
"ATTR_PERM=81e00663,ATTR_TMP=81e00664,BMC_INV=81e0066e,BOOTKERNEL=81e00658,DEVTREE=81e00672,EECACHE=81e00679,GUARD=81e00667,HBB=81e0065a,HBBL=81e0065b,HBD=81e0068d,HBD_RT=81e00630,HBD_RW=81e00676,HBEL=81e00668,HBI=81e0065d,HBRT=81e0068e,HBRT_RT=81e00300,HB_VOLATILE=81e0066f,HCODE=81e00696,HCODE_LID=81e0067b,HCODE_LID_RT=81e00671,HCODE_RT=81e00602,HDAT=81e00669,IMA_CATALOG=81e0065e,NVRAM=81e0066b,OCC=81e00688,OCC_RT=81e00430,OCMBFW=81e0067a,PART=81e00670,PAYLOAD=81e00660,RINGOVD=81e00620,SBE=81e00661,SBKT=81e0066c,SECBOOT=81e0066d,UVISOR=81e00678,VERSION=81e00662,WOFDATA=81e00692,WOFDATA_RT=81e00440,pnor.toc=NA"
}

Change-Id: Id72106e859040f6054907adb51dd974f856d3796
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# 97a709b0 06-Oct-2021 Patrick Williams <patrick@stwcx.xyz>

catch exceptions as const

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


# a38f6e65 19-Sep-2021 George Liu <liuxiwei@inspur.com>

Remove the last comma of the biosAttrStr value

If the attribute value of biosAttrStr ends with a comma, remove it.

Tested:
Without this patch:
biosAttrStr = "element1=lid1,e

Remove the last comma of the biosAttrStr value

If the attribute value of biosAttrStr ends with a comma, remove it.

Tested:
Without this patch:
biosAttrStr = "element1=lid1,element2=lid2,elementN=lidN,"
With this patch:
biosAttrStr = "element1=lid1,element2=lid2,elementN=lidN"

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I159f9c1774f4cd56ab04398fdf2f90929cd7e7e0

show more ...


# 4e82bc84 28-Sep-2021 Adriana Kobylak <anoo@us.ibm.com>

mmc: Handle missing pnor.toc file

The pnor.toc file is a mboxd implemenation, and therefore will not exist
once the host uses PLDM instead, which uses .lid files instead of pnor
part

mmc: Handle missing pnor.toc file

The pnor.toc file is a mboxd implemenation, and therefore will not exist
once the host uses PLDM instead, which uses .lid files instead of pnor
partition files. As part of the transition, the pnor.toc file is being
built into a .lid file for images that do not contain pnor partition
files. Handle this transition by creating a symlink from pnor partition
file to .lid file. This would remain in place until all the PLDM support
from the hostboot side is in place and mboxd is removed.

Tested: Verified rainier powers on and mboxd starts successfully, and
the volatile partition gets cleared.

Change-Id: I59364c0abf100dab5a38d277f0587d0dd221b53d
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# 7b5685d1 02-Sep-2021 Patrick Williams <patrick@stwcx.xyz>

exception: switch to public sdbus exception

SdBusError was intended to be a private error type inside sdbusplus.
Switch all catch locations to use the general sdbusplus::exception type.

exception: switch to public sdbus exception

SdBusError was intended to be a private error type inside sdbusplus.
Switch all catch locations to use the general sdbusplus::exception type.

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

show more ...


# 5dc5d6cc 20-Jul-2021 Adriana Kobylak <anoo@us.ibm.com>

functions: Create symlinks for hostfw elements

Create symlinks for the hostfw elements to point to their corresponding
lid files. The hostfw image would not have the hostfw element files

functions: Create symlinks for hostfw elements

Create symlinks for the hostfw elements to point to their corresponding
lid files. The hostfw image would not have the hostfw element files,
only lid files. The symlinks allow applications such as mboxd and
openpower-proc-control to read data for the appropriate system type
since the symlink would be pointing to the right lid file depending on
system type.

No need to hardcode the symlink for HBB, this is done automatically now
based on the JSON file.

Tested:
Verified all element files pointed to the right lid file, ex:

lrwxrwxrwx 1 root root 12 Jul 26 16:08 DEVTREE ->
81e00673.lid
lrwxrwxrwx 1 root root 12 Jul 26 16:08 HBB ->
81e0065a.lid

Change-Id: Ia5791be0980301022c64c2469be92ab4add61a75
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# ebf67bf7 21-Jun-2021 Adriana Kobylak <anoo@us.ibm.com>

functions: bios-attr: Add match for PLDM

Add a match to watch for PLDM name owner change to detect when PLDM
starts. The callback would check if the new owner is set, which means
the

functions: bios-attr: Add match for PLDM

Add a match to watch for PLDM name owner change to detect when PLDM
starts. The callback would check if the new owner is set, which means
the service started instead of stopped, and then gets the properties
from entity manager to call the function that parse the json file and
sets the bios attr. If the entity manager interfaces are empty, it just
returns and the entity manager callback would take over when entity
manager starts.

This bios attr subcommand is now a vector to be able to return the two
matches, the one for EM and the new PLDM one.

Tested: Verify the bios attr was set when EM and PLDM were stopped and
EM was started then PLDM, and also having PLDM start first then EM.

Change-Id: I75fe1aae8084191226a8bd3b69087ca39ae2a43f
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# d0379ea5 21-Jun-2021 Adriana Kobylak <anoo@us.ibm.com>

functions: bios-attr: Add match for entity manager

Add a match to watch for entity manager interfaces added in case the
bios attr function is called when entity manager has not started.

functions: bios-attr: Add match for entity manager

Add a match to watch for entity manager interfaces added in case the
bios attr function is called when entity manager has not started. In the
callback, check if PLDM has started, and if yes, process the entity
manager interface to parse the json and set the bios attribute.

Change-Id: Ia24459dc0198b76977369904994fb1cff8b27683
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# fd4a6088 21-Jun-2021 Adriana Kobylak <anoo@us.ibm.com>

functions: bios-attr: Check that PLDM is running

The BIOS attribute table can only be updated if PLDM is running. Check
that the service is running, and if it's not, return. A subsequent

functions: bios-attr: Check that PLDM is running

The BIOS attribute table can only be updated if PLDM is running. Check
that the service is running, and if it's not, return. A subsequent
commit will add D-Bus matches to trigger if PLDM starts after the bios
attr function.

Change-Id: Id64bffc3b6465091f2df60304a0c95c9e34312dc
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# ae0998f1 16-Jun-2021 Adriana Kobylak <anoo@us.ibm.com>

functions: Parse json file to set bios attr table

The elements.json file have entries as follow:
"lids": [
{
"element_name": "HBD.RAINIER_2U_XML",

functions: Parse json file to set bios attr table

The elements.json file have entries as follow:
"lids": [
{
"element_name": "HBD.RAINIER_2U_XML",
"short_lid_name": "81e00630",
},
{
"element_name": "HBD.RAINIER_2U_XML.iplTime",
"short_lid_name": "81e0068d",
},
{
"element_name": "NVRAM.P10",
"short_lid_name": "81e0066b",
},
{
"element_name": "HDAT.RAINIER_4U_XML",
"short_lid_name": "81e00675",
},

Need to parse the element name and lid name depending on the system. The
.P10 files are common to all P10 systems, the .<system> applies only to
the system name provided by Entity Manager. The .iplTIme takes
precedence and should be the lid number that it's picked up, so use []
instead of insert to overwrite an entry if it had already being set.

In the example above, the string for a rainier 2U should look like:
HBD=81e0068d,NVRAM=81e0066b.

Change-Id: I55b317ffef6a7fbe3fd5ee92e7f0188d831b7972
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# 56f538ca 16-Jun-2021 Adriana Kobylak <anoo@us.ibm.com>

functions: Set bios attribute property

Set the bios attribute property 'hb_lid_ids' to an empty string. A
subsequent commit will populate the string based on a json file that
contain

functions: Set bios attribute property

Set the bios attribute property 'hb_lid_ids' to an empty string. A
subsequent commit will populate the string based on a json file that
contains the host firmware well-known names and lid numbers.

Change-Id: Ieacd889637db46474ebf022a92472dc28344763f
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# 53a27395 14-Jun-2021 Adriana Kobylak <anoo@us.ibm.com>

mmc: Add update-bios-attr-table subcommand

Add the update-bios-attr-table subcommand to update the bios attribute
table with the host firmware well-known names based on system type. The

mmc: Add update-bios-attr-table subcommand

Add the update-bios-attr-table subcommand to update the bios attribute
table with the host firmware well-known names based on system type. The
system type is provided by Entity Manager, and this new subcommand uses
some of the existing infrastructure that the process-host-firmware
subcommand has to determine the system type.

Add a new service file to run this new subcommand so that it can block
waiting for the entity manager interface to appear on D-Bus.

Subsequent commands will add parsing the JSON file to build the bios
attribute string and set the bios attribute property.

Change-Id: Iacee975e273bae562d2d42cd8b642b9d0744a121
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# c79fa915 22-Jun-2021 Adriana Kobylak <anoo@us.ibm.com>

functions: Catch sdbusplus exception

On systems that do not have Entity Manager implemented such as Tacoma,
the 'openpower-update-manager process-host-firmware' call core dumps
with:

functions: Catch sdbusplus exception

On systems that do not have Entity Manager implemented such as Tacoma,
the 'openpower-update-manager process-host-firmware' call core dumps
with:
obmc-flash-bios[407]: terminate called after throwing an instance of 'sdbusplus::exception::SdBusError'
obmc-flash-bios[407]: what(): sd_bus_call: org.freedesktop.DBus.Error.ServiceUnknown: The name is not activatable

Catch the exception and return the match to allow the interfaces added
signal run the callback if/when the entity manager interfaces appear.

Tested: App does not core dump anymore on tacoma.

Change-Id: Ie90b214c7bdd109dbc970a8de580988738809d16
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# fdc91fa0 20-May-2021 Adriana Kobylak <anoo@us.ibm.com>

mmc: Create a symlink for HBB to its LID file

With the eventual switch for the host firmware to use PLDM, the vpnor
partition files would not exist anymore. As a temporary transition, ne

mmc: Create a symlink for HBB to its LID file

With the eventual switch for the host firmware to use PLDM, the vpnor
partition files would not exist anymore. As a temporary transition, need
to create a symlink from HBB to its LID file for the existing mboxd
process to load the data into memory. Eventually, a new lightweight
application would load the contents of this LID file into memory, at
which point this symlink could be removed.

Additionally, the vpnor partition names and their corresponding LID
numbers will be read via a json file as part of the PLDM transition, so
this hardcoded LID number can be dynamically be determined at that
point.

Tested: Verified symlink got created in Rainier and it booted to OS.

mboxd trace:
[ 1621534119.097184649] Fulfilling read request against
/var/lib/phosphor-software-manager/pnor/rw/HBB at offset 0x0 into
0x72879000 for 1048576

$ ls -l /var/lib/phosphor-software-manager/pnor/rw/HBB
lrwxrwxrwx 1 root root 12 May 20 17:58
/var/lib/phosphor-software-manager/pnor/rw/HBB -> 81e0065a.lid

Change-Id: I1d8362b5b9205f6e16f950e5a94fd417402b9f63
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...


# 099543e4 09-Nov-2020 Brad Bishop <bradleyb@fuzziesquirrel.com>

updater: add process-host-firmware subcommand

Add general support for subcommands. Do this by bringing in the the
CLI11 library, and by skipping over dbus service initialization if a

updater: add process-host-firmware subcommand

Add general support for subcommands. Do this by bringing in the the
CLI11 library, and by skipping over dbus service initialization if a
subcommand is specified on the command line.

Implement the first subcommand: process-host-firmware. If no subcommand
is specified on the command line, openpower-update-manager continues to
launch as a dbus service.

Introduce functions.cpp/functions.hpp. functions.cpp is intended to be
a module in which process-hostfirmware and future openpower-item-updater
subcommands can be implemented. functions.hpp should be used to export
declarations to unit tests or item_updater_main.cpp.

The IBM POWER host firmware runtime looks for data and/or additional
code while bootstraping in locations with well-known names.
Additionally, the host firmware runtime relies on an external party to
map platform specific data and/or code to the well known names. The
process-host-firmware command maintains that mapping on behalf of the
host firmware and ensures the correct blob files exist in the well-known
locations prior to starting the host firmware runtime.

The process-host-firmware subcommand registers for callbacks from entity
manager when entity manager adds new DBus interfaces. Interfaces other
than IBMCompatibleSystem are ignored. Entity manager is started with
dbus activation if it is not already running. If IBMCompatibleSystem is
found and a set of host firmware blob filename extensions are mapped,
they are used to write "well-known" names into the filesystem for use by
the host firmware runtime.

Once the well-known names are written to the filesystem the program will
exit.

If entity manager does not publish an IBMCompatibleSystem interface the
command will wait indefinitely for it to appear. For this reason it is
not recommended to run the process-host-fimrware subcommand if
IBMCompatibleSystem is not implemented.

If IBMCompatibleSystem is implemented but no host firmware blob filename
extensions are mapped, the program will exit without doing anything.

Testcases are provided.

Change-Id: Icb066b0f3e164520cae312e3b03432a6ad67e0df
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>

show more ...