History log of /openbmc/phosphor-bmc-code-mgmt/activation.hpp (Results 1 – 25 of 41)
Revision Date Author Comments
# ce82de51 16-Jan-2024 Adriana Kobylak <anoo@us.ibm.com>

errors: Use non-deprecated namespaces

The error namespaces have been updated. Reference:
https://gerrit.openbmc.org/c/openbmc/sdbusplus/+/66308
https://gerrit.openbmc.org/c/openbmc/phosphor-logging/

errors: Use non-deprecated namespaces

The error namespaces have been updated. Reference:
https://gerrit.openbmc.org/c/openbmc/sdbusplus/+/66308
https://gerrit.openbmc.org/c/openbmc/phosphor-logging/+/66463

Tested: Compiled with the SDBUSPP_REMOVE_DEPRECATED_NAMESPACE option.

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

show more ...


# 1e9a5f1a 23-Aug-2023 Patrick Williams <patrick@stwcx.xyz>

sdbus++: use non-deprecated namespaces

The sdbusplus repository has deprecated some namespaces and they are
currently only enabled with the SDBUSPP_REMOVE_DEPRECATED_NAMESPACE
guard. Switch to the

sdbus++: use non-deprecated namespaces

The sdbusplus repository has deprecated some namespaces and they are
currently only enabled with the SDBUSPP_REMOVE_DEPRECATED_NAMESPACE
guard. Switch to the new namespace names.

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

show more ...


# bf2bb2b1 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: I96286490697ce5d7fecc1c9c358f5f1d054137ec

show more ...


# 35aa9a88 05-Apr-2022 Patrick Williams <patrick@stwcx.xyz>

sdbusplus: object: don't use 'bool' argument constructor

`sdbusplus::server::object_t` has long had an enum-based parameter for
signal action, but maintained a backwards compatible boolean mapping.

sdbusplus: object: don't use 'bool' argument constructor

`sdbusplus::server::object_t` has long had an enum-based parameter for
signal action, but maintained a backwards compatible boolean mapping.
It is time to remove this boolean to make it more observable which
actions are being used in applications. Map all `true` occurrences to
`action::defer_emit`.

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

show more ...


# b824b2f4 14-May-2020 Adriana Kobylak <anoo@us.ibm.com>

activation: Make activation flow common

The activation flow has a lot of duplicate code such as checking
the digital signatures and creating associations, with a few
differences depe

activation: Make activation flow common

The activation flow has a lot of duplicate code such as checking
the digital signatures and creating associations, with a few
differences depending on the choice of bmc layout configuration.

This makes the code hard to maintain since changes and additions
to the activation flow need to be done on more than one place, and
also the function becomes bigger and harder to follow. This would
be made worse when additional layout supports are added such as
eMMC code update support.

Make the flow common and move the specific code to its subdirectory.
This requires create a new function to handle the end of the
update so that we support implementations that are async (need to
wait for systemd service files to finish).

Still need an if/else statement to differentiate the implementations
that are synchronous like the static layout and the async ones like
the ubi layout since the async ones have the flash write function
return immediately and can call the flash write success later on,
for the sync ones need to set the activation value to Active after
calling flash write success:
Async (ubi):
activation(Activating)
flashWrite()
return Activating
onFlashWriteSuccess()
activation(Active)

Synchronous (static):
activation(Activating)
flashWrite()
onFlashWriteSuccess()
activation(Active)
return Active

By making the code common, the static layout gains some additional
features which may not be of consequence due to the short duration
of the update, but does not hurt and allow us to remove the if/else
blocks:
- Progress interface
- Blocks transition interface
- Updatable association before reboot is done

The static layout will also subscribe to systemd signals even
though they're not used, but again this is to keep the code as
common as possible.

Tested: Verified code update worked and expected d-bus interfaces
and values were set during ubi and static update.

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

show more ...


# c98d912e 05-May-2020 Adriana Kobylak <anoo@us.ibm.com>

Use std::filesystem instead of std::experimental

std::filesystem is fully supported in c++17, no need to keep
the experimental around anymore.

Note that the path append behavior

Use std::filesystem instead of std::experimental

std::filesystem is fully supported in c++17, no need to keep
the experimental around anymore.

Note that the path append behavior changed, so appending an
absolute path replaces the path instead of appending, therefore
need to use .relative_path().

Tested: Did a code update on witherspoon and verified the sync
path was correct.

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

show more ...


# 29d84b03 13-Feb-2020 Lei YU <mine260309@gmail.com>

Cleanup the code related to emit_interface_added

sdbusplus now supports action::emit_interface_added() when an object is
constructed, so the code that manually invokes emit_interface_add

