summaryrefslogtreecommitdiffstats
path: root/meta-phosphor/common/recipes-phosphor/flash
diff options
context:
space:
mode:
Diffstat (limited to 'meta-phosphor/common/recipes-phosphor/flash')
-rw-r--r--meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc36
-rw-r--r--meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc-ubiro@.service2
2 files changed, 30 insertions, 8 deletions
diff --git a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc
index 57b557fd7..d94f472ce 100644
--- a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc
+++ b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc
@@ -133,10 +133,6 @@ ubi_block() {
return 1
fi
fi
- copy_env_var_to_alt ubiblock
- ubi_setenv "ubiblock=$(echo "${ubidevid}" | sed 's/_/,/')"
- copy_env_var_to_alt root
- ubi_setenv "root=${block}"
}
ubi_updatevol() {
@@ -148,10 +144,6 @@ ubi_updatevol() {
echo "Unable to update volume ${name}!"
return 1
fi
- if [[ "${name}" =~ "kernel" ]]; then
- copy_env_var_to_alt kernelname
- ubi_setenv "kernelname=${name}"
- fi
}
ubi_remove() {
@@ -226,6 +218,27 @@ mtd_write() {
flashcp -v ${img} /dev/${flashmtd}
}
+backup_env_vars() {
+ copy_env_var_to_alt kernelname
+ copy_env_var_to_alt ubiblock
+ copy_env_var_to_alt root
+}
+
+update_env_vars() {
+ vol="$(findubi rofs-"${version}")"
+ if [ -z "${vol}" ]; then
+ return 1
+ fi
+ ubidevid="${vol#ubi}"
+ block="/dev/ubiblock${ubidevid}"
+ if [ ! -e "${block}" ]; then
+ return 1
+ fi
+ ubi_setenv "kernelname=kernel-${version}"
+ ubi_setenv "ubiblock=$(echo "${ubidevid}" | sed 's/_/,/')"
+ ubi_setenv "root=${block}"
+}
+
case "$1" in
mtduboot)
reqmtd="$2"
@@ -269,6 +282,13 @@ case "$1" in
ubiremount)
remount_ubi
;;
+ preupdate)
+ backup_env_vars
+ ;;
+ postupdate)
+ version="$2"
+ update_env_vars
+ ;;
*)
echo "Invalid argument"
exit 1
diff --git a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc-ubiro@.service b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc-ubiro@.service
index 7c2a2527b..98366fd02 100644
--- a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc-ubiro@.service
+++ b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc-ubiro@.service
@@ -4,7 +4,9 @@ Description=Store read-only images %I to BMC storage
[Service]
Type=oneshot
RemainAfterExit=no
+ExecStartPre=/usr/bin/env obmc-flash-bmc preupdate
ExecStart=/usr/bin/env obmc-flash-bmc ubiro {RO_MTD} rofs-%i %i
ExecStart=/usr/bin/env obmc-flash-bmc ubikernel {KERNEL_MTD} kernel-%i %i
ExecStart=/usr/bin/env obmc-flash-bmc mtduboot u-boot %i
+ExecStartPost=/usr/bin/env obmc-flash-bmc postupdate %i
SyslogIdentifier=obmc-flash-bmc
OpenPOWER on IntegriCloud