diff options
| author | Daniel Golle <daniel@makrotopia.org> | 2024-01-22 19:12:40 +0000 |
|---|---|---|
| committer | Daniel Golle <daniel@makrotopia.org> | 2024-02-15 19:30:08 +0000 |
| commit | 6aec3c7b5bf5e5a999a12121dfa71963afb6f003 (patch) | |
| tree | cb4b1c25e8c8635e85a9c5c5aaf7c1021195c082 /target/linux | |
| parent | 41c053141e678b670d0bc67edf2bb1166c3d7f0a (diff) | |
| download | upstream-6aec3c7b5bf5e5a999a12121dfa71963afb6f003.tar.gz upstream-6aec3c7b5bf5e5a999a12121dfa71963afb6f003.tar.bz2 upstream-6aec3c7b5bf5e5a999a12121dfa71963afb6f003.zip | |
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')
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 e78db1de6cf..e2b7268e857 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 dd86c167de4..65db3e49a70 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 2fdbe764073..68c397a95c4 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 3359d4a4001..6309728e4bc 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 6417eb1a3a7..f5d938e65e5 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 cdaae0fe25c..eed62e09e1c 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 |
