diff mbox series

[v2] ramips: add support for Huasifei WS1208V2

Message ID 20230127135705.449602-1-arinc.unal@arinc9.com
State Superseded
Delegated to: Hauke Mehrtens
Headers show
Series [v2] ramips: add support for Huasifei WS1208V2 | expand

Commit Message

Arınç ÜNAL Jan. 27, 2023, 1:57 p.m. UTC
From: Arınç ÜNAL <arinc.unal@arinc9.com>

The Huasifei WS1208V2 is an AC1200 router featuring 5 Ethernet ports with a
Quectel RM520N-GL cellular modem which supports QMI and MBIM modes.

Specifications:
- MT7621AT, 256 MiB RAM, 16 MiB SPI Flash
- MT7603EN 2.4 GHz & MT7612EN 5 GHz WLAN
- Quectel RM520N-GL Cellular Modem
- 2 WLAN & 4 Cellular Antennas
- 5 Gigabit Ethernet Ports
- 1 USB 2.0 port
- 1 PCI-E Slot
- 1 M.2 slot
- 1 SIM card slot
- 1 SD card slot

Installation:
- Install sysupgrade image via ROOter OS.

TFTP Recovery:
- Connect to serial console.
- Boot initramfs image by choosing option 1 when U-Boot prompts.
- Install sysupgrade image via OpenWrt.

Link: https://www.huasifei.com/a/Products/5G%20CPE/240.html
Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
---

v2: Add recovery information.

---
 .../ramips/dts/mt7621_huasifei_ws1208v2.dts   | 187 ++++++++++++++++++
 target/linux/ramips/image/mt7621.mk           |  12 ++
 .../mt7621/base-files/etc/board.d/01_leds     |   3 +
 3 files changed, 202 insertions(+)
 create mode 100644 target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts

Comments

Hauke Mehrtens Feb. 3, 2023, 1:03 p.m. UTC | #1
On 1/27/23 14:57, arinc9.unal@gmail.com wrote:
> From: Arınç ÜNAL <arinc.unal@arinc9.com>
> 
> The Huasifei WS1208V2 is an AC1200 router featuring 5 Ethernet ports with a
> Quectel RM520N-GL cellular modem which supports QMI and MBIM modes.
> 
> Specifications:
> - MT7621AT, 256 MiB RAM, 16 MiB SPI Flash
> - MT7603EN 2.4 GHz & MT7612EN 5 GHz WLAN
> - Quectel RM520N-GL Cellular Modem
> - 2 WLAN & 4 Cellular Antennas
> - 5 Gigabit Ethernet Ports
> - 1 USB 2.0 port
> - 1 PCI-E Slot
> - 1 M.2 slot
> - 1 SIM card slot
> - 1 SD card slot
> 
> Installation:
> - Install sysupgrade image via ROOter OS.
> 
> TFTP Recovery:
> - Connect to serial console.
> - Boot initramfs image by choosing option 1 when U-Boot prompts.
> - Install sysupgrade image via OpenWrt.
> 
> Link: https://www.huasifei.com/a/Products/5G%20CPE/240.html
> Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
> ---
> 
> v2: Add recovery information.
> 
> ---
>   .../ramips/dts/mt7621_huasifei_ws1208v2.dts   | 187 ++++++++++++++++++
>   target/linux/ramips/image/mt7621.mk           |  12 ++
>   .../mt7621/base-files/etc/board.d/01_leds     |   3 +
>   3 files changed, 202 insertions(+)
>   create mode 100644 target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts
> 
> diff --git a/target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts b/target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts
> new file mode 100644
> index 0000000000..c69f05a0f4
> --- /dev/null
> +++ b/target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts
> @@ -0,0 +1,187 @@
.....
> +&factory {
> +	compatible = "nvmem-cells";
> +	#address-cells = <1>;
> +	#size-cells = <1>;
> +
> +	macaddr_factory_e000: macaddr@e000 {
> +		reg = <0xe000 0x6>;
> +	};
> +};

Please move this directly where you defined the factory partition in the 
partitions node.

> diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
> index 2269833e48..bbd25e5be0 100644
> --- a/target/linux/ramips/image/mt7621.mk
> +++ b/target/linux/ramips/image/mt7621.mk
> @@ -996,6 +996,18 @@ define Device/humax_e10
>   endef
>   TARGET_DEVICES += humax_e10
>   
> +define Device/huasifei_ws1208v2
> +  $(Device/dsa-migration)
> +  $(Device/uimage-lzma-loader)
> +  IMAGE_SIZE := 16064k
> +  DEVICE_VENDOR := Huasifei
> +  DEVICE_MODEL := WS1208V2
> +  DEVICE_PACKAGES := kmod-ata-ahci kmod-mt7603 kmod-mt76x2 kmod-sdhci-mt7620 \
> +	kmod-usb3 kmod-usb-net-cdc-mbim kmod-usb-net-qmi-wwan \
> +	kmod-usb-serial-option -wpad-basic-wolfssl

