#
192bb5d9 |
| 27-Feb-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
meson: apply meson format
since [1] was merged in openbmc-build-scripts, meson format is required to pass CI.
References: [1] https://gerrit.openbmc.org/c/openbmc/openbmc-build-scripts/+/77742
Cha
meson: apply meson format
since [1] was merged in openbmc-build-scripts, meson format is required to pass CI.
References: [1] https://gerrit.openbmc.org/c/openbmc/openbmc-build-scripts/+/77742
Change-Id: I66206066c41dd3d6225855d0530c72f5089a964b Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
#
cc372355 |
| 14-Jan-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
fw update: common code
new daemons to implement the flow as described in https://github.com/openbmc/docs/blob/master/designs/code-update.md
- common/ common code folder - common update flow -
fw update: common code
new daemons to implement the flow as described in https://github.com/openbmc/docs/blob/master/designs/code-update.md
- common/ common code folder - common update flow - base class for the device specific update daemons
The new daemons are all following the generic template of Code Updater daemon as outlined in the design.
The idea is that they are separate daemons (per device, as outlined in the design) but share all the code that's not device specific.
Tested: next patch in series
Change-Id: If2438b8506aceb8c5313ec13a0bf7cb68f3cc279 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
#
ec807fcb |
| 03-Feb-2025 |
Patrick Williams <patrick@stwcx.xyz> |
meson: reformat with meson formatter
Apply the `meson format` results.
Change-Id: Ifc60fd8e7091d83202753a57f215667613f1691c Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
|
#
00b3cae1 |
| 26-Nov-2024 |
Alexander Hansen <alexander.hansen@9elements.com> |
fw update: pldm package parser
The code is taken from 'pldm' repo, but there is an ongoing effort to make it part of libpldm [1].
The intent of this patch is to provide a few high-level functions t
fw update: pldm package parser
The code is taken from 'pldm' repo, but there is an ongoing effort to make it part of libpldm [1].
The intent of this patch is to provide a few high-level functions to parse a PLDM fw update package.
If/when the package parser is available in libpldm, this code can be dropped.
References: - [1] https://gerrit.openbmc.org/c/openbmc/libpldm/+/77095
Tested: next patch in series
Change-Id: I8212d88702e59d9d78965baf4e8c2243b8035b42 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
#
88b98bf2 |
| 29-Jan-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
fix: fw-update: make libpldm optional dependency
Only pull in the libpldm dependency if tests are enabled.
The only users of this dependency currently are in the tests.
Change-Id: I17759c536e32c4b
fix: fw-update: make libpldm optional dependency
Only pull in the libpldm dependency if tests are enabled.
The only users of this dependency currently are in the tests.
Change-Id: I17759c536e32c4b15af1f9afd0acde85efe4d3c4 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
#
4a053c8e |
| 26-Nov-2024 |
Alexander Hansen <alexander.hansen@9elements.com> |
fw update: library to create pldm fw package
Implement some helper functions to easily create a pldm fw package in a few lines of user code.
This is helpful for unit testing the code update flow.
fw update: library to create pldm fw package
Implement some helper functions to easily create a pldm fw package in a few lines of user code.
This is helpful for unit testing the code update flow.
The package created is for testing purpose. The library is not fully-featured or complete and should not be relied upon for anything other than the tests in this repo.
https://github.com/openbmc/docs/blob/master/designs/code-update.md
Tested: next few patches in series
Change-Id: If899e5537a2e5ac641544ca80e8876d83549da28 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
#
cab87e9c |
| 02-Jan-2025 |
Jagpal Singh Gill <paligill@gmail.com> |
re-organize the current files into bmc directory
More daemons are being developed in phosphor-bmc-code-mgmt repo as part of https://github.com/openbmc/docs/blob/master/designs/code-update.md. For th
re-organize the current files into bmc directory
More daemons are being developed in phosphor-bmc-code-mgmt repo as part of https://github.com/openbmc/docs/blob/master/designs/code-update.md. For this move the current files for BMC code update into bmc subdirectory for a better code organization.
Tested: meson build passes.
Change-Id: I7b5575bcfbe54ac00aa803f94b5d8f6d69ce2f3f Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
show more ...
|
#
58d6982c |
| 12-Nov-2024 |
Jagpal Singh Gill <paligill@gmail.com> |
disable service files for Updater and Version
Add the service files for Updater and Version manager only if the software-update-dbus-interface meson option is disabled. These services will be repla
disable service files for Updater and Version
Add the service files for Updater and Version manager only if the software-update-dbus-interface meson option is disabled. These services will be replaced by new Software.Manager service.
Tested - ``` > curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -X POST -F UpdateParameters="{\"Targets\":[\"/redfish/v1/UpdateService/FirmwareInventory/a79d71e4\"],\"@Redfish.OperationApplyTime\":\"OnReset\"};type=application/json" -F "UpdateFile=@obmc-phosphor-image-romulus-20241015174416.static.mtd.tar;type=application/octet-stream" https://${bmc}/redfish/v1/UpdateService/update { "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "Id": "0", "TaskState": "Running", "TaskStatus": "OK" }
> systemctl status xyz.openbmc_project.Software.Manager * xyz.openbmc_project.Software.Manager.service - Phosphor Software Manager Loaded: loaded (/usr/lib/systemd/system/xyz.openbmc_project.Software.Manager.service; enabled; preset: enabled) Active: active (running) since Thu 2024-11-14 00:54:43 UTC; 2min 8s ago Process: 272 ExecStartPre=/bin/sh -c mkdir -p /tmp/images (code=exited, status=0/SUCCESS) Main PID: 290 (phosphor-softwa) CPU: 995ms CGroup: /system.slice/xyz.openbmc_project.Software.Manager.service `-290 /usr/bin/phosphor-software-manager
Nov 14 00:54:11 romulus systemd[1]: Starting Phosphor Software Manager... Nov 14 00:54:22 romulus phosphor-software-manager[290]: Creating Software Manager Nov 14 00:54:43 romulus systemd[1]: Started Phosphor Software Manager.
> systemctl status xyz.openbmc_project.Software.Version.service * xyz.openbmc_project.Software.Version.service - Phosphor Version Software Manager Loaded: loaded (/usr/lib/systemd/system/xyz.openbmc_project.Software.Version.service; enabled; preset: enabled) Active: active (running) since Thu 2024-11-14 01:35:19 UTC; 38s ago Process: 345 ExecStartPre=/bin/sh -c mkdir -p /tmp/images (code=exited, status=0/SUCCESS) Main PID: 350 (phosphor-versio) CPU: 391ms CGroup: /system.slice/xyz.openbmc_project.Software.Version.service `-350 /usr/bin/phosphor-version-software-manager
Nov 14 01:35:10 romulus systemd[1]: Starting Phosphor Version Software Manager... Nov 14 01:35:19 romulus systemd[1]: Started Phosphor Version Software Manager. > systemctl status xyz.openbmc_project.Software.BMC.Updater.service * xyz.openbmc_project.Software.BMC.Updater.service - OpenBMC Software Update Manager Loaded: loaded (/usr/lib/systemd/system/xyz.openbmc_project.Software.BMC.Updater.service; enabled; preset: enabled) Drop-In: /usr/lib/systemd/system/xyz.openbmc_project.Software.BMC.Updater.service.d `-software-bmc-updater.conf Active: active (running) since Thu 2024-11-14 01:35:00 UTC; 1min 20s ago Main PID: 271 (phosphor-image-) CPU: 825ms CGroup: /system.slice/xyz.openbmc_project.Software.BMC.Updater.service `-271 /usr/bin/phosphor-image-updater
Nov 14 01:34:42 romulus systemd[1]: Starting OpenBMC Software Update Manager...
> systemctl status xyz.openbmc_project.Software.Manager.service Unit xyz.openbmc_project.Software.Manager.service could not be found. ```
Change-Id: I67b40d18fce6e5a67d6fad9a5e3c7a0c74cd11aa Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
show more ...
|
#
e738f397 |
| 13-Aug-2024 |
Jagpal Singh Gill <paligill@gmail.com> |
add build flag for software-update-dbus-interface
Change-Id: I8f84ab78b5b7d0930d0e34d840da2933bb30b5e7 Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
|
#
463917e1 |
| 27-Aug-2024 |
Adriana Kobylak <anoo@us.ibm.com> |
Build update_manager.cpp by default
The update_manager is used to determine if the new code update API should be used.
Tested: Verified the existing interfaces still worked.
Change-Id: I2f00e3c996
Build update_manager.cpp by default
The update_manager is used to determine if the new code update API should be used.
Tested: Verified the existing interfaces still worked.
Change-Id: I2f00e3c996966bc904eb68b09acbd197421dc6a4 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
#
6d131aa7 |
| 08-Apr-2024 |
Jagpal Singh Gill <paligill@gmail.com> |
start-update-interface: implement update manager
Implement the update manager module for the new daemon inheriting from the Update D-Bus interface. Link with new interface APIs from item_updater and
start-update-interface: implement update manager
Implement the update manager module for the new daemon inheriting from the Update D-Bus interface. Link with new interface APIs from item_updater and software utils. New daemon will continue to exist at runtime alongwith old flow, until old flow is deprecated and removed. This change is based on - https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/65738 https://gerrit.openbmc.org/c/openbmc/docs/+/65739
Change-Id: I0ecbbb8fc5340de7f66f8870ae389b405a2debee Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
show more ...
|
#
2431e7f6 |
| 08-Apr-2024 |
Jagpal Singh Gill <paligill@gmail.com> |
start-update-interface: add software_utils
Refactor and move the common code into software_utils namespace. Add new untar API which untars from a unix_fd. This change is based on - https://gerrit.op
start-update-interface: add software_utils
Refactor and move the common code into software_utils namespace. Add new untar API which untars from a unix_fd. This change is based on - https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/65738 https://gerrit.openbmc.org/c/openbmc/docs/+/65739
Change-Id: Ifcbf78a06ef482ca7c7765efd5c24a533399b979 Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
show more ...
|
#
cc49878d |
| 29-Feb-2024 |
Jagpal Singh Gill <paligill@gmail.com> |
start-update-interface: add the new app
Add the meson option for the start update D-Bus interface implementation. Add the SoftwareManager new daemon to run in parallel with existing code. The intent
start-update-interface: add the new app
Add the meson option for the start update D-Bus interface implementation. Add the SoftwareManager new daemon to run in parallel with existing code. The intention for new daemon is to combine ImageManager and ItemUpdater into one. After due testing and verifications ImageManager and ItemUpdater would be retired for SoftwareManager. For more more details on design refer to - https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/65738 https://gerrit.openbmc.org/c/openbmc/docs/+/65739
Change-Id: Id11823ca0ff62e76595aa4ad33212a2a2428c261 Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
show more ...
|
#
fa34e22c |
| 02-Apr-2024 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
meson: Add boost to the dependencies
Since the project uses boost library add it to meson dependencies.
Tested: Local build no longer fails with a missing boost headers message on the system withou
meson: Add boost to the dependencies
Since the project uses boost library add it to meson dependencies.
Tested: Local build no longer fails with a missing boost headers message on the system without boost, but fails at the "meson setup build" stage with an appropriate message.
Change-Id: I165fb61cf72adadbb1f67d64e378f84b0256307f Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
#
d2d57bb4 |
| 02-Apr-2024 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
meson: Fix local cereal build
Currently local build is failing with a message: """ cereal| Exception: Failed to configure the CMake subproject: Could NOT find Boost (missing: Boost_INCLUDE_DIR seria
meson: Fix local cereal build
Currently local build is failing with a message: """ cereal| Exception: Failed to configure the CMake subproject: Could NOT find Boost (missing: Boost_INCLUDE_DIR serialization) Subproject subprojects/cereal is buildable: NO (disabling) """ Since cereal requires boost only for the sandbox build and this functionality is not needed, add option to skip building performance sandbox comparison to solve the issue.
Tested: "meson setup build" no longer fails with the cereal error.
Change-Id: I3d5a6e02a10d853f6487806a4d04252e15d755ed Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
#
83d7d406 |
| 29-Nov-2023 |
Patrick Williams <patrick@stwcx.xyz> |
build: use allowed over enabled
Meson feature options are typically in a tri-state of enabled, disabled, or auto. The enabled and disabled functions on an option (from `get_option`) no longer retur
build: use allowed over enabled
Meson feature options are typically in a tri-state of enabled, disabled, or auto. The enabled and disabled functions on an option (from `get_option`) no longer return true for auto features. Instead, the expectation is to use `allowed()` which is true for both enabled and auto.
Switch all uses of `enabled` to `allowed`.
Change-Id: Iebfa27c0094b2001eb3f87fcfbbf209d803d2190 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
#
40405d92 |
| 15-Sep-2023 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
Remove check for the 'verify-full-signature' option
'verify-full-signature' option is a legacy option that was recently dropped from the build configuration. Therefore the build system shouldn't che
Remove check for the 'verify-full-signature' option
'verify-full-signature' option is a legacy option that was recently dropped from the build configuration. Therefore the build system shouldn't check it.
Change-Id: I3a8be29991bd50d074fcfd6aa9d61a8777e5694e Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
#
294991a2 |
| 19-Apr-2023 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
meson: Drop legacy 'verify-signature' option
Currently there are two options for the image signature verification: - 'verify-signature' (legacy), - 'verify-full-signature' (current).
Drop legacy op
meson: Drop legacy 'verify-signature' option
Currently there are two options for the image signature verification: - 'verify-signature' (legacy), - 'verify-full-signature' (current).
Drop legacy option and let the current one take its place.
Change-Id: Ia205424395179fd190e3d055159beca93cff0545 Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
#
098a6771 |
| 01-Sep-2023 |
Patrick Williams <patrick@stwcx.xyz> |
elog-errors: remove generated file
Since we use meson subprojects to build this repository outside of Yocto, there is no need to carry along a pre-generated elog-errors file anymore. Remove it and
elog-errors: remove generated file
Since we use meson subprojects to build this repository outside of Yocto, there is no need to carry along a pre-generated elog-errors file anymore. Remove it and ensure all code is using the real one from phosphor-logging.
The Software.Image errors have been moved over to phosphor-dbus-interfaces and can be used from there. Remove them from this repository.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ic16fdef298361a878644e989b661f6312af8a0cb
show more ...
|
#
b9ecb2bc |
| 12-Jul-2023 |
Patrick Williams <patrick@stwcx.xyz> |
build: upgrade to C++23
Meson 1.1.1 and GCC-13 both support C++23 and a sufficient portion of the standard has been implemented. Upgrade the build to leverage it.
Change-Id: I897133dfa2ee421145e54
build: upgrade to C++23
Meson 1.1.1 and GCC-13 both support C++23 and a sufficient portion of the standard has been implemented. Upgrade the build to leverage it.
Change-Id: I897133dfa2ee421145e541e6e4309a3c2fa60f2a Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
#
e80b5bcb |
| 12-Apr-2023 |
Patrick Williams <patrick@stwcx.xyz> |
meson: remove deprecated get_pkgconfig_variable
Since meson 0.56, the `get_pkgconfig_variable` has been deprecated. In meson 0.58 the `get_variable` was enhanced to no longer require the `pkgconfig
meson: remove deprecated get_pkgconfig_variable
Since meson 0.56, the `get_pkgconfig_variable` has been deprecated. In meson 0.58 the `get_variable` was enhanced to no longer require the `pkgconfig` keyword argument. Ensure meson 0.58 is required and update the usage of all `get_pkgconfig_variable` and `get_variable` to be the modern variant.
Change-Id: I46c094c1a1e4793556e93f9e5158bff7c6042cc4 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
#
87c5b5bd |
| 15-Nov-2022 |
Lakshmi Yadlapati <lakshmiy@us.ibm.com> |
u-boot mirroring support
Design is at the link below. https://gerrit.openbmc.org/c/openbmc/docs/+/58025
Tested: Tested all "Test Scenarios" specified in the design.
Signed-off-by: Lakshmi Yadlap
u-boot mirroring support
Design is at the link below. https://gerrit.openbmc.org/c/openbmc/docs/+/58025
Tested: Tested all "Test Scenarios" specified in the design.
Signed-off-by: Lakshmi Yadlapati <lakshmiy@us.ibm.com> Change-Id: I064115ee1e966a0a1b3ce7ec246c1f88f0bd87f7
show more ...
|
#
a8ebf962 |
| 17-Nov-2022 |
Patrick Williams <patrick@stwcx.xyz> |
meson: remove oe-sdk support
Very few of our projects have this extra code and it doesn't seem very useful considering we have both meson-subproject support and developers can use devtool.
Signed-o
meson: remove oe-sdk support
Very few of our projects have this extra code and it doesn't seem very useful considering we have both meson-subproject support and developers can use devtool.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I41f8ba99600c04596b4fc37cc5b0ec00976d1e24
show more ...
|
#
70d72f8d |
| 23-Mar-2022 |
Andrew Geissler <geissonator@yahoo.com> |
side-switch: introduce new bmc update feature
This is the first commit in a series which will introduce a feature within phosphor-bmc-code-mgmt that users can optionally install on their systems to
side-switch: introduce new bmc update feature
This is the first commit in a series which will introduce a feature within phosphor-bmc-code-mgmt that users can optionally install on their systems to cause a side-switch boot.
A side-switch boot is a boot of a system in which the BMC detects that the user has requested the alternate image on the flash chip be booted from. The detection is done by looking at the available images, their priorities, and the running image. If a higher priority image is available on the non-running side, then it should be switched to. This feature utilizes the one-time auto-power-on service to cause an automatic boot of the system after the bmc side switch occurs.
At a high level, a service will be put into the obmc-host-start@.target which runs before any other services in that target. It will launch the executable being created in this series of commits. That application will determine if a side switch is needed, and if so it will: - Initiate and wait for a chassis power off of the system - Set the one-time auto-power-on policy to AlwaysOn - Issue a reboot to the BMC
But why did the user not just reboot the BMC themselves when they installed the new image? There are use cases (at least on IBM systems) where the user of the system wants to switch to the alternate image in flash, but they want to defer that until someone reboots the BMC manually OR the next time the user starts a boot of the system.
Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I58a914ec2c3f3cf15ac41a02725e9a800dffcf30
show more ...
|
#
054bb0b8 |
| 15-Mar-2022 |
Justin Ledford <justinledford@google.com> |
Add support for Inventory.Decorator.Compatible
This adds support for the compatibility strings interface described in https://github.com/openbmc/phosphor-dbus-interfaces/tree/master/yaml/xyz/openbmc
Add support for Inventory.Decorator.Compatible
This adds support for the compatibility strings interface described in https://github.com/openbmc/phosphor-dbus-interfaces/tree/master/yaml/xyz/openbmc_project/Software#compatibility.
The Version objects will now be created with the Inventory.Decorator.Compatible interface with the compatibility names coming from the MANIFEST file. e.g. version=1.2.3 MachineName=foo purpose=Other ExtendedVersion=a.b.c CompatibleName=foo.bar CompatibleName=baz.bim
Tested: $ busctl get-property xyz.openbmc_project.Software.Version \ /xyz/openbmc_project/software/517751da \ xyz.openbmc_project.Inventory.Decorator.Compatible Names as 2 "foo.bar" "baz.bim"
Signed-off-by: Justin Ledford <justinledford@google.com> Change-Id: I9ee36af2d3d1494d533a3b09c466a250c4fe786b
show more ...
|