ramips: fix/tidy up 4M tplink-v2-image flash layouts
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>
Mon, 3 Aug 2020 10:02:48 +0000 (12:02 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Mon, 3 Aug 2020 10:17:08 +0000 (12:17 +0200)
For the TP-Link 4M devices with tplink-v2-image recipe
(mktplinkfw2.c), there are two different flash layouts based
on the size of the (u)boot partition:

device         uboot    OEM firmware  OpenWrt (incl. config)
tl-wr840n-v5   0x20000  0x3c0000      0x3d0000
tl-wr841n-v14  0x10000  0x3d0000      0x3e0000

In both cases, the 0x10000 config partition is used for the firmware
partition as well due to the limited space available and since it's
recreated by the OEM firmware anyway.

However, the TFTP flashing process will only copy data up to the
size of the initial (OEM) firmware size. Therefore, while we can
use the bigger partition to have additional erase blocks on the
device, we have to limit the image sizes to the TFTP limits.

So far, only one layout definition has been set up in mktplinkfw2.c
for 4M mediatek devices. This adds a second one and assigns them
to the devices so the image sizes are correctly restrained.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ramips/image/mt76x8.mk
tools/firmware-utils/src/mktplinkfw2.c

index 00c8fbe43ecc6a75fa67c3a75ecc2a559f6e8ae6..9ec469d32df5244edc2e2ec297d470499e602b8d 100644 (file)
@@ -528,7 +528,7 @@ define Device/tplink_tl-wr841n-v14
   IMAGE_SIZE := 3968k
   DEVICE_MODEL := TL-WR841N
   DEVICE_VARIANT := v14
-  TPLINK_FLASHLAYOUT := 4Mmtk
+  TPLINK_FLASHLAYOUT := 4MLmtk
   TPLINK_HWID := 0x08410014
   TPLINK_HWREVADD := 0x14
   IMAGES := sysupgrade.bin tftp-recovery.bin
index 102d72b1cc67f184d9dcdecc03c3ef1280d513de..e1c28e63470ff0303eac464c3090e73c4b4264d6 100644 (file)
@@ -124,6 +124,12 @@ char md5salt_boot[MD5SUM_LEN] = {
 static struct flash_layout layouts[] = {
        {
                .id             = "4Mmtk",
+               .fw_max_len     = 0x3c0000,
+               .kernel_la      = 0x80000000,
+               .kernel_ep      = 0x80000000,
+               .rootfs_ofs     = 0x140000,
+       }, {
+               .id             = "4MLmtk",
                .fw_max_len     = 0x3d0000,
                .kernel_la      = 0x80000000,
                .kernel_ep      = 0x80000000,