ipq40xx: re-enable EA6350v3, EA8300, MR8300 builds
authorTony Ambardar <itugrok@yahoo.com>
Thu, 1 Dec 2022 04:10:59 +0000 (20:10 -0800)
committerTony Ambardar <itugrok@yahoo.com>
Sat, 31 Dec 2022 13:02:38 +0000 (05:02 -0800)
Raise the kernel size from 3 MB to 5 MB for EA6350v3, EA8300 and MR8300,
and correspondingly reduce the rootfs size by 2 MB:
  * modify partition definitions in related .dts files
  * modify device kernel/image sizes in generic.mk

Update to compat-version 2.0 to force factory image usage on sysupgrade,
noting the current version 1.1 is an unreleased update for DSA migration.

Also update the compat-version message, explaining the need to run one of
the following console commands to update U-Boot's kernel-size variable
before flashing the OpenWrt factory image.

    fw_setenv kernsize 500000          # (OpenWrt command line)

    setenv kernsize 500000 ; saveenv   # (U-Boot serial console)

Finally, re-enable the 3 devices.

Reviewed-by: Robert Marko <robimarko@gmail.com>
Tested-by: Nicolas TORMO <badulesia.granieri@gmail.com> # MR8300
Tested-by: Tony Ambardar <itugrok@yahoo.com> # EA6350v3
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
target/linux/ipq40xx/base-files/etc/uci-defaults/05_fix-compat-version
target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-ea6350v3.dts
target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-xx8300.dtsi
target/linux/ipq40xx/image/generic.mk

index 44873b9df43f12b3c8d7bbbb94772b83ce34773f..c011920897120cc8124ae74432959ede788f8c11 100644 (file)
@@ -1,6 +1,9 @@
 . /lib/functions.sh
 
 case "$(board_name)" in
+linksys,ea6350v3|\
+linksys,ea8300|\
+linksys,mr8300|\
 ezviz,cs-w3-wd1200g-eup)
        uci set system.@system[0].compat_version="2.0"
        uci commit system
index 75b556a7f92f0fa3a5b2be0468127fb49b913376..cd5b4c6ccc3754ca0eba944d018a82752fd16f64 100644 (file)
                                label = "kernel";
                                reg = <0x00000000 0x02800000>;
                        };