Why do you remove wpad-basic-wolfssl?
What is kmod-usb-net-cdc-mbim needed for?


> +endef
> +TARGET_DEVICES += huasifei_ws1208v2
> +
>   define Device/iodata_wn-ax1167gr
>     $(Device/dsa-migration)
>     $(Device/uimage-lzma-loader)
Arınç ÜNAL Feb. 4, 2023, 7:25 a.m. UTC | #2
On 3.02.2023 16:03, Hauke Mehrtens wrote:
> On 1/27/23 14:57, arinc9.unal@gmail.com wrote:
>> From: Arınç ÜNAL <arinc.unal@arinc9.com>
>>
>> The Huasifei WS1208V2 is an AC1200 router featuring 5 Ethernet ports 
>> with a
>> Quectel RM520N-GL cellular modem which supports QMI and MBIM modes.
>>
>> Specifications:
>> - MT7621AT, 256 MiB RAM, 16 MiB SPI Flash
>> - MT7603EN 2.4 GHz & MT7612EN 5 GHz WLAN
>> - Quectel RM520N-GL Cellular Modem
>> - 2 WLAN & 4 Cellular Antennas
>> - 5 Gigabit Ethernet Ports
>> - 1 USB 2.0 port
>> - 1 PCI-E Slot
>> - 1 M.2 slot
>> - 1 SIM card slot
>> - 1 SD card slot
>>
>> Installation:
>> - Install sysupgrade image via ROOter OS.
>>
>> TFTP Recovery:
>> - Connect to serial console.
>> - Boot initramfs image by choosing option 1 when U-Boot prompts.
>> - Install sysupgrade image via OpenWrt.
>>
>> Link: https://www.huasifei.com/a/Products/5G%20CPE/240.html
>> Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
>> ---
>>
>> v2: Add recovery information.
>>
>> ---
>>   .../ramips/dts/mt7621_huasifei_ws1208v2.dts   | 187 ++++++++++++++++++
>>   target/linux/ramips/image/mt7621.mk           |  12 ++
>>   .../mt7621/base-files/etc/board.d/01_leds     |   3 +
>>   3 files changed, 202 insertions(+)
>>   create mode 100644 target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts
>>
>> diff --git a/target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts 
>> b/target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts
>> new file mode 100644
>> index 0000000000..c69f05a0f4
>> --- /dev/null
>> +++ b/target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts
>> @@ -0,0 +1,187 @@
> .....
>> +&factory {
>> +    compatible = "nvmem-cells";
>> +    #address-cells = <1>;
>> +    #size-cells = <1>;
>> +
>> +    macaddr_factory_e000: macaddr@e000 {
>> +        reg = <0xe000 0x6>;
>> +    };
>> +};
> 
> Please move this directly where you defined the factory partition in the 
> partitions node.

Will do.

> 
>> diff --git a/target/linux/ramips/image/mt7621.mk 
>> b/target/linux/ramips/image/mt7621.mk
>> index 2269833e48..bbd25e5be0 100644
>> --- a/target/linux/ramips/image/mt7621.mk
>> +++ b/target/linux/ramips/image/mt7621.mk
>> @@ -996,6 +996,18 @@ define Device/humax_e10
>>   endef
>>   TARGET_DEVICES += humax_e10
>> +define Device/huasifei_ws1208v2
>> +  $(Device/dsa-migration)
>> +  $(Device/uimage-lzma-loader)
>> +  IMAGE_SIZE := 16064k
>> +  DEVICE_VENDOR := Huasifei
>> +  DEVICE_MODEL := WS1208V2
>> +  DEVICE_PACKAGES := kmod-ata-ahci kmod-mt7603 kmod-mt76x2 
>> kmod-sdhci-mt7620 \
>> +    kmod-usb3 kmod-usb-net-cdc-mbim kmod-usb-net-qmi-wwan \
>> +    kmod-usb-serial-option -wpad-basic-wolfssl
> 
> Why do you remove wpad-basic-wolfssl?

This shouldn't be there, thanks for pointing it out.

> What is kmod-usb-net-cdc-mbim needed for?

That's to manage the cellular modem using the MBIM specification. 
ModemManager or umbim can be used for this. Speaking of umbim, it would 
be great if you could apply these fixes on umbim.

https://github.com/openwrt/openwrt/pull/4405

Arınç
diff mbox series

Patch

