ar71xx: ubnt-m-xw: Fix factory image flashing using TFTP recovery
authorPetr Štetiar <ynezz@true.cz>
Mon, 19 Nov 2018 20:44:50 +0000 (21:44 +0100)
committerPetr Štetiar <ynezz@true.cz>
Mon, 8 Apr 2019 16:37:04 +0000 (18:37 +0200)
commit6009b3fd586a1fd91400074080afb9545c6cf7e2
tree6f45a92511c0a6e295934dc08e520cac07e72b47
parentd23222a96caeca5f83d22ffd55e210da30eaa379
ar71xx: ubnt-m-xw: Fix factory image flashing using TFTP recovery

This is backport of the same functionality in ath79, from commit
 d42a7c469 ("ath79: ubnt-m-xw: Fix factory image flashing using TFTP
             recovery method")

Ubiquity allows flashing of unsigned factory images via TFTP recovery
method[1]. They claim in airOS v6.0.7 release changelog[2] following:

 All future airOS versions will be signed in this way and not allow
 unsigned firmware to be loaded except via TFTP.

U-boot bootloader on M-XW devices expects factory image revision
version in specific format. On airOS v6.1.7 with `U-Boot 1.1.4-s1039
(May 24 2017 - 15:58:18)` bootloader checks if the revision major(?)
number is actually a number, but in currently generated images there's
OpenWrt text and so the check fails:

 Hit any key to stop autoboot:  0
 Setting default IP 192.168.1.20
 Starting TFTP server...
 Receiving file from 192.168.1.25:38438
 Received 4981148 bytes
 Firmware check failed! (1)

By placing arbitrary correct number first in major version, we make the
bootloader happy and we can flash factory images over TFTP again:

 Received 3801500 bytes
 Firmware Version: XW.ar934x.v6.0.4-42.OpenWrt-r9766+2-be42e44
 Setting U-Boot environment variables
 Un-Protected 1 sectors
 Erasing Flash.... done

Patch provided by AREDN[3] project, tested on Bullet M2 XW.

1. https://help.ubnt.com/hc/en-us/articles/204910124-UniFi-TFTP-Recovery-for-Bricked-Access-Points
2. https://dl.ubnt.com/firmwares/XW-fw/v6.0.7/changelog.txt
3. https://github.com/aredn

Signed-off-by: Petr Štetiar <ynezz@true.cz>
target/linux/ar71xx/image/generic-ubnt.mk