ipq806x: increase kernel partition size for the TP-Link Archer C2600
authorStefan Lippers-Hollmann <s.l-h@gmx.de>
Fri, 18 May 2018 01:10:18 +0000 (03:10 +0200)
committerJohn Crispin <john@phrozen.org>
Tue, 22 May 2018 18:34:14 +0000 (20:34 +0200)
The default image does not fit 2 MB anymore, expand os-image partition
to 4 MB.

Upgrading works transparently via sysupgrade in both directions.
Another option would have been to merge "os-image" and "rootfs" into a
single "firmware" partition using MTD_SPLIT_TPLINK_FW, but just
changing the sizes of the existing partitioning has been deemed safer
and actually tested on an affected device; the maximum for rootfs
changes from 27 MB to 25 MB.

Run-tested on TP-Link Archer C2600.

Signed-off-by: Joris de Vries <joris@apptrician.nl>
[slh: extend comments and commit message, rename rootfs]
Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-c2600.dts
tools/firmware-utils/src/tplink-safeloader.c

index a4fd134..02b1e7b 100644 (file)
 
                                        os-image@1f0000 {
                                                label = "os-image";
-                                               reg = <0x1f0000 0x200000>;
+                                               reg = <0x1f0000 0x400000>;
                                        };
 
-                                       rootfs@3f0000 {
+                                       rootfs@5f0000 {
                                                label = "rootfs";
-                                               reg = <0x3f0000 0x1b00000>;
+                                               reg = <0x5f0000 0x1900000>;
                                        };
 
                                        defaultmac: default-mac@1ef0000 {
index 5320535..22bbc17 100644 (file)
@@ -267,6 +267,11 @@ static struct device_info boards[] = {
                .support_trail = '\x00',
                .soft_ver = NULL,
 
+               /**
+                   We use a bigger os-image partition than the stock images (and thus
+                   smaller file-system), as our kernel doesn't fit in the stock firmware's
+                   2 MB os-image since kernel 4.14.
+               */
                .partitions = {
                        {"SBL1", 0x00000, 0x20000},
                        {"MIBIB", 0x20000, 0x20000},
@@ -279,8 +284,8 @@ static struct device_info boards[] = {
                        {"fs-uboot", 0x100000, 0x70000},
                        {"uboot-env", 0x170000, 0x40000},
                        {"radio", 0x1b0000, 0x40000},
-                       {"os-image", 0x1f0000, 0x200000},
-                       {"file-system", 0x3f0000, 0x1b00000},
+                       {"os-image", 0x1f0000, 0x400000}, /* Stock: base 0x1f0000 size 0x200000 */
+                       {"file-system", 0x5f0000, 0x1900000}, /* Stock: base 0x3f0000 size 0x1b00000 */
                        {"default-mac", 0x1ef0000, 0x00200},
                        {"pin", 0x1ef0200, 0x00200},
                        {"product-info", 0x1ef0400, 0x0fc00},