mediatek: make sure MMC is not busy before commencing sysupgrade

In case of the block device still being in use, re-reading the
partition table fails. In that case, abort sysupgrade to avoid
corrupting the just-written image because of wrong offsets caused
by failure to re-read the partition table.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
Daniel Golle 2021-10-27 15:30:39 +01:00
parent b2aca61360
commit 4ae4035e60
No known key found for this signature in database
GPG Key ID: 5A8F39C31C3217CA
2 changed files with 2 additions and 0 deletions

View File

@ -12,6 +12,7 @@ platform_do_upgrade() {
export_partdevice rootdev 0
case "$rootdev" in
mmc*)
blockdev --rereadpt /dev/$rootdev || return 1
local fitpart=$(get_partition_by_name $rootdev "production")
[ "$fitpart" ] || return 1
dd if=/dev/zero of=/dev/$fitpart bs=4096 count=1 2>/dev/null

View File

@ -86,6 +86,7 @@ platform_do_upgrade() {
bananapi,bpi-r2)
export_bootdevice
export_partdevice rootdev 0
blockdev --rereadpt /dev/$rootdev || return 1
export_partdevice fitpart 3
[ "$fitpart" ] || return 1
dd if=/dev/zero of=/dev/$fitpart bs=4096 count=1 2>/dev/null