-                       rootfs@300000 {
+                       rootfs@500000 {
                                label = "rootfs";
-                               reg = <0x00300000 0x02500000>;
+                               reg = <0x00500000 0x02300000>;
                        };
                        alt_kernel@2800000 {
                                label = "alt_kernel";
                                reg = <0x02800000 0x02800000>;
                        };
-                       alt_rootfs@2b00000 {
+                       alt_rootfs@2d00000 {
                                label = "alt_rootfs";
-                               reg = <0x02b00000 0x02500000>;
+                               reg = <0x02d00000 0x02300000>;
                        };
                        sysdiag@5000000 {
                                label = "sysdiag";
index 4f2cf1f516ba7b9fcbea2d165ba71fa41c40dffb..51a37290a038fc864bb301a5adb9e66fa38a305f 100644 (file)
                                reg = <0x780000 0x5800000>;
                        };
 
-                       partition@a80000 {
+                       partition@c80000 {
                                label = "rootfs";
-                               reg = <0xa80000 0x5500000>;
+                               reg = <0xc80000 0x5300000>;
                        };
 
                        partition@5f80000 {
                                reg = <0x5f80000 0x5800000>;
                        };
 
-                       partition@6280000 {
+                       partition@6480000 {
                                label = "alt_rootfs";
-                               reg = <0x6280000 0x5500000>;
+                               reg = <0x6480000 0x5300000>;
                        };
 
                        partition@b780000 {
index 5dae52ff0ea13f572ff86bc6f882a24d8d6bb374..e17db37d8205de0499bb50ec2b04edc09116ff84 100644 (file)
@@ -637,74 +637,86 @@ endef
 # Missing DSA Setup
 #TARGET_DEVICES += glinet_gl-s1300
 
+define Device/kernel-size-6350-8300
+       DEVICE_COMPAT_VERSION := 2.0
+       DEVICE_COMPAT_MESSAGE := Kernel partition size must be increased for \
+       this OpenWrt version. Before continuing, you MUST issue either the \
+       command "fw_setenv kernsize 500000" from the OpenWrt command line, \
+       or "setenv kernsize 500000 ; saveenv" from the U-Boot serial console. \
+       Instead of the sysupgrade image, you must then install the OpenWrt \
+       factory image, setting the force flag and wiping the configuration. \
+       (e.g. "sysupgrade -n -F openwrt-squashfs-factory.bin" on command line)
+endef
+
 define Device/linksys_ea6350v3
        # The Linksys EA6350v3 has a uboot bootloader that does not
        # support either booting lzma kernel images nor booting UBI
        # partitions. This uboot, however, supports raw kernel images and
        # gzipped images.
        #
-       # As for the time of writing this, the device will boot the kernel
-       # from a fixed address with a fixed length of 3MiB. Also, the
-       # device has a hard-coded kernel command line that requieres the
+       # As configured by the OEM factory, the device will boot the kernel
+       # from a fixed address with a fixed length of 3 MiB. Also, the
+       # device has a hard-coded kernel command line that requires the
        # rootfs and alt_rootfs to be in mtd11 and mtd13 respectively.
        # Oh... and the kernel partition overlaps with the rootfs
        # partition (the same for alt_kernel and alt_rootfs).
        #
        # If you are planing re-partitioning the device, you may want to
-       # keep those details in mind:
-       # 1. The kernel adresses you should honor are 0x00000000 and
+       # keep these details in mind:
+       # 1. The kernel addresses you should honor are 0x00000000 and
        #    0x02800000 respectively.
-       # 2. The kernel size (plus the dtb) cannot exceed 3.00MiB in size.
+       # 2. The kernel size (plus the dtb) cannot exceed 3 MiB in size
+       #    unless the uboot environment variable "kernsize" is increased.
        # 3. You can use 'zImage', but not a raw 'Image' packed with lzma.
        # 4. The kernel command line from uboot is harcoded to boot with
        #    rootfs either in mtd11 or mtd13.
        $(call Device/FitzImage)
+       $(call Device/kernel-size-6350-8300)
        DEVICE_VENDOR := Linksys
        DEVICE_MODEL := EA6350
        DEVICE_VARIANT := v3
        SOC := qcom-ipq4018
        BLOCKSIZE := 128k
        PAGESIZE := 2048
-       KERNEL_SIZE := 3072k
-       IMAGE_SIZE := 37888k
+       KERNEL_SIZE := 5120k
+       IMAGE_SIZE := 35840k
        UBINIZE_OPTS := -E 5
        IMAGES += factory.bin
        IMAGE/factory.bin := append-kernel | append-uImage-fakehdr filesystem | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=EA6350v3
-       DEFAULT := n
 endef
 TARGET_DEVICES += linksys_ea6350v3
 
 define Device/linksys_ea8300
        $(call Device/FitzImage)
+       $(call Device/kernel-size-6350-8300)
        DEVICE_VENDOR := Linksys
        DEVICE_MODEL := EA8300
        SOC := qcom-ipq4019
-       KERNEL_SIZE := 3072k
-       IMAGE_SIZE := 87040k
+       KERNEL_SIZE := 5120k
+       IMAGE_SIZE := 84992k
        BLOCKSIZE := 128k
        PAGESIZE := 2048
        UBINIZE_OPTS := -E 5    # EOD marks to "hide" factory sig at EOF
        IMAGES += factory.bin
        IMAGE/factory.bin  := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=EA8300
        DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-linksys_ea8300 kmod-usb-ledtrig-usbport
-       DEFAULT := n
 endef
 TARGET_DEVICES += linksys_ea8300
 
 define Device/linksys_mr8300
        $(call Device/FitzImage)
+       $(call Device/kernel-size-6350-8300)
        DEVICE_VENDOR := Linksys
        DEVICE_MODEL := MR8300
        SOC := qcom-ipq4019
-       KERNEL_SIZE := 3072k
-       IMAGE_SIZE := 87040k
+       KERNEL_SIZE := 5120k
+       IMAGE_SIZE := 84992k
        BLOCKSIZE := 128k
        PAGESIZE := 2048
        UBINIZE_OPTS := -E 5    # EOD marks to "hide" factory sig at EOF
        IMAGES += factory.bin
        IMAGE/factory.bin  := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=MR8300
        DEVICE_PACKAGES := ath10k-firmware-qca9888-ct kmod-usb-ledtrig-usbport
-       DEFAULT := n
 endef
 TARGET_DEVICES += linksys_mr8300