History log of /openbmc/phosphor-bmc-code-mgmt/obmc-flash-bmc (Results 1 – 20 of 20)
Revision Date Author Comments
# db3d966a 06-Dec-2024 Adriana Kobylak <anoo@us.ibm.com>

obmc-flash-bmc: Add new Manager service as default

For D-Bus calls that require the service name, use the new
Software.Manager service first since that'll be the default, and if the
call fails, try

obmc-flash-bmc: Add new Manager service as default

For D-Bus calls that require the service name, use the new
Software.Manager service first since that'll be the default, and if the
call fails, try with the old code update service name:
busctl new || old

We could use the mapper API GetObject to figure out the service name,
but this would add a 2nd D-Bus call, and the new code update service
would be the default so there's no need to make additional calls. In
addition the output of GetObject would need to be parsed. And in some
instances like the call to busctl tree service, there's not a unique
interface under the software/ path to differentiate the service name
from other updaters such as the PSU update manager.

Tested: Code update with new and old service on a p10bmc system.

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

show more ...


# dedcb9a6 02-Jun-2023 Adriana Kobylak <anoo@us.ibm.com>

mmc: Don't remove hostfw if it's not being updated

The image-hostfw is optional, therefore don't delete it unless it's
going to be updated, to prevent ending up with a system that doesn't
have a bio

mmc: Don't remove hostfw if it's not being updated

The image-hostfw is optional, therefore don't delete it unless it's
going to be updated, to prevent ending up with a system that doesn't
have a bios image to boot with.

Tested: Verify the hostfw image doesn't get deleted unless the tarball
contains an image-hostfw file.

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

show more ...


# dcfadad5 23-May-2023 Adriana Kobylak <anoo@us.ibm.com>

mmc: Run fsck on the alternate image and hostfw

Before mounting the alternate image, run fsck on it to determine if the
filesystem is corrupted, this could happen if the BMC rebooted in the
middle o

mmc: Run fsck on the alternate image and hostfw

Before mounting the alternate image, run fsck on it to determine if the
filesystem is corrupted, this could happen if the BMC rebooted in the
middle of a code update for example. Invalidate the image if it's found
to be corrupted.

Run fsck on the hostfw partition too, this is a writable partition that
can benefit from autocorrection. The mmc initramfs runs fsck on the rwfs
partition already. It's a good practice to run fsck on writable
partitions. Do not fail if fsck fails on the hostfw partition, if it's
corrupted, an error would occur during the power on.

Tested: Verified there were no errors with this change. This change adds
about 1s to the execution of the mount service, from 5s to 6s to start:

May 24 19:07:27 p10bmc systemd[1]: Starting Mount BMC rofs volumes
after a reboot...
May 24 19:07:27 p10bmc obmc-flash-bmc[328]:
/dev/disk/by-partlabel/rofs-a: clean, 6430/68816 files, 192421/275012
blocks
May 24 19:07:27 p10bmc kernel: EXT4-fs (mmcblk0p4): mounted
filesystem with ordered data mode. Quota mode: disabled.
May 24 19:07:33 p10bmc fsck.ext4[474]: hostfw: clean, 247/655360
files, 196363/1310720 blocks
May 24 19:07:34 p10bmc kernel: EXT4-fs (mmcblk0p7): mounted
filesystem with ordered data mode. Quota mode: disabled.
May 24 19:07:34 p10bmc systemd[1]: obmc-flash-mmc-mount.service:
Deactivated successfully.
May 24 19:07:34 p10bmc systemd[1]: Finished Mount BMC rofs volumes
after a reboot.

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

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


# 780c930e 08-Dec-2022 Patrick Williams <patrick@stwcx.xyz>

beautysh: re-format

beautysh is enabled in the openbmc-build-scripts on Bash/Zsh/POSIX-sh
files to have a consistent formatting. Re-run the formatter on the
whole repository.

Signed-off-by: Patric

beautysh: re-format

beautysh is enabled in the openbmc-build-scripts on Bash/Zsh/POSIX-sh
files to have a consistent formatting. Re-run the formatter on the
whole repository.

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

show more ...


# 7b1b4cb8 24-May-2022 Lei YU <yulei.sh@bytedance.com>

obmc-flash-bmc: Ignore SC2295

With the updated openbmc-build-scripts shellcheck reports SC2295 error.
Ignore this error to make CI pass.

Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: I7

obmc-flash-bmc: Ignore SC2295

With the updated openbmc-build-scripts shellcheck reports SC2295 error.
Ignore this error to make CI pass.

Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: I7b532aa9ba477bad8169e15b51bc2d19a2a066b6