Cleanup the code related to emit_interface_added

sdbusplus now supports action::emit_interface_added() when an object is
constructed, so the code that manually invokes emit_interface_added()
could be cleaned up and use the above action instead.

Tested: Verify the software objects are created as before, and BMC code
update works fine.

Signed-off-by: Lei YU <mine260309@gmail.com>
Change-Id: I0b2ce4773c51f89f5b39b2d601173694c969d15b

show more ...


# e9f6c845 14-Jan-2020 Vijay Khemka <vijaykhemka@fb.com>

Add support for Bios update

Added support for Bios upgrade, this is just first stage where there
is no version check or image verify but later on these features will
also be added.

Add support for Bios update

Added support for Bios upgrade, this is just first stage where there
is no version check or image verify but later on these features will
also be added.

Currently, this expect a bios image to be copied with manifest file
having version and provide a system unit file to be executed.

To enable this feature need to enable config option
--enable-host_bios_upgrade via bbappend.

Change-Id: If96fe71bad9dc8b187570e9dbbfaac9e9e09e3d1
Signed-off-by: Vijay Khemka <vijaykhemka@fb.com>

show more ...


# 85c356f7 11-Sep-2019 John Wang <wangzqbj@inspur.com>

Move to new association interface

A new association interface is defined in phosphor-dbus-interfaces
It would be nice to move the local version of the interface
to the new one.

Move to new association interface

A new association interface is defined in phosphor-dbus-interfaces
It would be nice to move the local version of the interface
to the new one.

The behavior of how association work is described here:
https://github.com/openbmc/docs/blob/master/object-mapper.md#associations

Partially resolves openbmc/openbmc#3584

Tested: See the org.openbmc.Associations interface has been replaced by the xyz
one in /xyz/openbmc_project/software/version_id object

Signed-off-by: John Wang <wangzqbj@inspur.com>
Change-Id: I249b7fea26f720b57e60e0bf8ba8bc71c620af98

show more ...


# a013560f 22-Apr-2019 Jayashankar Padath <jayashankar.padath@in.ibm.com>

Code Update: ApplyTime software manager support

Get the requested image apply time value provided through the
UpdateService redfish schema. If the apply time value is Immediate, then

Code Update: ApplyTime software manager support

Get the requested image apply time value provided through the
UpdateService redfish schema. If the apply time value is Immediate, then
BMC reboot will be triggered just after the new image activation. The
default apply time value is OnReset in which the new image remains at
Active state and user has to manualy reboot the BMC for applying the new
image.

Tested: Verified that BMC is getting rebooted if the apply time value is
Immediate. OnReset scenario was also tested in which new image remained at
Active state as code update application did not trigger the BMC reboot.

Signed-off-by: Jayashankar Padath <jayashankar.padath@in.ibm.com>
Change-Id: I5efb51f7f36e196d6113cfca6d37c8c6bef70aa2

show more ...


# b0ce996a 07-Sep-2018 Gunnar Mills <gmills@us.ibm.com>

clang-format: Update to match docs repo

Update the .clang-format file.
Now includes header sorting and updating PointerAlignment.

Change-Id: I5c7690d8d83cdebe26ff3a73b90a2a8c17d

clang-format: Update to match docs repo

Update the .clang-format file.
Now includes header sorting and updating PointerAlignment.

Change-Id: I5c7690d8d83cdebe26ff3a73b90a2a8c17dd8054
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# 1be8d500 19-Jun-2018 Lei YU <mine260309@gmail.com>

Refactor of bmcImages

bmcImages were in image_verify.hpp but it is used not only in image
verification, but elsewhere.

Move it into a more generic header file, images.hpp, so it

Refactor of bmcImages

bmcImages were in image_verify.hpp but it is used not only in image
verification, but elsewhere.

Move it into a more generic header file, images.hpp, so it makes more
clear that users of bmcImages include images.hpp instead of
image_verify.hpp

Tested: Verify the code pass the build.

Change-Id: If9adf315eee9047d9d08ab93ed7c0ff3c97f7a1e
Signed-off-by: Lei YU <mine260309@gmail.com>

show more ...


# 90532250 23-May-2018 Lei YU <mine260309@gmail.com>

Verify signature for non ubifs image

Enable signature verification on non ubifs build.
The code is the same for ubifs and non ubifs, so move related code into
separated functions.

Verify signature for non ubifs image

Enable signature verification on non ubifs build.
The code is the same for ubifs and non ubifs, so move related code into
separated functions.

Tested: Verify that the signature check happens during code update, and
successfully updated the code when the image is valid;
verify it fails to update in field mode when the image is
modified.

