12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
- Date: Mon, 14 Sep 2015 20:10:10 +0000
- Subject: scripts/om-fwupgradecfg-gen.sh: Fix u-boot image md5sum check
- The u-boot on Open Mesh devices checks the whole transfered image against a
- md5sum. This is stored inside the option filemd5sum inside the
- fwupgrade.cfg. The bootloader will not check it when this setting is
- missing and could therefore write invalid images to the flash.
- Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
- Backport of r46925
- Forwarded: https://patchwork.ozlabs.org/patch/624189/
- diff --git a/scripts/om-fwupgradecfg-gen.sh b/scripts/om-fwupgradecfg-gen.sh
- index c790214..fab1582 100644
- --- a/scripts/om-fwupgradecfg-gen.sh
- +++ b/scripts/om-fwupgradecfg-gen.sh
- @@ -48,6 +48,7 @@ ROOTFS_FLASH_ADDR=$(addr=$(($KERNEL_FLASH_ADDR + ($KERNEL_PART_SIZE * 1024))); p
- ROOTFS_SIZE=$(stat -c%s "$ROOTFS_PATH")
- ROOTFS_CHECK_BLOCKS=$((($ROOTFS_SIZE / $CHECK_BS) - $MD5_SKIP_BLOCKS))
- ROOTFS_MD5=$(md5=$(dd if=$ROOTFS_PATH bs=$CHECK_BS count=$ROOTFS_CHECK_BLOCKS 2>&- | md5sum); echo ${md5%% *})
- +ROOTFS_MD5_FULL=$(md5=$(md5sum $ROOTFS_PATH); echo ${md5%% *})
- ROOTFS_CHECK_SIZE=$(printf '0x%x' $(($ROOTFS_CHECK_BLOCKS * $CHECK_BS)))
- ROOTFS_PART_SIZE=$(($MAX_PART_SIZE - $KERNEL_PART_SIZE))
-
- @@ -55,6 +56,7 @@ cat << EOF > $CFG_OUT
- [vmlinux]
- filename=kernel
- md5sum=$KERNEL_MD5
- +filemd5sum=$KERNEL_MD5
- flashaddr=$KERNEL_FLASH_ADDR
- checksize=0x0
- cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; saveenv
- @@ -63,6 +65,7 @@ cmd_fail=reset
- [rootfs]
- filename=rootfs
- md5sum=$ROOTFS_MD5
- +filemd5sum=$ROOTFS_MD5_FULL
- flashaddr=$ROOTFS_FLASH_ADDR
- checksize=$ROOTFS_CHECK_SIZE
- cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; setenv rootfs_size_1 $ROOTFS_PART_SIZE; saveenv
|