show more ...


# c53fccac 02-Feb-2022 Isaac Kurth <blisaac91@gmail.com>

obmc-flash-bmc: fix shellcheck warnings

Tested: Built the ubi.mtd.tar file and loaded it onto a witherspoon
machine, verified ubi volumes were updated and mounted after reboot as
expected. Performed

obmc-flash-bmc: fix shellcheck warnings

Tested: Built the ubi.mtd.tar file and loaded it onto a witherspoon
machine, verified ubi volumes were updated and mounted after reboot as
expected. Performed a code update on mmc system, verified it booted as
expected.

Signed-off-by: Isaac Kurth <blisaac91@gmail.com>
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
Change-Id: I69cde49626c0a7f8cf8d0028b2c24d2c3ca4458e

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


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


# 1e81f23c 18-Jan-2022 Adriana Kobylak <anoo@us.ibm.com>

Determine functional versions from mount directory

In order to support the same version on the primary and backup flash
locations, the version string is not enough to determine which version
is func

Determine functional versions from mount directory

In order to support the same version on the primary and backup flash
locations, the version string is not enough to determine which version
is functional. Therefore add a functional suffix to the mount directory
of the functional and use that to set the Version as functional.

Tested: The mount directories indicate which version is functional,
associations look correct.

- static:
root@romulus:~# ls -l /run/media/rofs-79139bc0-functional/etc/
lrwxrwxrwx 1 root root 15 Jan 22 20:11 os-release ->
/etc/os-release

root@romulus:~# busctl call xyz.openbmc_project.ObjectMapper
/xyz/openbmc_project/software/functional org.freedesktop.DBus.Properties
Get ss xyz.openbmc_project.Association endpoints
v as 1 "/xyz/openbmc_project/software/79139bc0"

- ubi
root@witherspoon:~# df
/dev/ubiblock0_0 18816 18816 0 100% /media/rofs-cfb85943-functional
/dev/ubiblock4_0 18816 18816 0 100% /media/rofs-26085328

- mmc:
Verified functional association is correct, the rofs directories are
still unmounted after the bmc updater starts.

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

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


# a84f06d2 18-Jan-2022 Adriana Kobylak <anoo@us.ibm.com>

updater: Introduce the concept of flash id

There is a desire to be able to upload and update the same image to the
BMC. This would require to generate different version ids for each, not
tied to the

updater: Introduce the concept of flash id

There is a desire to be able to upload and update the same image to the
BMC. This would require to generate different version ids for each, not
tied to the version string. In order to correlate a version with the
persistent data on flash, introduce the concept of flash id.

Flash id is the name or id of the flash location where the image was
flashed, it could be a volume name, partition name, mtd device name,
etc.

Use the updater version Path property for the flash id value. A d-bus
property is needed so that obmc-flash-bmc can save the value once it
determines the location to flash the new image. The version Path
property is empty when the BMC boots up, and it's set to the image path
in /tmp/ when an image is uploaded. This change will set the Path
property to the location where the image resides when the BMC boots up,
and it'll update the Path property from /tmp/ to the location on flash
for an uploaded image once that image was successfully written to flash.

The ubi volume names are based on the uploaded version id, keep this the
same for simplicity, the flash id would then be the version id of the
uploaded image (which would eventually be a random number). The mmc
partitions are named rofs-a/rofs-b, so the flash id would be "a" or "b".

Tested: Verified the Path property was set to the version id on ubi and
to "a" or "b" on mmc.

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

show more ...


# 9b8816f5 02-Dec-2020 Adriana Kobylak <anoo@us.ibm.com>

obmc-flash-bmc: Specify full path for mktemp

Some eMMC systems report the following error when updating u-boot:

Dec 02 18:14:40 openbmc systemd[1]: Starting Write image 3ca0afa1 to

obmc-flash-bmc: Specify full path for mktemp

Some eMMC systems report the following error when updating u-boot:

Dec 02 18:14:40 openbmc systemd[1]: Starting Write image 3ca0afa1 to BMC storage...
Dec 02 18:14:41 openbmc obmc-flash-bmc[507]: mktemp: (null): Read-only file system
Dec 02 18:14:41 openbmc obmc-flash-bmc[508]: dd: can't open '': No such file or directory
Dec 02 18:14:41 openbmc obmc-flash-bmc[510]: /usr/bin/obmc-flash-bmc: line 462: : No such file or directory

It appears that the TMPDIR variable is not set in that environment,
even though that a manual mktemp command works, so may be tied to
the script running in a bash shell.