Change-Id: I81a536fb7ea05d804fa592c57bbed8f32f07a559
Signed-off-by: Lei YU <mine260309@gmail.com>

show more ...


# aea48f27 10-Jul-2018 Adriana Kobylak <anoo@us.ibm.com>

activation: Improve error handling in Subscribe

Handle exceptions from the sdbusplus method call_noreply API.

The Activation constructor was subscribing to systemd signals, which

activation: Improve error handling in Subscribe

Handle exceptions from the sdbusplus method call_noreply API.

The Activation constructor was subscribing to systemd signals, which
would cause an "Already Subscribed" error when creating multiple
Activation instances because the bus is common.

There is no reason to subscribe to systemd signals in the constructor,
since the signals are only triggered during the activation process.
Move the Subscribe call to the activation process which calls
Unsubscribe at the end.

There's a scenario where there could still be an "Already Subscribed"
error if the activation fails, so add error handling there.

Tested: Verified code update worked with this change, and the app
would not core dump with the latest sdbusplus changes.

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

show more ...


# 3ce563a0 06-Jun-2018 Adriana Kobylak <anoo@us.ibm.com>

activation: Move out code that monitors for ubi services

Move the code that monitors for ubi services into the ubi
subdirectory. Other filesystem layouts can just ignore
the service

activation: Move out code that monitors for ubi services

Move the code that monitors for ubi services into the ubi
subdirectory. Other filesystem layouts can just ignore
the service monitoring by setting the *VolumeCreated
variables to true.

Tested: Verified code update on Witherspoon still worked.

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

show more ...


# 9f89e2e1 30-May-2018 Adriana Kobylak <anoo@us.ibm.com>

activation: Create ubi write function

Move the code that creates the ubi volumes into a separate
write flash function to make it easier to implement
different flash write functions f

activation: Create ubi write function

Move the code that creates the ubi volumes into a separate
write flash function to make it easier to implement
different flash write functions for other flash layouts.

To implement a different write flash function:

1. Modify the Makefile.am file to include the desired code
location. Ex:
if UBI
include ubi/Makefile.am.include
else
include <other>/Makefile.am.include
2. Implement the Activation::flashWrite in <other>/flash.cpp

Tested: Verified code update still worked.

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

show more ...


# 166bdf3a 09-Apr-2018 Adriana Kobylak <anoo@us.ibm.com>

Revert "Revert "Wait for obmc-flash-bmc-updateubootvars@.service""

This reverts commit e24fd6f7deadddc2867b2c417590da0ff093e5e2.

The code that waits for the service file to complete

Revert "Revert "Wait for obmc-flash-bmc-updateubootvars@.service""

This reverts commit e24fd6f7deadddc2867b2c417590da0ff093e5e2.

The code that waits for the service file to complete causes
intermittent issues, so will be reverted.

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

show more ...


# e24fd6f7 06-Apr-2018 Adriana Kobylak <anoo@us.ibm.com>

Revert "Wait for obmc-flash-bmc-updateubootvars@.service"

This reverts commit 4c3edc911ba880f7643f15679018c436aa94e0aa

The code now blocks until the updateubootvars service complete

Revert "Wait for obmc-flash-bmc-updateubootvars@.service"

This reverts commit 4c3edc911ba880f7643f15679018c436aa94e0aa

