From 742ac017baaa7de2fde04bf6cdd39c0e9e5f92e0 Mon Sep 17 00:00:00 2001
From: Stefan Lippers-Hollmann <s.l-h@gmx.de>
Date: Fri, 18 May 2018 03:10:18 +0200
Subject: ipq806x: increase kernel partition size for the TP-Link Archer C2600

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>

(cherry picked from commit b72b36653a3fc8347456ab9c45d26a3144688a4c)
---
 tools/firmware-utils/src/tplink-safeloader.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

(limited to 'tools')

diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
index 53205353b7..22bbc17d07 100644
--- a/tools/firmware-utils/src/tplink-safeloader.c
+++ b/tools/firmware-utils/src/tplink-safeloader.c
@@ -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},
-- 
cgit v1.2.3