From c0cc6621920de2ee7abd70772c8b86e97b88f196 Mon Sep 17 00:00:00 2001 From: kiddin9 <48883331+kiddin9@users.noreply.github.com> Date: Wed, 14 Feb 2024 12:26:40 +0800 Subject: [PATCH] update --- devices/ipq807x_generic/.config | 1 + devices/mediatek_filogic/.config | 3 + .../patches/08-cmcc_rax3000m.patch | 25 +- .../patches/15-cmcc-a10.patch | 318 ++++++++++++++++ .../patches/16-komi-a31.patch | 308 +++++++++++++++ .../patches/17-lc-hx3001.patch | 350 ++++++++++++++++++ devices/mediatek_mt7981/.config | 4 - 7 files changed, 991 insertions(+), 18 deletions(-) create mode 100644 devices/mediatek_filogic/patches/15-cmcc-a10.patch create mode 100644 devices/mediatek_filogic/patches/16-komi-a31.patch create mode 100644 devices/mediatek_filogic/patches/17-lc-hx3001.patch diff --git a/devices/ipq807x_generic/.config b/devices/ipq807x_generic/.config index b8bc7e0996e7..af4abfedc8c6 100644 --- a/devices/ipq807x_generic/.config +++ b/devices/ipq807x_generic/.config @@ -9,6 +9,7 @@ CONFIG_TARGET_DEVICE_ipq807x_generic_DEVICE_qnap_301w=y CONFIG_TARGET_DEVICE_ipq807x_generic_DEVICE_zte_mf269=y CONFIG_TARGET_DEVICE_ipq807x_generic_DEVICE_zyxel_nbg7815=y CONFIG_TARGET_DEVICE_ipq807x_generic_DEVICE_buffalo_wxr-5950ax12=y +CONFIG_TARGET_DEVICE_ipq807x_generic_DEVICE_cmcc_rm2-6=y CONFIG_PACKAGE_kmod-rtl8812au-ct=n CONFIG_PACKAGE_luci-ssl=y # uhttpd服务 diff --git a/devices/mediatek_filogic/.config b/devices/mediatek_filogic/.config index c7965e845c9f..cc958f446db8 100644 --- a/devices/mediatek_filogic/.config +++ b/devices/mediatek_filogic/.config @@ -25,4 +25,7 @@ CONFIG_TARGET_DEVICE_mediatek_filogic_DEVICE_jdcloud_re-cp-03=y CONFIG_TARGET_DEVICE_mediatek_filogic_DEVICE_abt_asr3000=y CONFIG_TARGET_DEVICE_mediatek_filogic_DEVICE_ruijie_rg-x60-pro=y CONFIG_TARGET_DEVICE_mediatek_filogic_DEVICE_netcore_n60=y +CONFIG_TARGET_DEVICE_mediatek_filogic_DEVICE_cmcc_a10=y +CONFIG_TARGET_DEVICE_mediatek_filogic_DEVICE_konka_komi-a31=y +CONFIG_TARGET_DEVICE_mediatek_filogic_DEVICE_imou_lc-hx3001=y CONFIG_PACKAGE_luci-ssl=y # uhttpd服务 diff --git a/devices/mediatek_filogic/patches/08-cmcc_rax3000m.patch b/devices/mediatek_filogic/patches/08-cmcc_rax3000m.patch index 7b1f3cbb65b4..81ff44e47e1d 100644 --- a/devices/mediatek_filogic/patches/08-cmcc_rax3000m.patch +++ b/devices/mediatek_filogic/patches/08-cmcc_rax3000m.patch @@ -9,36 +9,33 @@ h3c,magic-nx30-pro) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" eth1 ;; -@@ -103,12 +103,16 @@ mediatek_setup_macs() +@@ -103,9 +103,7 @@ mediatek_setup_macs() wan_mac=$(macaddr_add "$lan_mac" 3) label_mac=$lan_mac ;; - cmcc,rax3000m) -+ cmcc,rax3000m*) - case "$(cmdline_get_var root)" in - /dev/mmc*) +- case "$(cmdline_get_var root)" in +- /dev/mmc*) ++ cmcc,rax3000m-emmc) wan_mac=$(mmc_get_mac_binary factory 0x2a) lan_mac=$(mmc_get_mac_binary factory 0x24) label_mac=$wan_mac -+ *) -+ wan_mac=$(mtd_get_mac_binary factory 0x2a) -+ lan_mac=$(mtd_get_mac_binary factory 0x24) -+ label_mac=$lan_mac - ;; - esac - ;; --- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac +++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac -@@ -46,7 +46,7 @@ case "$board" in +@@ -46,9 +46,9 @@ case "$board" in [ "$PHYNBR" = "0" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress [ "$PHYNBR" = "1" ] && macaddr_setbit_la $(macaddr_add $addr 2) > /sys${DEVPATH}/macaddress ;; - cmcc,rax3000m) +- case "$(cmdline_get_var root)" in +- /dev/mmc*) + cmcc,rax3000m*) - case "$(cmdline_get_var root)" in - /dev/mmc*) ++ case "$board" in ++ cmcc,rax3000m-emmc) addr=$(mmc_get_mac_binary factory 0xa) + ;; + *) --- a/target/linux/mediatek/image/filogic.mk +++ b/target/linux/mediatek/image/filogic.mk diff --git a/devices/mediatek_filogic/patches/15-cmcc-a10.patch b/devices/mediatek_filogic/patches/15-cmcc-a10.patch new file mode 100644 index 000000000000..84350a473592 --- /dev/null +++ b/devices/mediatek_filogic/patches/15-cmcc-a10.patch @@ -0,0 +1,318 @@ +From 64a881cfb100a28ba20ffe4066a1758cee07dc91 Mon Sep 17 00:00:00 2001 +From: Chen Minqiang +Date: Sat, 16 Dec 2023 07:25:04 +0800 +Subject: [PATCH] mediatek: add CMCC A10 uboot layout + +--- + .../dts/mt7981b-cmcc-a10.dts | 241 ++++++++++++++++++ + .../filogic/base-files/etc/board.d/02_network | 1 + + .../etc/hotplug.d/ieee80211/11_fix_wifi_mac | 1 + + target/linux/mediatek/image/filogic.mk | 22 ++ + 4 files changed, 265 insertions(+) + create mode 100644 target/linux/mediatek/dts/mt7981b-cmcc-a10.dts + +diff --git a/target/linux/mediatek/dts/mt7981b-cmcc-a10.dts b/target/linux/mediatek/dts/mt7981b-cmcc-a10.dts +new file mode 100644 +index 0000000000000..cc5b93cba35dc +--- /dev/null ++++ b/target/linux/mediatek/dts/mt7981b-cmcc-a10.dts +@@ -0,0 +1,241 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++/dts-v1/; ++#include ++#include ++ ++#include "mt7981.dtsi" ++ ++/ { ++ model = "CMCC A10 (uboot layout)"; ++ compatible = "cmcc,a10", "mediatek,mt7981"; ++ ++ aliases { ++ led-boot = &boot_led; ++ led-failsafe = &boot_led; ++ led-running = &running_led; ++ led-upgrade = &running_led; ++ serial0 = &uart0; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ memory { ++ reg = <0 0x40000000 0 0x10000000>; ++ }; ++ ++ gpio-keys { ++ compatible = "gpio-keys"; ++ ++ button-reset { ++ label = "reset"; ++ linux,code = ; ++ gpios = <&pio 1 GPIO_ACTIVE_LOW>; ++ }; ++ ++ button-wps { ++ label = "wps"; ++ linux,code = ; ++ gpios = <&pio 0 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++ ++ gpio-leds { ++ compatible = "gpio-leds"; ++ ++ led-0 { ++ label = "blue:status"; ++ gpios = <&pio 9 GPIO_ACTIVE_LOW>; ++ }; ++ ++ running_led: led-1 { ++ label = "green:status"; ++ gpios = <&pio 10 GPIO_ACTIVE_LOW>; ++ }; ++ ++ boot_led: led-2 { ++ label = "red:status"; ++ gpios = <&pio 11 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++}; ++ ++ð { ++ status = "okay"; ++ ++ gmac0: mac@0 { ++ compatible = "mediatek,eth-mac"; ++ reg = <0>; ++ phy-mode = "2500base-x"; ++ ++ nvmem-cells = <&macaddr_factory_2a 0>; ++ nvmem-cell-names = "mac-address"; ++ ++ fixed-link { ++ speed = <2500>; ++ full-duplex; ++ pause; ++ }; ++ }; ++}; ++ ++&mdio_bus { ++ switch: switch@1f { ++ compatible = "mediatek,mt7531"; ++ reg = <31>; ++ reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>; ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ interrupt-parent = <&pio>; ++ interrupts = <38 IRQ_TYPE_LEVEL_HIGH>; ++ }; ++}; ++ ++&spi0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&spi0_flash_pins>; ++ status = "okay"; ++ ++ spi_nand: flash@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "spi-nand"; ++ reg = <0>; ++ ++ spi-max-frequency = <52000000>; ++ spi-tx-bus-width = <4>; ++ spi-rx-bus-width = <4>; ++ mediatek,nmbm; ++ mediatek,bmt-max-ratio = <1>; ++ mediatek,bmt-max-reserved-blocks = <64>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "BL2"; ++ reg = <0x00000 0x100000>; ++ read-only; ++ }; ++ ++ partition@100000 { ++ label = "u-boot-env"; ++ reg = <0x100000 0x80000>; ++ }; ++ ++ factory: partition@180000 { ++ label = "Factory"; ++ reg = <0x180000 0x200000>; ++ ++ nvmem-layout { ++ compatible = "fixed-layout"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ macaddr_factory_24: macaddr@24 { ++ compatible = "mac-base"; ++ reg = <0x24 0x6>; ++ #nvmem-cell-cells = <1>; ++ }; ++ ++ macaddr_factory_2a: macaddr@2a { ++ compatible = "mac-base"; ++ reg = <0x2a 0x6>; ++ #nvmem-cell-cells = <1>; ++ }; ++ }; ++ }; ++ ++ partition@380000 { ++ label = "FIP"; ++ reg = <0x380000 0x200000>; ++ }; ++ ++ partition@580000 { ++ label = "ubi"; ++ reg = <0x580000 0x7000000>; ++ }; ++ }; ++ }; ++}; ++ ++&switch { ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ label = "lan1"; ++ }; ++ ++ port@2 { ++ reg = <2>; ++ label = "lan2"; ++ }; ++ ++ port@3 { ++ reg = <3>; ++ label = "lan3"; ++ }; ++ ++ port@4 { ++ reg = <4>; ++ label = "wan"; ++ ++ nvmem-cells = <&macaddr_factory_24 0>; ++ nvmem-cell-names = "mac-address"; ++ }; ++ ++ port@6 { ++ reg = <6>; ++ ethernet = <&gmac0>; ++ phy-mode = "2500base-x"; ++ ++ fixed-link { ++ speed = <2500>; ++ full-duplex; ++ pause; ++ }; ++ }; ++ }; ++}; ++ ++&pio { ++ spi0_flash_pins: spi0-pins { ++ mux { ++ function = "spi"; ++ groups = "spi0", "spi0_wp_hold"; ++ }; ++ ++ conf-pu { ++ pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP"; ++ drive-strength = ; ++ bias-pull-up = ; ++ }; ++ ++ conf-pd { ++ pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO"; ++ drive-strength = ; ++ bias-pull-down = ; ++ }; ++ }; ++}; ++ ++&uart0 { ++ status = "okay"; ++}; ++ ++&watchdog { ++ status = "okay"; ++}; ++ ++&wifi { ++ status = "okay"; ++ ++ mediatek,mtd-eeprom = <&factory 0x0>; ++}; +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 53e7b024e40fb..61637e09c7f0e 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 +@@ -17,6 +17,7 @@ mediatek_setup_interfaces() + asus,rt-ax59u|\ + cetron,ct3003|\ + cetron,ct3003|\ ++ cmcc,a10|\ + confiabits,mt7981|\ + cudy,wr3000-v1|\ + tenbay,wr3000k|\ +diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac +index cb476d84d9115..125bec12cdb88 100644 +--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac ++++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac +@@ -62,6 +62,9 @@ + esac + [ "$PHYNBR" = "1" ] && echo "$addr" > /sys${DEVPATH}/macaddress + ;; ++ cmcc,a10) ++ [ "$PHYNBR" = "1" ] && mtd_get_mac_binary factory 0xa > /sys${DEVPATH}/macaddress ++ ;; + cudy,wr3000-v1) + addr=$(mtd_get_mac_binary bdinfo 0xde00) + # Originally, phy0 is phy1 mac with LA bit set. However, this would conflict +diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk +index 6976a399e86dc..83428f0d981e7 100644 +--- a/target/linux/mediatek/image/filogic.mk ++++ b/target/linux/mediatek/image/filogic.mk +@@ -349,6 +349,27 @@ define Device/cetron_ct3003 + endef + TARGET_DEVICES += cetron_ct3003 + ++define Device/cmcc_a10 ++ DEVICE_VENDOR := CMCC ++ DEVICE_MODEL := A10 ++ DEVICE_DTS := mt7981b-cmcc-a10 ++ DEVICE_DTS_DIR := ../dts ++ DEVICE_PACKAGES := kmod-mt7981-firmware mt7981-wo-firmware ++ UBINIZE_OPTS := -E 5 ++ BLOCKSIZE := 128k ++ PAGESIZE := 2048 ++ IMAGE_SIZE := 114688k ++ KERNEL_IN_UBI := 1 ++ IMAGES += factory.bin ++ IMAGE/factory.bin := append-ubi | check-size $$$$(IMAGE_SIZE) ++ IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata ++ 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 ++endef ++TARGET_DEVICES += cmcc_a10 ++ + define Device/cmcc_rax3000m + DEVICE_VENDOR := CMCC + DEVICE_MODEL := RAX3000M diff --git a/devices/mediatek_filogic/patches/16-komi-a31.patch b/devices/mediatek_filogic/patches/16-komi-a31.patch new file mode 100644 index 000000000000..17194ac4df63 --- /dev/null +++ b/devices/mediatek_filogic/patches/16-komi-a31.patch @@ -0,0 +1,308 @@ +From 7c939560f726f6cc5ebb2750a7dbd58bc36f2ecf Mon Sep 17 00:00:00 2001 +From: abandon-xyz <1484451453@qq.com> +Date: Thu, 10 Aug 2023 17:07:43 +0800 +Subject: [PATCH] mediatek: filogic: add support for KONKA KOMI A31 + +Signed-off-by: Chen Minqiang +--- + .../dts/mt7981b-konka-komi-a31-base.dtsi | 233 ++++++++++++++++++ + .../dts/mt7981b-konka-komi-a31-nmbm.dts | 21 ++ + .../mediatek/dts/mt7981b-konka-komi-a31.dts | 8 + + .../filogic/base-files/etc/board.d/01_leds | 4 + + .../filogic/base-files/etc/board.d/02_network | 2 + + .../etc/hotplug.d/ieee80211/11_fix_wifi_mac | 6 + + .../base-files/lib/upgrade/platform.sh | 1 + + target/linux/mediatek/image/filogic.mk | 47 ++++ + 8 files changed, 322 insertions(+) + create mode 100644 target/linux/mediatek/dts/mt7981b-konka-komi-a31-base.dtsi + create mode 100644 target/linux/mediatek/dts/mt7981b-konka-komi-a31-nmbm.dts + create mode 100644 target/linux/mediatek/dts/mt7981b-konka-komi-a31.dts + +diff --git a/target/linux/mediatek/dts/mt7981b-konka-komi-a31.dts b/target/linux/mediatek/dts/mt7981b-konka-komi-a31.dts +new file mode 100644 +index 0000000000000..6b1a260d9519e +--- /dev/null ++++ b/target/linux/mediatek/dts/mt7981b-konka-komi-a31.dts +@@ -0,0 +1,247 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++/dts-v1/; ++#include ++#include ++#include "mt7981.dtsi" ++ ++/ { ++ model = "KONKA KOMI A31"; ++ compatible = "konka,komi-a31", "mediatek,mt7981"; ++ ++ aliases { ++ serial0 = &uart0; ++ led-boot = &status_red_led; ++ led-failsafe = &status_red_led; ++ led-running = &status_green_led; ++ led-upgrade = &status_green_led; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ memory { ++ reg = <0 0x40000000 0 0x10000000>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ status_green_led: led-0 { ++ label = "green:status"; ++ gpios = <&pio 8 GPIO_ACTIVE_LOW>; ++ }; ++ ++ status_blue_led: led-1 { ++ label = "blue:status"; ++ gpios = <&pio 13 GPIO_ACTIVE_LOW>; ++ }; ++ ++ status_red_led: led-2 { ++ label = "red:status"; ++ gpios = <&pio 34 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++ ++ gpio-keys { ++ compatible = "gpio-keys"; ++ ++ button-reset { ++ label = "reset"; ++ linux,code = ; ++ gpios = <&pio 1 GPIO_ACTIVE_LOW>; ++ }; ++ ++ button-mesh { ++ label = "mesh"; ++ gpios = <&pio 0 GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ linux,input-type = ; ++ }; ++ }; ++}; ++ ++ð { ++ status = "okay"; ++ ++ gmac0: mac@0 { ++ compatible = "mediatek,eth-mac"; ++ reg = <0>; ++ phy-mode = "2500base-x"; ++ ++ nvmem-cells = <&macaddr_factory_2a>; ++ nvmem-cell-names = "mac-address"; ++ ++ fixed-link { ++ speed = <2500>; ++ full-duplex; ++ pause; ++ }; ++ }; ++ ++ gmac1: mac@1 { ++ compatible = "mediatek,eth-mac"; ++ reg = <1>; ++ phy-mode = "gmii"; ++ phy-handle = <&int_gbe_phy>; ++ ++ nvmem-cells = <&macaddr_factory_24>; ++ nvmem-cell-names = "mac-address"; ++ }; ++}; ++ ++&mdio_bus { ++ switch: switch@1f { ++ compatible = "mediatek,mt7531"; ++ reg = <31>; ++ reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>; ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ interrupt-parent = <&pio>; ++ interrupts = <38 IRQ_TYPE_LEVEL_HIGH>; ++ }; ++}; ++ ++&spi0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&spi0_flash_pins>; ++ status = "okay"; ++ ++ spi_nand: spi_nand@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "spi-nand"; ++ reg = <0>; ++ spi-max-frequency = <52000000>; ++ ++ spi-tx-bus-width = <4>; ++ spi-rx-bus-width = <4>; ++ ++ spi-cal-enable; ++ spi-cal-mode = "read-data"; ++ spi-cal-datalen = <7>; ++ spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>; ++ spi-cal-addrlen = <5>; ++ spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>; ++ ++ mediatek,nmbm; ++ mediatek,bmt-max-ratio = <1>; ++ mediatek,bmt-max-reserved-blocks = <64>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "BL2"; ++ reg = <0x00 0x100000>; ++ }; ++ ++ partition@100000 { ++ label = "u-boot-env"; ++ reg = <0x100000 0x80000>; ++ }; ++ ++ factory: partition@180000 { ++ label = "Factory"; ++ reg = <0x180000 0x200000>; ++ ++ nvmem-layout { ++ compatible = "fixed-layout"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ macaddr_factory_2a: macaddr@2a { ++ reg = <0x2a 0x6>; ++ }; ++ ++ macaddr_factory_24: macaddr@24 { ++ reg = <0x24 0x6>; ++ }; ++ }; ++ }; ++ ++ partition@380000 { ++ label = "FIP"; ++ reg = <0x380000 0x200000>; ++ }; ++ ++ partition@580000 { ++ label = "ubi"; ++ reg = <0x580000 0x7000000>; ++ }; ++ }; ++ }; ++}; ++ ++&switch { ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ label = "lan1"; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ label = "lan2"; ++ }; ++ ++ port@2 { ++ reg = <2>; ++ label = "lan3"; ++ }; ++ ++ port@6 { ++ reg = <6>; ++ label = "cpu"; ++ ethernet = <&gmac0>; ++ phy-mode = "2500base-x"; ++ ++ fixed-link { ++ speed = <2500>; ++ full-duplex; ++ pause; ++ }; ++ }; ++ }; ++}; ++ ++&pio { ++ spi0_flash_pins: spi0-pins { ++ mux { ++ function = "spi"; ++ groups = "spi0", "spi0_wp_hold"; ++ }; ++ ++ conf-pu { ++ pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP"; ++ drive-strength = <8>; ++ mediatek,pull-up-adv = <0>; /* bias-disable */ ++ }; ++ ++ conf-pd { ++ pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO"; ++ drive-strength = <8>; ++ mediatek,pull-up-adv = <0>; /* bias-disable */ ++ }; ++ }; ++}; ++ ++&uart0 { ++ status = "okay"; ++}; ++ ++&watchdog { ++ status = "okay"; ++}; ++ ++&wifi { ++ status = "okay"; ++ ++ mediatek,mtd-eeprom = <&factory 0x0>; ++}; +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 b5e5eca6afd12..33e52743d5bfe 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 +@@ -40,6 +40,8 @@ + ;; + abt,asr3000|\ + cmcc,rax3000m*|\ ++ konka,komi-a31|\ ++ imou,lc-hx3001|\ + h3c,magic-nx30-pro) + ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" eth1 + ;; +diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac +index 794944d1aa918..2ca44b55c21fa 100644 +--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac ++++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac +@@ -91,6 +91,17 @@ case "$board" in + jcg,q30-pro) + [ "$PHYNBR" = "1" ] && macaddr_setbit_la "$(mtd_get_mac_binary Factory 0x4)" > /sys${DEVPATH}/macaddress + ;; ++ konka,komi-a31) ++ addr=$(cat /sys/class/net/eth0/address) ++ [ "$PHYNBR" = "0" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress ++ [ "$PHYNBR" = "1" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress ++ ;; ++ imou,lc-hx3001) ++ addr=$(mtd_get_mac_ascii u-boot-env mac) ++ [ -n "$addr" ] || addr=$(macaddr_add $(mtd_get_mac_binary Factory 0x4) -1) ++ [ "$PHYNBR" = "0" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress ++ [ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress ++ ;; + mercusys,mr90x-v1) + addr=$(get_mac_binary "/tmp/tp_data/default-mac" 0) + [ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress diff --git a/devices/mediatek_filogic/patches/17-lc-hx3001.patch b/devices/mediatek_filogic/patches/17-lc-hx3001.patch new file mode 100644 index 000000000000..d57500aa03f9 --- /dev/null +++ b/devices/mediatek_filogic/patches/17-lc-hx3001.patch @@ -0,0 +1,350 @@ +From 5eacf09258839ccda9172962287727ab8825f90b Mon Sep 17 00:00:00 2001 +From: Chen Minqiang +Date: Sat, 16 Dec 2023 07:39:20 +0800 +Subject: [PATCH] mediatek: add IMOU LC-HX3001 (uboot layout) + +--- + .../mt7981b-imou-lc-hx3001.dts | 239 ++++++++++++++++++ + .../filogic/base-files/etc/board.d/01_leds | 5 + + .../filogic/base-files/etc/board.d/02_network | 7 + + .../etc/hotplug.d/ieee80211/11_fix_wifi_mac | 6 + + target/linux/mediatek/image/filogic.mk | 23 ++ + 5 files changed, 280 insertions(+) + create mode 100644 target/linux/mediatek/dts/mt7981b-imou-lc-hx3001.dts + +diff --git a/target/linux/mediatek/dts/mt7981b-imou-lc-hx3001.dts b/target/linux/mediatek/dts/mt7981b-imou-lc-hx3001.dts +new file mode 100644 +index 0000000000000..857f2a534e112 +--- /dev/null ++++ b/target/linux/mediatek/dts/mt7981b-imou-lc-hx3001.dts +@@ -0,0 +1,239 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++/dts-v1/; ++#include ++#include ++ ++#include "mt7981.dtsi" ++ ++/ { ++ model = "IMOU LC-HX3001 (uboot layout)"; ++ compatible = "imou,lc-hx3001", "mediatek,mt7981"; ++ ++ aliases { ++ led-boot = &power_led; ++ led-failsafe = &power_led; ++ led-running = &power_led; ++ led-upgrade = &power_led; ++ serial0 = &uart0; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ memory { ++ reg = <0 0x40000000 0 0x10000000>; ++ }; ++ ++ gpio-keys { ++ compatible = "gpio-keys"; ++ ++ button-reset { ++ label = "reset"; ++ linux,code = ; ++ gpios = <&pio 1 GPIO_ACTIVE_LOW>; ++ }; ++ ++ button-mesh { ++ label = "mesh"; ++ linux,code = ; ++ linux,input-type = ; ++ gpios = <&pio 0 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++ ++ gpio-leds { ++ compatible = "gpio-leds"; ++ ++ power_led: led-0 { ++ label = "green:power"; ++ gpios = <&pio 4 GPIO_ACTIVE_LOW>; ++ }; ++ ++ led-1 { ++ label = "green:wlan"; ++ gpios = <&pio 5 GPIO_ACTIVE_LOW>; ++ }; ++ ++ led-2 { ++ label = "red:wan"; ++ gpios = <&pio 6 GPIO_ACTIVE_LOW>; ++ }; ++ ++ led-3 { ++ label = "green:wan"; ++ gpios = <&pio 7 GPIO_ACTIVE_LOW>; ++ }; ++ ++ led-4 { ++ label = "green:lan"; ++ gpios = <&pio 8 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++}; ++ ++ð { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mdio_pins>; ++ ++ status = "okay"; ++ ++ gmac0: mac@0 { ++ compatible = "mediatek,eth-mac"; ++ reg = <0>; ++ phy-mode = "2500base-x"; ++ ++ fixed-link { ++ speed = <2500>; ++ full-duplex; ++ pause; ++ }; ++ }; ++ ++ gmac1: mac@1 { ++ compatible = "mediatek,eth-mac"; ++ reg = <1>; ++ phy-mode = "gmii"; ++ phy-handle = <&int_gbe_phy>; ++ }; ++}; ++ ++&mdio_bus { ++ switch: switch@1f { ++ compatible = "mediatek,mt7531"; ++ reg = <31>; ++ reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>; ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ interrupt-parent = <&pio>; ++ interrupts = <38 IRQ_TYPE_LEVEL_HIGH>; ++ }; ++}; ++ ++&spi0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&spi0_flash_pins>; ++ status = "okay"; ++ ++ spi_nand: flash@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "spi-nand"; ++ reg = <0>; ++ spi-max-frequency = <52000000>; ++ ++ spi-cal-enable; ++ spi-cal-mode = "read-data"; ++ spi-cal-datalen = <7>; ++ spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>; ++ spi-cal-addrlen = <5>; ++ spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>; ++ ++ spi-tx-bus-width = <4>; ++ spi-rx-bus-width = <4>; ++ mediatek,nmbm; ++ mediatek,bmt-max-ratio = <1>; ++ mediatek,bmt-max-reserved-blocks = <64>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "BL2"; ++ reg = <0x00000 0x100000>; ++ }; ++ ++ partition@100000 { ++ label = "u-boot-env"; ++ reg = <0x100000 0x80000>; ++ }; ++ ++ factory: partition@180000 { ++ label = "Factory"; ++ reg = <0x180000 0x200000>; ++ }; ++ ++ partition@380000 { ++ label = "FIP"; ++ reg = <0x380000 0x200000>; ++ }; ++ ++ partition@580000 { ++ label = "ubi"; ++ reg = <0x580000 0x7280000>; ++ }; ++ }; ++ }; ++}; ++ ++&switch { ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ label = "lan1"; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ label = "lan2"; ++ }; ++ ++ port@2 { ++ reg = <2>; ++ label = "lan3"; ++ }; ++ ++ port@6 { ++ reg = <6>; ++ ethernet = <&gmac0>; ++ phy-mode = "2500base-x"; ++ ++ fixed-link { ++ speed = <2500>; ++ full-duplex; ++ pause; ++ }; ++ }; ++ }; ++}; ++ ++&pio { ++ spi0_flash_pins: spi0-pins { ++ mux { ++ function = "spi"; ++ groups = "spi0", "spi0_wp_hold"; ++ }; ++ ++ conf-pu { ++ pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP"; ++ drive-strength = <8>; ++ bias-pull-up = <103>; ++ }; ++ ++ conf-pd { ++ pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO"; ++ drive-strength = <8>; ++ bias-pull-down = <103>; ++ }; ++ }; ++}; ++ ++&uart0 { ++ status = "okay"; ++}; ++ ++&watchdog { ++ status = "okay"; ++}; ++ ++&wifi { ++ status = "okay"; ++ ++ mediatek,mtd-eeprom = <&factory 0x0>; ++}; +diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds +index 0a1f642c70924..fda3d4b98d875 100644 +--- a/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds ++++ b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds +@@ -20,6 +20,14 @@ confiabits,mt7981) + cudy,wr3000-v1) + ucidef_set_led_netdev "wan" "wan" "blue:wan" "wan" + ;; ++imou,lc-hx3001) ++ ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth1" "link" ++ ucidef_set_led_netdev "lan" "LAN" "green:lan" "br-lan" "link" ++ ucidef_set_led_netdev "wlan" "WLAN" "green:wlan" "phy1-ap0" "link" ++ ;; ++konka,komi-a31) ++ ucidef_set_led_netdev "eth1" "eth1" "blue:status" "eth1" "link" ++ ;; + mercusys,mr90x-v1) + ucidef_set_led_netdev "lan-0" "lan-0" "green:lan-0" "lan0" "link tx rx" + ucidef_set_led_netdev "lan-1" "lan-1" "green:lan-1" "lan1" "link tx rx" +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 61637e09c7f0e..4048eddadb45a 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 +@@ -130,6 +130,12 @@ + wan_mac=$label_mac + lan_mac=$(macaddr_add "$label_mac" 2) + ;; ++ imou,lc-hx3001) ++ lan_mac=$(mtd_get_mac_ascii u-boot-env mac) ++ [ -n "$lan_mac" ] || lan_mac=$(macaddr_add $(mtd_get_mac_binary Factory 0x4) -1) ++ wan_mac=$(macaddr_add $lan_mac 2) ++ label_mac="$lan_mac" ++ ;; + h3c,magic-nx30-pro) + wan_mac=$(mtd_get_mac_ascii pdt_data_1 ethaddr) + lan_mac=$(macaddr_add "$wan_mac" 1) +diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk +index 83428f0d981e7..6d2e9d713be02 100644 +--- a/target/linux/mediatek/image/filogic.mk ++++ b/target/linux/mediatek/image/filogic.mk +@@ -589,6 +589,50 @@ endif + endef + TARGET_DEVICES += h3c_magic-nx30-pro-nmbm + ++define Device/imou_lc-hx3001 ++ DEVICE_VENDOR := IMOU ++ DEVICE_MODEL := LC-HX3001 ++ DEVICE_DTS := mt7981b-imou-lc-hx3001 ++ DEVICE_DTS_DIR := ../dts ++ DEVICE_PACKAGES := kmod-mt7981-firmware mt7981-wo-firmware ++ SUPPORTED_DEVICES += imou,lc-hx3001 ++ UBINIZE_OPTS := -E 5 ++ BLOCKSIZE := 128k ++ PAGESIZE := 2048 ++ IMAGE_SIZE := 113152k ++ KERNEL_IN_UBI := 1 ++ IMAGES += factory.bin ++ IMAGE/factory.bin := append-ubi | check-size $$$$(IMAGE_SIZE) ++ IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata ++ 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 ++endef ++TARGET_DEVICES += imou_lc-hx3001 ++ ++define Device/konka_komi-a31 ++ DEVICE_VENDOR := KONKA ++ DEVICE_MODEL := KOMI A31 ++ DEVICE_DTS := mt7981b-konka-komi-a31 ++ DEVICE_DTS_DIR := ../dts ++ DEVICE_PACKAGES := kmod-mt7981-firmware mt7981-wo-firmware ++ SUPPORTED_DEVICES := konka,komi-a31 ++ UBINIZE_OPTS := -E 5 ++ BLOCKSIZE := 128k ++ PAGESIZE := 2048 ++ IMAGE_SIZE := 114688k ++ KERNEL_IN_UBI := 1 ++ IMAGES += factory.bin ++ IMAGE/factory.bin := append-ubi | check-size $$$$(IMAGE_SIZE) ++ IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata ++ 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 ++endef ++TARGET_DEVICES += konka_komi-a31 ++ + define Device/jcg_q30-pro + DEVICE_VENDOR := JCG + DEVICE_MODEL := Q30 PRO diff --git a/devices/mediatek_mt7981/.config b/devices/mediatek_mt7981/.config index b03554f85090..5b60813d8bbc 100644 --- a/devices/mediatek_mt7981/.config +++ b/devices/mediatek_mt7981/.config @@ -5,10 +5,6 @@ CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_glinet_gl-x3000=y CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_glinet_gl-xe3000=y CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_livinet_zr-3020=y CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_mt7981-clt-r30b1-112M=y -CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_konka_komi-a31=y -CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_imou_lc-hx3001=y -CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_abt_asr3000=y -CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_cmcc_a10=y CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_nradio_wt9103=y CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_nradio_wt9103_512m=y