diff --git a/target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts b/target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts
new file mode 100644
index 0000000000..c69f05a0f4
--- /dev/null
+++ b/target/linux/ramips/dts/mt7621_huasifei_ws1208v2.dts
@@ -0,0 +1,187 @@ 
+#include "mt7621.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	compatible = "huasifei,ws1208v2", "mediatek,mt7621-soc";
+	model = "Huasifei WS1208V2";
+
+	aliases {
+		led-boot = &led_status;
+		led-failsafe = &led_status;
+		led-running = &led_status;
+		led-upgrade = &led_status;
+		label-mac-device = &gmac0;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200";
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		button-reset {
+			label = "Reset";
+			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_status: led-status {
+			label = "green:status";
+			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+		};
+
+		led-cellular {
+			label = "green:cellular";
+			gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+		};
+
+		led-wlan5g {
+			label = "green:wlan5g";
+			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy1tpt";
+		};
+
+		led-wlan2g {
+			label = "green:wlan2g";
+			gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+
+		led-usb {
+			label = "green:usb";
+			gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+			trigger-sources = <&xhci_ehci_port1>;
+			linux,default-trigger = "usbport";
+		};
+	};
+};
+
+&sdhci {
+	status = "okay";
+};
+
+&spi0 {
+	status = "okay";
+
+	flash@0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <10000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition@0 {
+				label = "u-boot";
+				reg = <0x0 0x30000>;
+				read-only;
+			};
+
+			partition@30000 {
+				label = "u-boot-env";
+				reg = <0x30000 0x10000>;
+				read-only;
+			};
+
+			factory: partition@40000 {
+				label = "factory";
+				reg = <0x40000 0x10000>;
+				read-only;
+			};
+
+			firmware: partition@50000 {
+				compatible = "denx,uimage";
+				reg = <0x50000 0xfb0000>;
+				label = "firmware";
+			};
+		};
+	};
+};
+
+&pcie {
+	status = "okay";
+};
+
+&pcie0 {
+	wifi@0,0 {
+		compatible = "pci14c3,7603";
+		reg = <0x0000 0 0 0 0>;
+		mediatek,mtd-eeprom = <&factory 0x0000>;
+	};
+};
+
+&pcie1 {
+	wifi@0,0 {
+		compatible = "pci14c3,7662";
+		reg = <0x0000 0 0 0 0>;
+		mediatek,mtd-eeprom = <&factory 0x8000>;
+		ieee80211-freq-limit = <5000000 6000000>;
+
+		led {
+			led-sources = <2>;
+		};
+	};
+};
+
+&gmac0 {
+	nvmem-cells = <&macaddr_factory_e000>;
+	nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+	status = "okay";
+	label = "wan";
+	phy-handle = <&ethphy4>;
+
+	nvmem-cells = <&macaddr_factory_e000>;
+	nvmem-cell-names = "mac-address";
+};
+
+&mdio {
+	ethphy4: ethernet-phy@4 {
+		reg = <4>;
+	};
+};
+
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+	};
+};
+
+&factory {
+	compatible = "nvmem-cells";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	macaddr_factory_e000: macaddr@e000 {
+		reg = <0xe000 0x6>;
+	};
+};
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 2269833e48..bbd25e5be0 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -996,6 +996,18 @@  define Device/humax_e10
 endef
 TARGET_DEVICES += humax_e10
 
+define Device/huasifei_ws1208v2
+  $(Device/dsa-migration)
+  $(Device/uimage-lzma-loader)
+  IMAGE_SIZE := 16064k
+  DEVICE_VENDOR := Huasifei
+  DEVICE_MODEL := WS1208V2
+  DEVICE_PACKAGES := kmod-ata-ahci kmod-mt7603 kmod-mt76x2 kmod-sdhci-mt7620 \
+	kmod-usb3 kmod-usb-net-cdc-mbim kmod-usb-net-qmi-wwan \
+	kmod-usb-serial-option -wpad-basic-wolfssl
+endef
+TARGET_DEVICES += huasifei_ws1208v2
+
 define Device/iodata_wn-ax1167gr
   $(Device/dsa-migration)
   $(Device/uimage-lzma-loader)
diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds
index 985eefb860..cce0f1ac5d 100644
--- a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds
@@ -88,6 +88,9 @@  dlink,dir-882-r1)
 gnubee,gb-pc2)
 	ucidef_set_led_netdev "ethyellow" "ethyellow" "orange:ethyellow" "ethyellow" "link tx rx"
 	;;
+huasifei,ws1208v2)
+	ucidef_set_led_netdev "wwan0" "wwan0" "green:cellular" "wwan0" "link tx rx"
+	;;
 keenetic,kn-3010)
 	ucidef_set_led_netdev "internet" "internet" "green:internet" "wan"
 	;;