In any case, specify the full path for the mktemp directory so that
it creates the file in /tmp/ and doesn't attempt to create it in
the running rootfs directory which is read-only.

Tested: Error was not seeing in the failing system and u-boot was updated.

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

show more ...


# 62f3820b 29-Sep-2020 Adriana Kobylak <anoo@us.ibm.com>

mmc: Update u-boot if needed

Calculate a hash over the u-boot image file and the mmc device
where u-boot is stored to determine if it needs to be updated.

Tested: Verified that

mmc: Update u-boot if needed

Calculate a hash over the u-boot image file and the mmc device
where u-boot is stored to determine if it needs to be updated.

Tested: Verified that after the mmc device is updated, an update
to the same image does not rewrite the device where u-boot is.

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

show more ...


# d148b4f0 27-Aug-2020 Adriana Kobylak <anoo@us.ibm.com>

mmc: Remove hostfw patches on update

Remove the hostfw patch for the alternate side during
code update since that's the side that's been updated and
the patches may not be compatible

mmc: Remove hostfw patches on update

Remove the hostfw patch for the alternate side during
code update since that's the side that's been updated and
the patches may not be compatible with the new firmware level.

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

show more ...


# 5312d854 18-Jul-2020 Adriana Kobylak <anoo@us.ibm.com>

mmc: Enhance get running partition label function

The mount -l command may not show the filesystem label after a code
update since the this filesystem label is part of the image when it

mmc: Enhance get running partition label function

The mount -l command may not show the filesystem label after a code
update since the this filesystem label is part of the image when it
gets built. Therefore determine the running partition via the device
then map it to the partition label (partlabel) which doesn't change.
Also return the label only if found, don't assume that because 'a'
didn't match that the device should be 'b'.

Tested: Verified the right label was found.

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

show more ...


# 8c5209d3 12-Jul-2020 Adriana Kobylak <anoo@us.ibm.com>

mmc: Add support for update/delete hostfw

The hostfw image file can be delivered in the code update
tarball. If it is, then update it (copy the file to the
hostfw partition directory

mmc: Add support for update/delete hostfw

The hostfw image file can be delivered in the code update
tarball. If it is, then update it (copy the file to the
hostfw partition directory.

To delete it, need to first unmount the secondary (non-
running) hostfw mount, then delete the file.

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

show more ...


# 34124351 22-May-2020 Adriana Kobylak <anoo@us.ibm.com>

mmc: Set updated version to primary

Once the update is successful, mark the version as primary so that
it boots from the updated version upon BMC reboot.

Add a sleep to wait for

mmc: Set updated version to primary

Once the update is successful, mark the version as primary so that
it boots from the updated version upon BMC reboot.

Add a sleep to wait for the service file to complete setting the
primary version. Otherwise, the BMC could mark a Delete or
Priority value change as complete and the service is not done yet,
and if the BMC is rebooted it could try to boot from a non-existent
version.

As backgroung, reference issue openbmc/openbmc#2857 that attempted
to create a 'wait for service' function but was not successful.
This could be investigated further at a later time, which would
benefit other functions like Factory Reset that are also using
sleep as a workaround to wait for systemd service files.

Tested: Verified the version was set to primary during code update
and delete, and that 3s passed (service file finished in
about 1s) before the delete/update continued.

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

show more ...


# 70f5bc04 13-May-2020 Adriana Kobylak <anoo@us.ibm.com>

mmc: Update and remove functions for the kernel and rootfs

Add support for update and remove of eMMC images.

The code update tarball contains an image-kernel and image-rofs
file

mmc: Update and remove functions for the kernel and rootfs

Add support for update and remove of eMMC images.

The code update tarball contains an image-kernel and image-rofs
files. These can be flashed directly to the eMMC partitions since
they're filesystem files compressed with zstd:

https://gerrit.openbmc-project.xyz/c/openbmc/meta-phosphor/+/30781
https://gerrit.openbmc-project.xyz/c/openbmc/meta-phosphor/+/34334

The image-rofs contains the BMC rootfs files, and the image-kernel
contains the fitImage file which is loaded by U-Boot.

Tested: Verified the non-running rofs and kernel partitions were updated.

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

show more ...


# 9cbfa2ef 25-Apr-2019 Adriana Kobylak <anoo@us.ibm.com>

Move script, systemd conf, service files into repo

Move the common scripts, systemd configuration and service files
from openbmc/openbmc to the local one.

Tested: The moved file

Move script, systemd conf, service files into repo

Move the common scripts, systemd configuration and service files
from openbmc/openbmc to the local one.

Tested: The moved files are installed in their respective locations
and code update on Witherspoon is successful.

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

show more ...