mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-10-30 18:07:52 +00:00
ipq807x: Add post-flash check of written data
If it already looks to the system that the flashing of the image data failed, it is not a good idea to inform the u-boot to switch the inactive (newly flashed) partition to the active one Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch> Signed-off-by: Sven Eckelmann <sven@narfation.org>
This commit is contained in:
committed by
John Crispin
parent
cc54c8654f
commit
128bd3a17e
@@ -5,6 +5,25 @@
|
|||||||
# newly flashed partition. If the new partition can't be booted due to
|
# newly flashed partition. If the new partition can't be booted due to
|
||||||
# upgrade failures the previously used partition is loaded.
|
# upgrade failures the previously used partition is loaded.
|
||||||
|
|
||||||
|
platform_post_upgrade_sanity_check()
|
||||||
|
{
|
||||||
|
local part_name=$1
|
||||||
|
local inactive_mtd=$2
|
||||||
|
local cfg_md5=$3
|
||||||
|
local part_offset=$4
|
||||||
|
local part_size=$5
|
||||||
|
|
||||||
|
md5_part_disk=$(dd if=/dev/${inactive_mtd} bs=$((64*1024)) skip=$((part_offset / (64*1024))) count=$((part_size / (64*1024))) 2>&- | md5sum | awk '{print $1}')
|
||||||
|
|
||||||
|
if [ "${cfg_md5}" != "${md5_part_disk}" ]; then
|
||||||
|
echo "post-flashing checksum mismatch: ${part_name}" >&2
|
||||||
|
echo "${cfg_md5} != ${md5_part_disk}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
platform_do_upgrade_dualboot_datachk() {
|
platform_do_upgrade_dualboot_datachk() {
|
||||||
local tar_file="$1"
|
local tar_file="$1"
|
||||||
local restore_backup
|
local restore_backup
|
||||||
@@ -77,6 +96,9 @@ platform_do_upgrade_dualboot_datachk() {
|
|||||||
tar xf $tar_file ${board_dir}/root -O | mtd -n -p $kernel_length $restore_backup write - $PART_NAME
|
tar xf $tar_file ${board_dir}/root -O | mtd -n -p $kernel_length $restore_backup write - $PART_NAME
|
||||||
tar xf $tar_file ${board_dir}/kernel -O | mtd -n write - $PART_NAME
|
tar xf $tar_file ${board_dir}/kernel -O | mtd -n write - $PART_NAME
|
||||||
|
|
||||||
|
platform_post_upgrade_sanity_check "kernel" "mtd${kernel_mtd}" $kernel_md5 0 $kernel_length || return 1
|
||||||
|
platform_post_upgrade_sanity_check "rootfs" "mtd${kernel_mtd}" $rootfs_md5 $kernel_length $rootfs_length || return 1
|
||||||
|
|
||||||
# prepare new u-boot env
|
# prepare new u-boot env
|
||||||
if [ "$next_boot_part" = "1" ]; then
|
if [ "$next_boot_part" = "1" ]; then
|
||||||
echo "bootseq 1,2" > $setenv_script
|
echo "bootseq 1,2" > $setenv_script
|
||||||
|
|||||||
Reference in New Issue
Block a user