summaryrefslogtreecommitdiffstats
path: root/target/linux/bcm53xx
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2016-06-10 12:53:11 +0200
committerRafał Miłecki <zajec5@gmail.com>2016-06-10 12:58:19 +0200
commit95d8568cb87fd96086998c304a453aef6ff88298 (patch)
treec99d248187055db07ccb2a1751f8605495c72308 /target/linux/bcm53xx
parent13ea815b6c3d4414aa54b07281b3b222756d45fe (diff)
downloadmaster-31e0f0ae-95d8568cb87fd96086998c304a453aef6ff88298.tar.gz
master-31e0f0ae-95d8568cb87fd96086998c304a453aef6ff88298.tar.bz2
master-31e0f0ae-95d8568cb87fd96086998c304a453aef6ff88298.zip
bcm53xx: calculate TRX CRC32 using whole kernel partition
This provides better protection of flash data. Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Diffstat (limited to 'target/linux/bcm53xx')
-rw-r--r--target/linux/bcm53xx/base-files/etc/uci-defaults/09_fix_crc7
1 files changed, 6 insertions, 1 deletions
diff --git a/target/linux/bcm53xx/base-files/etc/uci-defaults/09_fix_crc b/target/linux/bcm53xx/base-files/etc/uci-defaults/09_fix_crc
index 3d14827482..2959905e81 100644
--- a/target/linux/bcm53xx/base-files/etc/uci-defaults/09_fix_crc
+++ b/target/linux/bcm53xx/base-files/etc/uci-defaults/09_fix_crc
@@ -1,3 +1,8 @@
#!/bin/sh
-mtd fixtrx firmware || mtd fixseama firmware
+kernel_size=$(sed -n 's/mtd[0-9]*: \([0-9a-f]*\).*"\(kerel\|liux\)".*/\1/p' /proc/mtd)
+[ -n "$kernel_size" ] && kernel_size=$((0x$kernel_size))
+
+mtd ${kernel_size:+-c $kernel_size} fixtrx firmware && exit 0
+mtd fixseama firmware && exit 0
+exit 1