From 146818ff9ef258741011c7762a4d333d27de0e2d Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 2 Apr 2024 20:26:45 +0800 Subject: [PATCH] mediatek: switch to fitblk for cmcc rax3000m Use the new fitblk driver. Tested-by: Yangyu Chen Signed-off-by: Tianling Shen --- .../uboot-envtools/files/mediatek_filogic | 11 +-------- .../patches/437-add-cmcc_rax3000m.patch | 5 ++-- .../dts/mt7981b-cmcc-rax3000m-emmc.dtso | 19 +++++++++++---- .../dts/mt7981b-cmcc-rax3000m-nand.dtso | 22 ++++++++++++++---- .../mediatek/dts/mt7981b-cmcc-rax3000m.dts | 3 ++- .../base-files/lib/upgrade/platform.sh | 23 +++---------------- 6 files changed, 42 insertions(+), 41 deletions(-) diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic index 6f12d69288..a58e8ce227 100644 --- a/package/boot/uboot-envtools/files/mediatek_filogic +++ b/package/boot/uboot-envtools/files/mediatek_filogic @@ -56,6 +56,7 @@ bananapi,bpi-r3|\ bananapi,bpi-r3-mini|\ bananapi,bpi-r4|\ bananapi,bpi-r4-poe|\ +cmcc,rax3000m|\ jdcloud,re-cp-03) . /lib/upgrade/common.sh @@ -81,16 +82,6 @@ zbtlink,zbt-z8102ax|\ zbtlink,zbt-z8103ax) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000" ;; -cmcc,rax3000m) - case "$(cmdline_get_var root)" in - /dev/mmc*) - ubootenv_add_mmc_default - ;; - *) - ubootenv_add_ubi_default - ;; - esac - ;; comfast,cf-e393ax) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x80000" ;; diff --git a/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch b/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch index 970a289a62..73582922bc 100644 --- a/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch +++ b/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch @@ -585,7 +585,7 @@ +serverip=192.168.1.254 +loadaddr=0x46000000 +console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0 -+bootargs=root=/dev/mmcblk0p65 ++bootargs=root=/dev/fit0 rootwait +bootcmd=if pstore check ; then run boot_recovery ; else run boot_emmc ; fi +bootconf=config-1#mt7981b-cmcc-rax3000m-emmc +bootdelay=0 @@ -638,12 +638,13 @@ +_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver" --- /dev/null +++ b/cmcc_rax3000m-nand_env -@@ -0,0 +1,56 @@ +@@ -0,0 +1,57 @@ +ipaddr=192.168.1.1 +serverip=192.168.1.254 +loadaddr=0x46000000 +console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0 +bootconf=config-1#mt7981b-cmcc-rax3000m-nand ++bootargs=root=/dev/fit0 rootwait +bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi +bootdelay=0 +bootfile=immortalwrt-mediatek-filogic-cmcc_rax3000m-initramfs-recovery.itb diff --git a/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m-emmc.dtso b/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m-emmc.dtso index bfccc923a4..e6b140bfad 100644 --- a/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m-emmc.dtso +++ b/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m-emmc.dtso @@ -7,6 +7,13 @@ compatible = "cmcc,rax3000m", "mediatek,mt7981"; fragment@0 { + target = <&chosen>; + __overlay__ { + rootdisk = <&emmc_rootdisk>; + }; + }; + + fragment@1 { target = <&gmac0>; __overlay__ { nvmem-cells = <&macaddr_factory_2a 0>; @@ -14,7 +21,7 @@ }; }; - fragment@1 { + fragment@2 { target = <&gmac1>; __overlay__ { nvmem-cells = <&macaddr_factory_24 0>; @@ -22,7 +29,7 @@ }; }; - fragment@2 { + fragment@3 { target = <&mmc0>; __overlay__ { bus-width = <8>; @@ -69,13 +76,17 @@ }; }; }; + + emmc_rootdisk: block-partition-production { + partname = "production"; + }; }; }; }; }; }; - fragment@3 { + fragment@4 { target = <&pio>; __overlay__ { mmc0_pins_default: mmc0-pins { @@ -94,7 +105,7 @@ }; }; - fragment@4 { + fragment@5 { target = <&wifi>; __overlay__ { nvmem-cells = <&eeprom_factory_0>; diff --git a/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m-nand.dtso b/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m-nand.dtso index 3f401b53d3..fded878332 100644 --- a/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m-nand.dtso +++ b/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m-nand.dtso @@ -7,6 +7,13 @@ compatible = "cmcc,rax3000m", "mediatek,mt7981"; fragment@0 { + target = <&chosen>; + __overlay__ { + rootdisk = <&ubi_rootdisk>; + }; + }; + + fragment@1 { target = <&gmac0>; __overlay__ { nvmem-cells = <&macaddr_factory_2a 0>; @@ -14,7 +21,7 @@ }; }; - fragment@1 { + fragment@2 { target = <&gmac1>; __overlay__ { nvmem-cells = <&macaddr_factory_24 0>; @@ -22,7 +29,7 @@ }; }; - fragment@2 { + fragment@3 { target = <&pio>; __overlay__ { spi0_flash_pins: spi0-pins { @@ -46,7 +53,7 @@ }; }; - fragment@3 { + fragment@4 { target = <&spi0>; __overlay__ { pinctrl-names = "default"; @@ -114,15 +121,22 @@ }; partition@580000 { + compatible = "linux,ubi"; label = "ubi"; reg = <0x580000 0x7200000>; + + volumes { + ubi_rootdisk: ubi-volume-fit { + volname = "fit"; + }; + }; }; }; }; }; }; - fragment@4 { + fragment@5 { target = <&wifi>; __overlay__ { nvmem-cells = <&eeprom_factory_0>; diff --git a/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m.dts b/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m.dts index c8db5b58f5..977a613333 100644 --- a/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m.dts +++ b/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m.dts @@ -22,7 +22,8 @@ serial0 = &uart0; }; - chosen { + chosen: chosen { + bootargs-override = "root=/dev/fit0 rootwait"; stdout-path = "serial0:115200n8"; }; diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh index 54a9d3c625..3e1bd01597 100755 --- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh +++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh @@ -98,6 +98,7 @@ platform_do_upgrade() { bananapi,bpi-r3-mini|\ bananapi,bpi-r4|\ bananapi,bpi-r4-poe|\ + cmcc,rax3000m|\ jdcloud,re-cp-03|\ mediatek,mt7988a-rfb|\ openwrt,one) @@ -119,18 +120,6 @@ platform_do_upgrade() { ;; esac ;; - cmcc,rax3000m) - case "$(cmdline_get_var root)" in - /dev/mmc*) - CI_KERNPART="production" - emmc_do_upgrade "$1" - ;; - *) - CI_KERNPART="fit" - nand_do_upgrade "$1" - ;; - esac - ;; cudy,re3000-v1|\ cudy,wr3000-v1|\ yuncore,ax835) @@ -247,20 +236,14 @@ platform_copy_config() { bananapi,bpi-r3|\ bananapi,bpi-r3-mini|\ bananapi,bpi-r4|\ - bananapi,bpi-r4-poe) + bananapi,bpi-r4-poe|\ + cmcc,rax3000m) case "$(fitblk_get_bootdev)" in mmcblk*) emmc_copy_config ;; esac ;; - cmcc,rax3000m) - case "$(cmdline_get_var root)" in - /dev/mmc*) - emmc_copy_config - ;; - esac - ;; esac }