The code now blocks until the updateubootvars service completes
(https://gerrit.openbmc-project.xyz/#/c/9418/) so there is no
need to monitor this service anymore.

Tested: Verified that the activation still waits for the env vars
to be upated before completing the activation process:

Apr 06 16:58:07 witherspoon systemd[1]: Started Store read-only images 84fb16be to BMC storage.
Apr 06 16:58:07 witherspoon systemd[1]: Starting Set U-Boot environment variable...
Apr 06 16:58:08 witherspoon systemd[1]: Started Set U-Boot environment variable.
Apr 06 16:58:08 witherspoon systemd[1]: Starting Updates the u-boot variable to point BMC version to 84fb16be...
Apr 06 16:58:11 witherspoon systemd[1]: Started Updates the u-boot variable to point BMC version to 84fb16be.
Apr 06 16:58:11 witherspoon phosphor-image-updater[1919]: BMC activation has ended - BMC reboots are re-enabled.

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

show more ...


# e11a2028 23-Mar-2018 Gunnar Mills <gmills@us.ibm.com>

Spelling fixes

Spelling errors found using github.com/lucasdemarchi/codespell
A tool to fix common misspellings.
This tool is licensed under GNU General Public License, version 2.

Spelling fixes

Spelling errors found using github.com/lucasdemarchi/codespell
A tool to fix common misspellings.
This tool is licensed under GNU General Public License, version 2.

Tested: Built the repo
Change-Id: I4fb378699d436e0c41adf80978f7cdaec12c6404
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# 2285fe0f 27-Feb-2018 Adriana Kobylak <anoo@us.ibm.com>

Enable clang code format

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


# f37cefc8 12-Sep-2017 Saqib Khan <khansa@us.ibm.com>

BMC: Block BMC reboots during Code Update

- Enable the service that blocks reboot within the constructor
of ActivationBlockTransition, so that the user can't reboot BMC
while cod

BMC: Block BMC reboots during Code Update

- Enable the service that blocks reboot within the constructor
of ActivationBlockTransition, so that the user can't reboot BMC
while code update is in progress.
- Once the code update is complete the destructor of
ActivationBlockTransition will disable any reboot guard that
prevents user from rebooting the BMC.

Tested: Verified that the user is unable to reboot during the activation
process and that journal logs are present to indicate why the user is
unable to reboot.

Resolves openbmc/openbmc#1944

Change-Id: Ia149a76bcf093b011fe243fc609ae83358a0f933
Signed-off-by: Saqib Khan <khansa@us.ibm.com>

show more ...


# 4c3edc91 24-Jan-2018 Adriana Kobylak <anoo@us.ibm.com>

Wait for obmc-flash-bmc-updateubootvars@.service

The service file obmc-flash-bmc-updateubootvars@.service
updates the boot environment variables to point to the
newly updated image.

Wait for obmc-flash-bmc-updateubootvars@.service

The service file obmc-flash-bmc-updateubootvars@.service
updates the boot environment variables to point to the
newly updated image. Need to wait for this service to finish
before marking the update as complete. Otherwise the user may
reboot the system while the env vars are being updated thinking
that the update has completed because the Activation value would
be set to Active.

Resolves openbmc/openbmc#2764

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

show more ...


# ee13e831 23-Oct-2017 Saqib Khan <khansa@us.ibm.com>

BMC: Fix the delete implementation.

- Implement delete interface inside version class
so that both item_updater and image_manager can
share the same interface. This meant removin

BMC: Fix the delete implementation.

- Implement delete interface inside version class
so that both item_updater and image_manager can
share the same interface. This meant removing the
delete interface from inside the activation class.
- The delete is created as a separate object inside
version, only if the image is non-functional.
This helps remove the delete interface from a
running BMC/HOST image.
- As part of the activation process, the version from
inside the image_manager is deleted and so is the
version's tarfile from the image upload dir.

Partially resolves openbmc/openbmc#2490

Change-Id: Ib35bf188df85ebd2277d3d9ad04300e434965eea
Signed-off-by: Saqib Khan <khansa@us.ibm.com>

show more ...


# b77551cd 27-Oct-2017 Adriana Kobylak <anoo@us.ibm.com>

Call update u-boot env once when a priority is changed

The recursive nature of calling the free priority function
would trigger setting the u-boot env multiple times.
Make a change s

Call update u-boot env once when a priority is changed

The recursive nature of calling the free priority function
would trigger setting the u-boot env multiple times.
Make a change so that the priorities are sorted and
updated once.

- Create a non-overriden priority setter function to be called
by the free priority function and by the function that creates
the dbus objects after a bmc reboot. There's no need to call
to free the priorities after reboot since the priorities are
preserved on the bmc, and if they're not they default to 0 or 255.
- When a dbus request is made to update the priority, update
the value, then call the free priority function, which will
sort the versions by priority and bump the priority of any
duplicate ones.

Resolves openbmc/openbmc#2535

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

show more ...


# 4254bece 03-Oct-2017 Michael Tritz <mtritz@us.ibm.com>

BMC Updater: Remove the Object.Delete interface from functional version

This commit enhances the functionality of the BMC software updater.
Previously, each BMC version uploaded to the s

BMC Updater: Remove the Object.Delete interface from functional version

This commit enhances the functionality of the BMC software updater.
Previously, each BMC version uploaded to the system would implement the
Object.Delete D-Bus interface, including the version currently running
on the BMC. In principle, this is a pretty major issue - at best, the
Delete would do nothing to the current version but throw an error, and
at worst, it could partially remove it and cause problems.

This commit fixes that problem by moving the Delete implementation into
a separate object for each activation and removing that interface for
the current version.

Resolves openbmc/openbmc#2335

Change-Id: I721b7455c9fb309ecbb50f807aaa44a16d51ba5a
Signed-off-by: Michael Tritz <mtritz@us.ibm.com>

show more ...


12