瀏覽代碼

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 <[email protected]>
[slh: extend comments and commit message, rename rootfs]
Signed-off-by: Stefan Lippers-Hollmann <[email protected]>
Stefan Lippers-Hollmann 7 年之前
父節點
當前提交
b72b36653a

+ 3 - 3
target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-c2600.dts

@@ -231,12 +231,12 @@
 
 					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 {

+ 7 - 2
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},