sunxi: sysupgrade: don't write partitions twice

When existing partitions are retained, the dd call writing the uboot image
in the space before the first partition was accidentally writing the whole
image, making the code for individual partitions redundant. Limit the copy
to 1016KiB (the first 8KiB are skipped, and the first partition starts at
1024KiB).

In addition, conv=notrunc is replaced with conv=fsync. It seems this was an
oversight, as notrunc doesn't make sense for block devices and all other dd
commands use conv=fsync.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
This commit is contained in:
Matthias Schiffer 2017-05-04 07:29:58 +02:00
parent dac07ca05b
commit 6bb7b87315
No known key found for this signature in database
GPG key ID: 16EF3F64CB201D9C

View file

@ -43,7 +43,7 @@ platform_do_upgrade() {
fi
#write uboot image
get_image "$@" | dd of="$diskdev" bs=1024 skip=8 seek=8 conv=notrunc
get_image "$@" | dd of="$diskdev" bs=1024 skip=8 seek=8 count=1016 conv=fsync
#iterate over each partition from the image and write it to the boot disk
while read part start size; do
part="$(($part - 2))"