mirror of https://github.com/aredn/aredn.git
47 lines
1.9 KiB
Diff
47 lines
1.9 KiB
Diff
From: blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
|
|
Date: Tue, 1 Mar 2016 08:14:48 +0000
|
|
Subject: [PATCH] firmware-utils: mkfwimage: fix firmware_max_length for XM
|
|
layout
|
|
|
|
The new u-boot version bundled with the 5.6.x firmwares from Ubiquiti gets
|
|
confused by the smaller rootfs partition size; this can lead to various
|
|
issues:
|
|
|
|
1. We've gotten reports that flashing from the 5.6.x stock firmware to
|
|
OpenWrt will brick devices; I wasn't able to reproduce this myself
|
|
2. Flashing from 5.5.x stock firmware to OpenWrt and back to stock (via
|
|
TFTP recovery), following by an update to 5.6.x via web interface can
|
|
yield a bricked device with the following properties:
|
|
- It can't be booted without entering commands over a serial console, as
|
|
u-boot supplies the wrong MTD layout
|
|
- The web interface won't accept any image with the original flash
|
|
layout, so stock firmware upgrades are impossible
|
|
- As the TFTP recovery doesn't update u-boot, returning to the old
|
|
u-boot from firmware 5.5.x is impossible
|
|
|
|
To recover from 2., creating an OpenWrt image which doesn't set u-boot as
|
|
read-only and flashing a backup of the old u-boot from there is the only
|
|
way known to me. (Fixing the mtdparts variable in u-boot-env from OpenWrt
|
|
might also work; settings this from u-boot over serial didn't have
|
|
any permanent effect.)
|
|
|
|
Fix all of this by setting the correct flash layout also used by the stock
|
|
firmware. Flashing has been tested from both firmware 5.5.x and 5.6.x. The
|
|
fixed layout also matches the mtdparts defined by OpenWrt.
|
|
|
|
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
|
|
|
Backport of r48829
|
|
|
|
--- a/tools/firmware-utils/src/mkfwimage.c
|
|
+++ b/tools/firmware-utils/src/mkfwimage.c
|
|
@@ -79,7 +79,7 @@
|
|
.name = "XM",
|
|
.kern_start = 0x9f050000,
|
|
.kern_entry = 0x80002000,
|
|
- .firmware_max_length= 0x006A0000,
|
|
+ .firmware_max_length= 0x00760000,
|
|
},
|
|
{ .name = "",
|
|
},
|