61c1a8aa | 05-Dec-2024 |
Adriana Kobylak <anoo@us.ibm.com> |
Add the new Software.Manager to service dependencies
Remove the Wants dependencies to the old code update service, these services start by default. Add Before/After dependencies on the new Software.
Add the new Software.Manager to service dependencies
Remove the Wants dependencies to the old code update service, these services start by default. Add Before/After dependencies on the new Software.Manager service to support both the old and the new flow.
Change-Id: I4669e2ef89ab4d8e292c1add3c8b87bb640b5583 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 ...
|
44b9fef9 | 07-Feb-2023 |
George Liu <liuxiwei@inspur.com> |
Fix the core dump by using filesystem error_code
The currently used filesystem method will cause an exception if the file system is damaged for some reason, resulting in a core dump of the process.
Fix the core dump by using filesystem error_code
The currently used filesystem method will cause an exception if the file system is damaged for some reason, resulting in a core dump of the process. So the overloaded method with the error_code parameter should be used here to ensure that the process core dump will not be caused after an exception is thrown.
Fixes: openbmc/phosphor-bmc-code-mgmt#12
Tested: built phosphor-bmc-code-mgmt successfully and CI passes.
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I329f78b481cb466e755bc1b78562583620f561c2
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 ...
|
984cef59 | 16-Dec-2021 |
Lei YU <yulei.sh@bytedance.com> |
dual-image: Add reset-cs0-aspeed to reset the CS
When BMC is running on the secondary flash, and the primary flash is updated, the BMC needs to reboot to the primary flash.
On aspeed, this is done
dual-image: Add reset-cs0-aspeed to reset the CS
When BMC is running on the secondary flash, and the primary flash is updated, the BMC needs to reboot to the primary flash.
On aspeed, this is done by clearing the wdt2 state register bit, and could be implemented by writing non-zero to /sys/class/watchdog/watchdog1/access_cs0. But it has a side effect that the CS will be swapped back to normal, which means the running rootfs will be swapped to the primary flash. So this needs to be done after the rootfs is umounted.
Add reset-cs0-aspeed to insert a line in `/run/initramfs/shutdown` to write non-zero to /sys/class/watchdog/watchdog1/access_cs0.
Tested: Verify that the BMC is reboot to the primary flash after flashing in the secondary image.
Signed-off-by: Lei YU <yulei.sh@bytedance.com> Change-Id: I4c988017ed45131318625f349a84500e1831e171
show more ...
|
b5171acd | 16-Dec-2021 |
Lei YU <yulei.sh@bytedance.com> |
dual-image: remount alt partitions during update
When the BMC is to updating the alt image, it needs to stop the sync manager, umount the rofs/rwfs-alt partitions before the flashing, mount them aft
dual-image: remount alt partitions during update
When the BMC is to updating the alt image, it needs to stop the sync manager, umount the rofs/rwfs-alt partitions before the flashing, mount them after it's done, and restart the sync manager.
Otherwise the mount point of rofs/rwfs-alt will get error because the content is updated.
Tested: Verify the rofs/rwfs-alt are umounted during the alt flashing, and are mounted again after the flashing is done, and the sync manager is restarted.
Signed-off-by: Lei YU <yulei.sh@bytedance.com> Change-Id: I21e2bd8e0616cf529b9b4e5245d5da1ea4dfb51e
show more ...
|
d8c9eea3 | 16-Dec-2021 |
Lei YU <yulei.sh@bytedance.com> |
dual-image: Implement BMC update when running on secondary
Implement the BMC code update when it's running on the secondary image. It will update the alt flash by obmc-flash-bmc-alt@.service and wai
dual-image: Implement BMC update when running on secondary
Implement the BMC code update when it's running on the secondary image. It will update the alt flash by obmc-flash-bmc-alt@.service and wait for the completion. After the update is done, it needs reboot to take effect.
Note if the BMC is running on the secondary, it requires a following commit to reset the CS to make the SoC to boot from the primary flash.
This commit only flashes the alt image when it's running on the secondary image, there will be future commits to support other cases, e.g. flashing both images.
Tested: Verify the code update process is successful and it flashes the whole primary chip when the BMC is running on the secondary chip.
Signed-off-by: Lei YU <yulei.sh@bytedance.com> Change-Id: Ifa849e55c28f17b46d7f999ff43a7ad7e73f2ea1
show more ...
|
84749678 | 15-Dec-2021 |
Lei YU <yulei.sh@bytedance.com> |
dual-image: Sync files before sync-manager starts
The sync-manager only sync files when it's changed/deleted, but does not sync when it's untouched. If the service starts and there is no change, the
dual-image: Sync files before sync-manager starts
The sync-manager only sync files when it's changed/deleted, but does not sync when it's untouched. If the service starts and there is no change, the files will not be synced.
Mount the rwfs-alt and add a script to sync the files before the sync-manager starts, so that they are always synced when the sync-manager is running.
Tested: Verify the files are synced before the sync-manager starts.
Signed-off-by: Lei YU <yulei.sh@bytedance.com> Change-Id: I5613738b7b490201c556a175425b48aebae1505b
show more ...
|
531fbc25 | 10-Dec-2021 |
Lei YU <yulei.sh@bytedance.com> |
dual-image: Detect the running image slot
Add detect-slot-aspeed to detect which slot it is running on, and assign the member variable, which will be used in future commits.
Tested: * In normal
dual-image: Detect the running image slot
Add detect-slot-aspeed to detect which slot it is running on, and assign the member variable, which will be used in future commits.
Tested: * In normal case, verify the primary slot is 0 and secondary slot is 1. * Manually assign value 1 in /run/media/slot, and verify the slot number is reversed. * Manually trigger wdt2 timeout and verify in secondary flash that the slot number is correct, that the running slot is 1 and the other slot is 0.
Signed-off-by: Lei YU <yulei.sh@bytedance.com> Change-Id: I69edb1961b4c4bb79e7897c38b9ce8dded42f829
show more ...
|
6376964e | 10-Dec-2021 |
Lei YU <yulei.sh@bytedance.com> |
dual-image: Mount alt dirs
To support dual image in static layout, it needs to mount secondary's rofs/rwfs.
Update obmc-flash-bmc tool to support mounting 'alt-xxx' directories in /run/media/alt-xx
dual-image: Mount alt dirs
To support dual image in static layout, it needs to mount secondary's rofs/rwfs.
Update obmc-flash-bmc tool to support mounting 'alt-xxx' directories in /run/media/alt-xxx, and try to mount the alt-rofs, alt-rwfs before xyz.openbmc_project.Software.BMC.Updater.service starts.
The ExecStart command is prepended with `-` so that it does not matter if the mount fails, because the alt chip may be empty or contain invalid data.
Tested: Verify the obmc-flash-bmc-static-mount-alt.service starts before xyz.openbmc_project.Software.BMC.Updater.service, and verify it mounts alt-rofs for dual image systems. The alt-rwfs will be mounted by the needed service in future commits.
Signed-off-by: Lei YU <yulei.sh@bytedance.com> Change-Id: I2133a99d5324a1008c3508154f865ae54a716219
show more ...
|
25773a7e | 21-Jan-2022 |
Adriana Kobylak <anoo@us.ibm.com> |
Use flash id to write image to flash
Update the item updater helper functions to take the flash id instead of the version id since flash id is the name of the volumes/partitions.
The flash id was b
Use flash id to write image to flash
Update the item updater helper functions to take the flash id instead of the version id since flash id is the name of the volumes/partitions.
The flash id was being persisted for the mmc layout with the name of "partlabel". This is not needed anymore since the flash id is now being passed by the service files.
The write functions/service files still use the version id to know where the image files are located in /tmp/. They then set the value of flash id (Path property) which is then used by the other functions such as Delete and setting the u-boot environment variables.
Tested: Code update and Delete functions work on ubi and mmc.
Change-Id: I87c5b8ae2e24af30256dc3b436859835f14cda05 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
56ec62e2 | 20-Jan-2021 |
Adriana Kobylak <anoo@us.ibm.com> |
reset: Call execute() instead of systemd service
The obmc-flash-bmc-setenv@.service file calls a script that runs the fw_setenv command. Call the fw_setenv command directly as an effort to move away
reset: Call execute() instead of systemd service
The obmc-flash-bmc-setenv@.service file calls a script that runs the fw_setenv command. Call the fw_setenv command directly as an effort to move away from systemd service calls which are async calls and are harder to monitor for completion.
The only difference is that the script calls fw_setenv twice because for certain variables such as field mode, the code parses the actual environment file to get the value, and if the system supports a redundant environment, then fw_setenv is needed to be called twice so that the updated value is reflected in both redundant copies and the code parses the value correctly.
Factory reset is not a value that is parsed by this code, so a single call is enough.
Tested: Verified in witherspoon that the rwreset environment variable was set and factory reset occurred upon reboot.
Change-Id: I76691b1c8c78aa9232074d10d435a3e944b1cd9a Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
8e9ccfe7 | 18-Nov-2019 |
Bright Cheng <bright_cheng@wiwynn.com> |
Add support for full BMC FW flash image
Add BMC flash file name list for full flash image. Save the information for which images are being updated.
Tested: Update '.static.mtd.all.tar' with redfish
Add support for full BMC FW flash image
Add BMC flash file name list for full flash image. Save the information for which images are being updated.
Tested: Update '.static.mtd.all.tar' with redfish API ( UpdateService.SimpleUpdate). Verified the code update works well.
Change-Id: Icb47e518db61a8d17998179aed328d0cf56db6f5 Signed-off-by: Bright Cheng <bright_cheng@wiwynn.com> Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
436be816 | 17-Jun-2020 |
Adriana Kobylak <anoo@us.ibm.com> |
build: Rename .service files to service.in
Rename the .service files to .service.in to allow service files to support config variable substitution. Ex, this line in .in: ExecStart=/usr/bin/obmc-fl
build: Rename .service files to service.in
Rename the .service files to .service.in to allow service files to support config variable substitution. Ex, this line in .in: ExecStart=/usr/bin/obmc-flash-bmc ubiro @IMG_UPLOAD_DIR@ would become this in .service file: ExecStart=/usr/bin/obmc-flash-bmc ubiro "/tmp/images"
This allows the service files to use the user defined config values instead of making assumptions that the default is used.
This commit only renames the service files. The subsequent commit will make use of this feature.
In addition, the subdir meson.build files were deleted with this commit. The reason is that the service files need to be moved to the main meson.build to be able to read the conf file, and without the service files, the subdir meson.build files are just a couple lines long so there's not really a reason to have a separate meson.build file.
Tested: Verified the service files were installed as before.
Change-Id: I29190d1f0664352fbee8a0ada9de959fd0269d6e Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
5a43b373 | 06-May-2020 |
Adriana Kobylak <anoo@us.ibm.com> |
meson: build: Remove automake files and update READMEs
Tested: Ran CI and code update on witherspoon.
Change-Id: I4d9695cdddf48e4a4d884fb9b8e30108ee6dfe6c Signed-off-by: Adriana Kobylak <anoo@us.ib
meson: build: Remove automake files and update READMEs
Tested: Ran CI and code update on witherspoon.
Change-Id: I4d9695cdddf48e4a4d884fb9b8e30108ee6dfe6c Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
e0aa780b | 05-May-2020 |
Adriana Kobylak <anoo@us.ibm.com> |
meson: build: Generate binaries
Change-Id: I226e7f34538ac42cb331cdce8fdab1646e23d156 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com> |
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 changed, so appendi
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 ...
|
292159f4 | 05-May-2020 |
Adriana Kobylak <anoo@us.ibm.com> |
meson: Fix compile errors
Meson runs stricter compiler checks. Fix the following errors in preparation to moving to meson:
- Unusued parameters. Ex: ../download_manager_main.cpp:7:14: error: unused
meson: Fix compile errors
Meson runs stricter compiler checks. Fix the following errors in preparation to moving to meson:
- Unusued parameters. Ex: ../download_manager_main.cpp:7:14: error: unused parameter ‘argc’ [-Werror=unused-parameter] ../static/item_updater_helper.cpp:16:42: error: unused parameter ‘entryId’ [-Werror=unused-parameter] ../watch.cpp:77:38: error: unused parameter ‘s’ [-Werror=unused-parameter] [test/utest.cpp:166]: (style) Variable 'pubKeyConfFile' is assigned a value that is never used.
- Add destructor and initialize variable in init list: ../flash.hpp:18:7: error: ‘class phosphor::software::updater::Flash’ has virtual functions and accessible non-virtual destructor [-Werror=non-virtual-dtor] [version.hpp:81]: callback is assigned in constructor body. Consider performing initialization in initialization list
Tested: Verified code update on witherspoon still worked.
Change-Id: Ib7a0e0e11d6bfe6eeeb3f2ea4bfefd43505d639e Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
22848ece | 28-Oct-2019 |
Adriana Kobylak <anoo@us.ibm.com> |
Move function to enable field mode to common code
The only different between ubi and static layout for setting field mode was masking the usr-local.mount service file. Now that the service file is i
Move function to enable field mode to common code
The only different between ubi and static layout for setting field mode was masking the usr-local.mount service file. Now that the service file is in the common code, it makes sense to move the function to the common code.
Tested: - Witherspoon: Verified setting field mode disabled the /usr/local mount as it currently does. - Romulus: Verified that after setting the field mode, the usr-local.mount service file could not be started because it's masked.
Change-Id: I8afb755366053c38f72d682e874308c42e232d98 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
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: I5c7690d8d83cdebe26ff3a73b90a2a8c17dd8054 Signed-off-by:
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 ...
|
fa34e023 | 04-Sep-2018 |
Gunnar Mills <gmills@us.ibm.com> |
Clang 6 updates
Just some minor fixes.
Change-Id: I000c456e51c62220d7a5fed8100cfc6c13ef9551 Signed-off-by: Gunnar Mills <gmills@us.ibm.com> |
76c79df3 | 27-Aug-2018 |
Lei YU <mine260309@gmail.com> |
static layout: Support field mode
Enable support for field mode, which sets "fieldmode=true" in u-boot env.
Tested: Verify field mode is enabled via REST API, and verify it is still enabled
static layout: Support field mode
Enable support for field mode, which sets "fieldmode=true" in u-boot env.
Tested: Verify field mode is enabled via REST API, and verify it is still enabled after BMC reboot.
Change-Id: I9ff01a51260d1f08021e0ba7ade16fd48c8bb24e Signed-off-by: Lei YU <mine260309@gmail.com>
show more ...
|
28b2ba4a | 19-Jul-2018 |
Lei YU <mine260309@gmail.com> |
static layout: support factory reset
Implement factory reset for static flash layout, that starts obmc-flash-bmc-setenv to set factory-reset u-boot env and let init to do the cleanup.
Tested: Invok
static layout: support factory reset
Implement factory reset for static flash layout, that starts obmc-flash-bmc-setenv to set factory-reset u-boot env and let init to do the cleanup.
Tested: Invoke factory reset on /xyz/openbmc_project/software and verify everything in rwfs is deleted, and after reboot, the BMC acts like a fresh new one.
Change-Id: I20e361519af6c3c12703315070debabd8cf88060 Signed-off-by: Lei YU <mine260309@gmail.com>
show more ...
|
dd691576 | 17-Jul-2018 |
Lei YU <mine260309@gmail.com> |
Use separated images for fixed flash layout
For fixed flash layout code update, it was using the whole image-bmc. For future features like image verification during boot, it needs to use separated i
Use separated images for fixed flash layout
For fixed flash layout code update, it was using the whole image-bmc. For future features like image verification during boot, it needs to use separated images and separated keys.
So change the image-bmc to separated images.
Change-Id: I6cc56f82c786125bb4386af5ea1d931afed7901d Tested: Do code update on Romulus without issue. Signed-off-by: Lei YU <mine260309@gmail.com>
show more ...
|
bbcb7be1 | 17-Jul-2018 |
Adriana Kobylak <anoo@us.ibm.com> |
Move setting the priority U-Boot variable to ubi
The service that sets the priority value is unique to the ubi layout because there is only one version at a time on the static layout. Move the calli
Move setting the priority U-Boot variable to ubi
The service that sets the priority value is unique to the ubi layout because there is only one version at a time on the static layout. Move the calling of the service to the ubi implementation.
Tested: - Witherspoon: Priorities are still set. - Romulus: The BMC.Updater app does not core dump with the latest sdbusplus changes due to calling a non-existent service.
Change-Id: Ica1c68f00d5cb43c51ee09c5a3851613edf941d5 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|