aboutsummaryrefslogtreecommitdiff
path: root/target/linux
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2024-01-22 19:12:40 +0000
committerDaniel Golle <daniel@makrotopia.org>2024-02-15 19:30:08 +0000
commit6aec3c7b5bf5e5a999a12121dfa71963afb6f003 (patch)
treecb4b1c25e8c8635e85a9c5c5aaf7c1021195c082 /target/linux
parent41c053141e678b670d0bc67edf2bb1166c3d7f0a (diff)
mediatek: mt7622: modernize Linksys E8450 / Belkin RT3200 UBI build
Move fip and factory into UBI static volumes. Use fitblk instead of partition parser. !! RUN INSTALLER FIRST !! Existing users of previous OpenWrt releases or snapshot builds will have to **re-run the updated installer** before upgrading to firmware after this commit. DO NOT flash or run even just the initramfs image unless you have run the updated installer which moves the content of the 'factory' partition into a UBI volume. tl;dr: DON'T USE YET! Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/mediatek/dts/mt7622-linksys-e8450-ubi.dts72
-rw-r--r--target/linux/mediatek/image/mt7622.mk6
-rw-r--r--target/linux/mediatek/mt7622/base-files/etc/board.d/05_compat-version3
-rw-r--r--target/linux/mediatek/mt7622/base-files/etc/uci-defaults/05_fix-compat-version4
-rwxr-xr-xtarget/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh5
-rw-r--r--target/linux/mediatek/mt7622/config-6.11
6 files changed, 64 insertions, 27 deletions
diff --git a/target/linux/mediatek/dts/mt7622-linksys-e8450-ubi.dts b/target/linux/mediatek/dts/mt7622-linksys-e8450-ubi.dts
index e78db1de6c..e2b7268e85 100644
--- a/target/linux/mediatek/dts/mt7622-linksys-e8450-ubi.dts
+++ b/target/linux/mediatek/dts/mt7622-linksys-e8450-ubi.dts
@@ -10,6 +10,11 @@
aliases {
label-mac-device = &wan;
};
+
+ chosen {
+ rootdisk = <&ubi_rootfs>;
+ bootargs = "earlycon=uart8250,mmio32,0x11002000 console=ttyS0,115200n1 swiotlb=512 ubi.block=0,fit root=/dev/fit0";
+ };
};
&snand {
@@ -25,45 +30,70 @@
};
partition@80000 {
- label = "fip";
- reg = <0x80000 0x140000>;
- read-only;
- };
+ label = "ubi";
+ reg = <0x80000 0x7f80000>;
+ compatible = "linux,ubi";
- factory: partition@1c0000 {
- label = "factory";
- reg = <0x1c0000 0x100000>;
- read-only;
+ volumes {
+ ubi-volume-ubootenv {
+ volname = "ubootenv";
+ nvmem-layout {
+ compatible = "u-boot,env-redundant-bool-layout";
+ };
+ };
- nvmem-layout {
- compatible = "fixed-layout";
- #address-cells = <1>;
- #size-cells = <1>;
+ ubi-volume-ubootenv2 {
+ volname = "ubootenv2";
+ nvmem-layout {
+ compatible = "u-boot,env-redundant-bool-layout";
+ };
+ };
- macaddr_factory_7fff4: macaddr@7fff4 {
- reg = <0x7fff4 0x6>;
+ ubi_rootfs: ubi-volume-fit {
+ volname = "fit";
};
- macaddr_factory_7fffa: macaddr@7fffa {
- reg = <0x7fffa 0x6>;
+ ubi_factory: ubi-volume-factory {
+ volname = "factory";
};
};
};
+ };
+};
+
+&ubi_factory {
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ eeprom_factory_0: eeprom@0 {
+ reg = <0x0 0x4da8>; /* actual length 0x400 */
+ };
- partition@300000 {
- label = "ubi";
- reg = <0x300000 0x7d00000>;
+ eeprom_factory_5000: eeprom@5000 {
+ reg = <0x5000 0xe00>;
+ };
+
+ macaddr_factory_7fff4: macaddr@7fff4 {
+ reg = <0x7fff4 0x6>;
+ };
+
+ macaddr_factory_7fffa: macaddr@7fffa {
+ reg = <0x7fffa 0x6>;
};
};
};
&wmac {
- mediatek,mtd-eeprom = <&factory 0x0>;
+ nvmem-cells = <&eeprom_factory_0>;
+ nvmem-cell-names = "eeprom";
status = "okay";
};
&wmac1 {
- mediatek,mtd-eeprom = <&factory 0x5000>;
+ nvmem-cells = <&eeprom_factory_5000>;
+ nvmem-cell-names = "eeprom";
};
&gmac0 {
diff --git a/target/linux/mediatek/image/mt7622.mk b/target/linux/mediatek/image/mt7622.mk
index dd86c167de..65db3e49a7 100644
--- a/target/linux/mediatek/image/mt7622.mk
+++ b/target/linux/mediatek/image/mt7622.mk
@@ -256,7 +256,7 @@ define Device/linksys_e8450-ubi
DEVICE_ALT0_VARIANT := UBI
DEVICE_DTS := mt7622-linksys-e8450-ubi
DEVICE_DTS_DIR := ../dts
- DEVICE_PACKAGES := kmod-mt7915-firmware kmod-usb3
+ DEVICE_PACKAGES := fitblk kmod-mt7915-firmware kmod-usb3
UBINIZE_OPTS := -E 5
BLOCKSIZE := 128k
PAGESIZE := 2048
@@ -270,8 +270,10 @@ define Device/linksys_e8450-ubi
IMAGES := sysupgrade.itb
IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | append-metadata
ARTIFACTS := preloader.bin bl31-uboot.fip
- ARTIFACT/preloader.bin := bl2 snand-1ddr
+ ARTIFACT/preloader.bin := bl2 snand-ubi-1ddr
ARTIFACT/bl31-uboot.fip := bl31-uboot linksys_e8450
+ DEVICE_COMPAT_VERSION := 2.0
+ DEVICE_COMPAT_MESSAGE := SPI-NAND flash layout changes require bootloader update
endef
TARGET_DEVICES += linksys_e8450-ubi
diff --git a/target/linux/mediatek/mt7622/base-files/etc/board.d/05_compat-version b/target/linux/mediatek/mt7622/base-files/etc/board.d/05_compat-version
index 2fdbe76407..68c397a95c 100644
--- a/target/linux/mediatek/mt7622/base-files/etc/board.d/05_compat-version
+++ b/target/linux/mediatek/mt7622/base-files/etc/board.d/05_compat-version
@@ -8,6 +8,9 @@ case "$(board_name)" in
bananapi,bpi-r64)
ucidef_set_compat_version "1.2"
;;
+ linksys,e8450-ubi)
+ ucidef_set_compat_version "2.0"
+ ;;
esac
board_config_flush
diff --git a/target/linux/mediatek/mt7622/base-files/etc/uci-defaults/05_fix-compat-version b/target/linux/mediatek/mt7622/base-files/etc/uci-defaults/05_fix-compat-version
index 3359d4a400..6309728e4b 100644
--- a/target/linux/mediatek/mt7622/base-files/etc/uci-defaults/05_fix-compat-version
+++ b/target/linux/mediatek/mt7622/base-files/etc/uci-defaults/05_fix-compat-version
@@ -9,6 +9,10 @@ case "$(board_name)" in
uci set system.@system[0].compat_version="1.1"
uci commit system
;;
+ linksys,e8450-ubi)
+ uci set system.@system[0].compat_version="2.0"
+ uci commit system
+ ;;
esac
exit 0
diff --git a/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh
index 6417eb1a3a..f5d938e65e 100755
--- a/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh
@@ -22,6 +22,7 @@ platform_do_upgrade() {
case "$board" in
bananapi,bpi-r64|\
+ linksys,e8450-ubi|\
ubnt,unifi-6-lr-v1-ubootmod|\
ubnt,unifi-6-lr-v2-ubootmod|\
ubnt,unifi-6-lr-v3-ubootmod)
@@ -66,10 +67,6 @@ platform_do_upgrade() {
xiaomi,redmi-router-ax6s)
nand_do_upgrade "$1"
;;
- linksys,e8450-ubi)
- CI_KERNPART="fit"
- nand_do_upgrade "$1"
- ;;
linksys,e8450)
if grep -q mtdparts=slave /proc/cmdline; then
PART_NAME=firmware2
diff --git a/target/linux/mediatek/mt7622/config-6.1 b/target/linux/mediatek/mt7622/config-6.1
index cdaae0fe25..eed62e09e1 100644
--- a/target/linux/mediatek/mt7622/config-6.1
+++ b/target/linux/mediatek/mt7622/config-6.1
@@ -257,6 +257,7 @@ CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_BEB_LIMIT=20
CONFIG_MTD_UBI_BLOCK=y
CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_MTD_UBI_NVMEM=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096
# CONFIG_MTK_CMDQ is not set
# CONFIG_MTK_CQDMA is not set