diff options
author | John Crispin <blogic@openwrt.org> | 2014-10-14 12:21:36 +0000 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2014-10-14 12:21:36 +0000 |
commit | 96d2eba315cab9d3fc7088e2278bcb560eaf8a19 (patch) | |
tree | 1748e20b79e0e74adf53b377bf0cc672ced386e5 /target/linux | |
parent | 06dd1915e4a75fbbc889e0beb92a81643670a900 (diff) | |
download | upstream-96d2eba315cab9d3fc7088e2278bcb560eaf8a19.tar.gz upstream-96d2eba315cab9d3fc7088e2278bcb560eaf8a19.tar.bz2 upstream-96d2eba315cab9d3fc7088e2278bcb560eaf8a19.zip |
ar71xx: qihoo-c301: reset imageNtrynum after each successful boot.
Qihoo C301 has 2 flash chips of which one is used as primary and the
other is used as backup. OEM U-Boot will try to boot an activeregion N
with imageNstatus=0 and imageNtrynum <= imagemaxtry. If such a region
is found, bootloader will try to increment imageNtrynum and boot it.
This patch tries to reset imageNtrynum after each successful boot (if
the boot process reaches the execution of /etc/init.d/done).
root@OpenWrt:/# hexdump -C -n 128 /dev/mtdblock9
00000000 9e f3 63 91 61 63 74 69 76 65 72 65 67 69 6f 6e |..c.activeregion|
00000010 3d 31 00 69 6d 61 67 65 31 73 74 61 74 75 73 3d |=1.image1status=|
00000020 30 00 69 6d 61 67 65 32 73 74 61 74 75 73 3d 30 |0.image2status=0|
00000030 00 69 6d 61 67 65 32 74 72 79 6e 75 6d 3d 30 00 |.image2trynum=0.|
00000040 69 6d 61 67 65 6d 61 78 74 72 79 3d 33 00 69 6d |imagemaxtry=3.im|
00000050 61 67 65 31 74 72 79 6e 75 6d 3d 30 00 00 00 00 |age1trynum=0....|
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42914 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux')
-rwxr-xr-x | target/linux/ar71xx/base-files/etc/diag.sh | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index bbe04b51ee..b3a8fc5cab 100755 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -297,6 +297,12 @@ set_state() { ;; done) status_led_on + case $(ar71xx_board_name) in + qihoo-c301) + local n=$(fw_printenv activeregion | cut -d = -f 2) + fw_setenv "image${n}trynum" 0 + ;; + esac ;; esac } |