diff --git a/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro-emmc.dts b/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro-emmc.dts new file mode 100644 index 0000000000..a52930cb20 --- /dev/null +++ b/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro-emmc.dts @@ -0,0 +1,75 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/dts-v1/; + +#include "mt7981b-huasifei-wh3000-pro.dtsi" + +/ { + model = "Huasifei WH3000 Pro eMMC"; + compatible = "huasifei,wh3000-pro-emmc", "mediatek,mt7981"; +}; + +&chosen { + bootargs-append = " root=PARTLABEL=rootfs rootwait"; +}; + +&mmc0 { + bus-width = <8>; + cap-mmc-highspeed; + max-frequency = <52000000>; + non-removable; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default", "state_uhs"; + pinctrl-0 = <&mmc0_pins_default>; + pinctrl-1 = <&mmc0_pins_uhs>; + vmmc-supply = <®_3p3v>; + status = "okay"; + + card@0 { + compatible = "mmc-card"; + reg = <0>; + + block { + compatible = "block-device"; + + partitions { + block-partition-factory { + partname = "factory"; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + eeprom_factory_0: eeprom@0 { + reg = <0x0 0x1000>; + }; + + macaddr_factory_4: macaddr@4 { + compatible = "mac-base"; + reg = <0x4 0x6>; + #nvmem-cell-cells = <1>; + }; + }; + }; + }; + }; + }; +}; + +&pio { + mmc0_pins_default: mmc0-pins-default { + mux { + function = "flash"; + groups = "emmc_45"; + }; + }; + + mmc0_pins_uhs: mmc0-pins-uhs { + mux { + function = "flash"; + groups = "emmc_45"; + }; + }; +}; diff --git a/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro-nand.dts b/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro-nand.dts new file mode 100644 index 0000000000..68b463507b --- /dev/null +++ b/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro-nand.dts @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/dts-v1/; + +#include "mt7981b-huasifei-wh3000-pro.dtsi" + +/ { + model = "Huasifei WH3000 Pro NAND"; + compatible = "huasifei,wh3000-pro-nand", "mediatek,mt7981"; +}; + +&spi0 { + status = "okay"; + + spi_nand: flash@0 { + compatible = "spi-nand"; + reg = <0>; + + spi-max-frequency = <52000000>; + spi-tx-bus-width = <4>; + spi-rx-bus-width = <4>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "BL2"; + reg = <0x0 0x100000>; + read-only; + }; + + partition@100000 { + label = "u-boot-env"; + reg = <0x100000 0x80000>; + }; + + partition@180000 { + label = "Factory"; + reg = <0x180000 0x200000>; + read-only; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + eeprom_factory_0: eeprom@0 { + reg = <0x0 0x1000>; + }; + + macaddr_factory_4: macaddr@4 { + compatible = "mac-base"; + reg = <0x4 0x6>; + #nvmem-cell-cells = <1>; + }; + }; + }; + + partition@380000 { + label = "FIP"; + reg = <0x380000 0x200000>; + read-only; + }; + + partition@580000 { + label = "ubi"; + reg = <0x580000 0xe280000>; + }; + }; + }; +}; diff --git a/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro.dts b/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro.dtsi similarity index 67% rename from target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro.dts rename to target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro.dtsi index b8a5a4cc35..a00e9f6c9b 100644 --- a/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro.dts +++ b/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro.dtsi @@ -9,9 +9,6 @@ #include "mt7981b.dtsi" / { - model = "Huasifei WH3000 Pro"; - compatible = "huasifei,wh3000-pro", "mediatek,mt7981"; - aliases { serial0 = &uart0; led-boot = &led_sys_red; @@ -20,9 +17,8 @@ led-upgrade = &led_sys_blue; }; - chosen { + chosen: chosen { stdout-path = "serial0:115200n8"; - bootargs-append = " root=PARTLABEL=rootfs rootwait"; }; gpio-export { @@ -101,7 +97,7 @@ compatible = "ethernet-phy-ieee802.3-c45"; reg = <1>; reset-assert-us = <100000>; - reset-deassert-us = <100000>; + reset-deassert-us = <221000>; reset-gpios = <&pio 39 GPIO_ACTIVE_LOW>; interrupts = <38 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&pio>; @@ -116,66 +112,7 @@ status = "okay"; }; -&mmc0 { - bus-width = <8>; - cap-mmc-highspeed; - max-frequency = <52000000>; - non-removable; - #address-cells = <1>; - #size-cells = <0>; - pinctrl-names = "default", "state_uhs"; - pinctrl-0 = <&mmc0_pins_default>; - pinctrl-1 = <&mmc0_pins_uhs>; - vmmc-supply = <®_3p3v>; - status = "okay"; - - card@0 { - compatible = "mmc-card"; - reg = <0>; - - block { - compatible = "block-device"; - - partitions { - block-partition-factory { - partname = "factory"; - - nvmem-layout { - compatible = "fixed-layout"; - #address-cells = <1>; - #size-cells = <1>; - - eeprom_factory_0: eeprom@0 { - reg = <0x0 0x1000>; - }; - - macaddr_factory_4: macaddr@4 { - compatible = "mac-base"; - reg = <0x4 0x6>; - #nvmem-cell-cells = <1>; - }; - }; - }; - }; - }; - }; -}; - &pio { - mmc0_pins_default: mmc0-pins-default { - mux { - function = "flash"; - groups = "emmc_45"; - }; - }; - - mmc0_pins_uhs: mmc0-pins-uhs { - mux { - function = "flash"; - groups = "emmc_45"; - }; - }; - pwm1_pins: pwm1-pins { mux { function = "pwm"; diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network index e3dc404c97..dccffdba52 100644 --- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network +++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network @@ -125,7 +125,8 @@ mediatek_setup_interfaces() bananapi,bpi-r3-mini|\ edgecore,eap111|\ huasifei,wh3000|\ - huasifei,wh3000-pro) + huasifei,wh3000-pro-emmc|\ + huasifei,wh3000-pro-nand) ucidef_set_interfaces_lan_wan eth0 eth1 ;; bazis,ax3000wm|\ diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/03_gpio_switches b/target/linux/mediatek/filogic/base-files/etc/board.d/03_gpio_switches index 89889967a2..889401bd0e 100644 --- a/target/linux/mediatek/filogic/base-files/etc/board.d/03_gpio_switches +++ b/target/linux/mediatek/filogic/base-files/etc/board.d/03_gpio_switches @@ -5,7 +5,8 @@ board_config_update board=$(board_name) case "$board" in -huasifei,wh3000-pro) +huasifei,wh3000-pro-emmc|\ +huasifei,wh3000-pro-nand) ucidef_add_gpio_switch "modem_power" "Modem power" "modem_power" "0" ;; teltonika,rutc50) 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 394e8f6a08..76a99aecdc 100644 --- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh +++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh @@ -139,7 +139,7 @@ platform_do_upgrade() { glinet,gl-x3000|\ glinet,gl-xe3000|\ huasifei,wh3000|\ - huasifei,wh3000-pro|\ + huasifei,wh3000-pro-emmc|\ smartrg,sdg-8612|\ smartrg,sdg-8614|\ smartrg,sdg-8622|\ @@ -164,7 +164,8 @@ platform_do_upgrade() { ;; buffalo,wsr-6000ax8|\ cudy,wr3000h-v1|\ - cudy,wr3000p-v1) + cudy,wr3000p-v1|\ + huasifei,wh3000-pro-nand) CI_UBIPART="ubi" nand_do_upgrade "$1" ;; @@ -369,7 +370,7 @@ platform_copy_config() { glinet,gl-x3000|\ glinet,gl-xe3000|\ huasifei,wh3000|\ - huasifei,wh3000-pro|\ + huasifei,wh3000-pro-emmc|\ jdcloud,re-cp-03|\ nradio,c8-668gl|\ smartrg,sdg-8612|\ diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk index 5961bdd47f..086d2fc477 100644 --- a/target/linux/mediatek/image/filogic.mk +++ b/target/linux/mediatek/image/filogic.mk @@ -1710,18 +1710,38 @@ define Device/huasifei_wh3000 endef TARGET_DEVICES += huasifei_wh3000 -define Device/huasifei_wh3000-pro +define Device/huasifei_wh3000-pro-emmc DEVICE_VENDOR := Huasifei DEVICE_MODEL := WH3000 Pro - DEVICE_DTS := mt7981b-huasifei-wh3000-pro + DEVICE_VARIANT := eMMC + DEVICE_DTS := mt7981b-huasifei-wh3000-pro-emmc DEVICE_DTS_DIR := ../dts - DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware kmod-hwmon-pwmfan kmod-usb3 f2fsck mkf2fs + DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware \ + kmod-hwmon-pwmfan kmod-usb3 f2fsck mkf2fs + SUPPORTED_DEVICES += huasifei,wh3000-pro KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb KERNEL_INITRAMFS := kernel-bin | lzma | \ fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata endef -TARGET_DEVICES += huasifei_wh3000-pro +TARGET_DEVICES += huasifei_wh3000-pro-emmc + +define Device/huasifei_wh3000-pro-nand + DEVICE_VENDOR := Huasifei + DEVICE_MODEL := WH3000 Pro + DEVICE_VARIANT := NAND + DEVICE_DTS := mt7981b-huasifei-wh3000-pro-nand + DEVICE_DTS_DIR := ../dts + UBINIZE_OPTS := -E 5 + BLOCKSIZE := 128k + PAGESIZE := 2048 + IMAGE_SIZE := 229376k + KERNEL_IN_UBI := 1 + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata + DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware \ + kmod-usb3 kmod-hwmon-pwmfan +endef +TARGET_DEVICES += huasifei_wh3000-pro-nand define Device/imou_hx21 DEVICE_VENDOR := Imou