[PATCH v3 2/2] ramips: mt7621: Add support for ZyXEL LTE3301-Plus

Adrian Schmutzler mail at adrianschmutzler.de
Sun May 23 02:28:10 PDT 2021


Hi,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org]
> On Behalf Of André Valentin
> Sent: Dienstag, 18. Mai 2021 22:45
> To: openwrt-devel at lists.openwrt.org; a.valentin at ddimension.net
> Cc: avalentin at marcant.net
> Subject: [PATCH v3 2/2] ramips: mt7621: Add support for ZyXEL LTE3301-Plus

Thanks for updating. Still a few comments below.

> 
> The ZyXEL LTE3301-Plus is an 4G indoor CPE with 2 external LTE antennas.
> 
> Specifications:
> 
>  - SoC: MediaTek MT7621AT
>  - RAM: 256 MB
>  - Flash: 128 MB MB NAND (MX30LF1G18AC)
>  - WiFi: MediaTek MT7615E
>  - Switch: 4 LAN ports (Gigabit)
>  - LTE: Quectel EG506 connected by USB3 to SoC
>  - SIM: 1 micro-SIM slot
>  - USB: USB3 port
>  - Buttons: Reset, WPS
>  - LEDs: Multicolour power, internet, LTE, signal, Wifi, USB
>  - Power: 12V, 1.5A
> 
> The device is built as an indoor ethernet to LTE bridge or router with Wifi.
> 
> UART Serial:
> 
> 57600N1
> Located on populated 5 pin header J5:
> 
>  [o] GND
>  [ ] key - no pin
>  [o] 3.3V Vcc
>  [o] RX
>  [o] TX
> 
> MAC assignment:
> lan:  98:0d:67:ee:85:54 (base, on the device back)
> wlan: 98:0d:67:ee:85:55
> 
> For more details about flashing see commit
> 2449a632084b29632605e5a79ce5d73028eb15dd .

You don't provide _any_ details about flashing, so "for more details" is a bit of irony here.
Jokes aside, please provide a very condensed flashing info here, and then it's perfectly fine to link to the other commit.
But the user should get a general idea about flashing without following any links (you may choose whether you prefer just providing one method and then use the link for the other, or just give an overview of available methods etc.).

> 
> Signed-off-by: André Valentin <avalentin at marcant.net>
> ---
>  package/boot/uboot-envtools/files/ramips      |   1 +
>  .../ramips/dts/mt7621_zyxel_lte3301-plus.dts  | 213 ++++++++++++++++++
>  target/linux/ramips/image/mt7621.mk           |  19 ++
>  .../mt7621/base-files/etc/board.d/01_leds     |   3 +
>  .../mt7621/base-files/etc/board.d/02_network  |   3 +-
>  .../base-files/etc/board.d/03_gpio_switches   |   4 +
>  .../mt7621/base-files/etc/init.d/bootcount    |   1 +
>  .../mt7621/base-files/lib/upgrade/platform.sh |   1 +
>  8 files changed, 244 insertions(+), 1 deletion(-)  create mode 100644
> target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
> 
> diff --git a/package/boot/uboot-envtools/files/ramips
> b/package/boot/uboot-envtools/files/ramips
> index bce2e5f0fb..4d0e608911 100644
> --- a/package/boot/uboot-envtools/files/ramips
> +++ b/package/boot/uboot-envtools/files/ramips
> @@ -53,6 +53,7 @@ xiaomi,mi-router-ac2100|\
>  xiaomi,redmi-router-ac2100)
>  	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x20000"
>  	;;
> +zyxel,lte3301-plus|\
>  zyxel,nr7101)
>  	idx="$(find_mtd_index Config)"
>  	[ -n "$idx" ] && \
> diff --git a/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
> b/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
> new file mode 100644
> index 0000000000..af2e792cb8
> --- /dev/null
> +++ b/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
> @@ -0,0 +1,213 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +
> +#include "mt7621.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +	compatible = "zyxel,lte3301-plus", "mediatek,mt7621-soc";
> +	model = "ZyXEL LTE3301-PLUS";
> +
> +	aliases {
> +		label-mac-device = &gmac0;
> +		led-boot = &led_power;
> +		led-failsafe = &led_power;
> +		led-running = &led_power;
> +		led-upgrade = &led_power;
> +	};
> +
> +	gpio_export {
> +		compatible = "gpio-export";
> +
> +		lte_power {
> +			gpio-export,name = "lte_power";
> +			gpio-export,output = <1>;
> +			gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		usb_power {
> +			gpio-export,name = "usb_power";
> +			gpio-export,output = <1>;
> +			gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		led_power: power {
> +			label = "white:power";
> +			gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		wifi {
> +			label = "white:wifi";
> +			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		internet {
> +			label = "white:internet";
> +			gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		usb {
> +			label = "white:usb";
> +			gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
> +			trigger-sources = <&xhci_ehci_port1>,
> <&ehci_port2>;
> +			linux,default-trigger = "usbport";
> +		};
> +
> +		lte {
> +			label = "white:lte";
> +			gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		mobile_green {
> +			label = "green:mobile";
> +			gpios = <&gpio 31 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		mobile_orange {
> +			label = "orange:mobile";
> +			gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		mobile_red {
> +			label = "red:mobile";
> +			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
> +		};
> +	};
> +
> +	keys {
> +		compatible = "gpio-keys";
> +
> +		reset {
> +			label = "reset";
> +			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_RESTART>;
> +		};
> +
> +		wps {
> +			label = "wps";
> +			gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_WPS_BUTTON>;
> +		};
> +	};
> +};
> +
> +&nand {
> +	status = "okay";
> +
> +	partitions {
> +		compatible = "fixed-partitions";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +
> +		/* There is blank space between the partitions, this has been
> +		   adopted from the manufacturer.
> +		 */

I'd prefer to have a specific comment at the specific position in the partition table, i.e. name the position/offset or start/end and put the comment where the gap is. Otherwise, if you did a mistake somewhere, people will never know if it's a mistake or the expected blank space.

> +		partition at 0 {
> +			label = "Bootloader";
> +			reg = <0x0 0x80000>;
> +			read-only;
> +		};
> +
> +		partition at 80000 {
> +			label = "Config";
> +			reg = <0x80000 0x80000>;
> +		};
> +
> +		factory: partition at 100000 {
> +			label = "Factory";
> +			reg = <0x100000 0x40000>;
> +			read-only;
> +		};
> +
> +		partition at 140000 {
> +			label = "Kernel";
> +			reg = <0x140000 0x1ec0000>;
> +		};
> +
> +		partition at 540000 {
> +			label = "ubi";
> +			reg = <0x540000 0x1ac0000>;
> +		};
> +
> +		partition at 2140000 {
> +			label = "Kernel2";
> +			reg = <0x2140000 0x1ec0000>;
> +		};
> +
> +		partition at 4000000 {
> +			label = "wwan";
> +			reg = <0x4000000 0x100000>;
> +		};
> +
> +		partition at 4100000 {
> +			label = "data";
> +			reg = <0x4100000 0x1000000>;
> +		};
> +
> +		partition at 5100000 {
> +			label = "rom-d";
> +			reg = <0x5100000 0x100000>;
> +			read-only;
> +		};
> +
> +		partition at 5200000 {
> +			label = "reserve";
> +			reg = <0x5200000 0x80000>;
> +		};
> +	};
> +};
> +
> +&pcie {
> +       status = "okay";
> +
> +};
> +
> +&pcie0 {
> +       status = "okay";
> +
> +       mt7615d at 1,0 {

wifi at 1,0

> +               compatible = "pci14c3,7615";
> +               reg = <0x0000 0 0 0 0>;
> +               mediatek,firmware-eeprom = "mt7615e_eeprom.bin";
> +               mediatek,mtd-eeprom = <&factory 0x0000>;
> +               mtd-mac-address = <&factory 0xfe6e>;
> +	       mtd-mac-address-increment = <1>;

Broken indent.

> +	};
> +};
> +
> +&gmac0 {
> +	mtd-mac-address = <&factory 0xfe6e>;
> +};
> +
> +&switch0 {
> +	ports {
> +		port at 0 {
> +			status = "okay";
> +			label = "lan4";
> +		};
> +		port at 1 {
> +			status = "okay";
> +			label = "lan3";
> +		};
> +		port at 2 {
> +			status = "okay";
> +			label = "lan2";
> +		};
> +		port at 3 {
> +			status = "okay";
> +			label = "lan1";
> +		};
> +	};
> +};
> +
> +&state_default {
> +	gpio {
> +		groups = "wdt", "uart3", "rgmii2", "jtag";
> +		function = "gpio";
> +	};
> +};
> diff --git a/target/linux/ramips/image/mt7621.mk
> b/target/linux/ramips/image/mt7621.mk
> index 48448c2ab1..138a3213cb 100644
> --- a/target/linux/ramips/image/mt7621.mk
> +++ b/target/linux/ramips/image/mt7621.mk
> @@ -1511,6 +1511,25 @@ define Device/zio_freezio  endef
> TARGET_DEVICES += zio_freezio
> 
> +define Device/zyxel_lte3301-plus
> +  $(Device/dsa-migration)
> +  BLOCKSIZE := 128k
> +  PAGESIZE := 2048
> +  UBINIZE_OPTS := -E 5
> +  DEVICE_VENDOR := ZyXEL
> +  DEVICE_MODEL := LTE3301-PLUS
> +  DEVICE_PACKAGES := kmod-mt7615e kmod-mt7615-firmware kmod-usb3
> \
> +	uboot-envtools kmod-usb-ledtrig-usbport kmod-usb-net-qmi-wwan
> \
> +	kmod-usb-serial-option uqmi
> +  KERNEL := $(KERNEL_DTB) | uImage lzma | \
> +	zytrx-header $$(DEVICE_MODEL) $$(VERSION_DIST)-$$(REVISION)
> +  KERNEL_INITRAMFS := $(KERNEL_DTB) | uImage lzma | \
> +	zytrx-header $$(DEVICE_MODEL) 9.99(ABQU.1)$$(VERSION_DIST)-
> recovery
> +  KERNEL_INITRAMFS_SUFFIX := -recovery.bin
> +  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata endef
> +TARGET_DEVICES += zyxel_lte3301-plus
> +
>  define Device/zyxel_nr7101
>    $(Device/dsa-migration)
>    BLOCKSIZE := 128k
> 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 6743b7e6c3..f83ff797f2 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
> @@ -98,6 +98,9 @@ xiaomi,redmi-router-ac2100)
>  youhua,wr1200js)
>  	ucidef_set_led_netdev "internet" "INTERNET" "green:wan" "wan"
>  	;;
> +zyxel,lte3301-plus)
> +	ucidef_set_led_netdev "internet" "internet" "white:internet"
> "wwan0"
> +	;;
>  esac
> 
>  board_config_flush
> diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
> b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
> index cde3cba9bc..aae06ea588 100644
> --- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
> +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
> @@ -45,7 +45,8 @@ ramips_setup_interfaces()
>  		ucidef_set_interface_lan "lan1 lan2"
>  		;;
>  	linksys,re6500|\
> -	netgear,wac104)
> +	netgear,wac104|\
> +	zyxel,lte3301-plus)
>  		ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
>  		;;
>  	mikrotik,routerboard-750gr3)
> diff --git a/target/linux/ramips/mt7621/base-
> files/etc/board.d/03_gpio_switches b/target/linux/ramips/mt7621/base-
> files/etc/board.d/03_gpio_switches
> index ed728b07c4..4bf2aa37e0 100644
> --- a/target/linux/ramips/mt7621/base-files/etc/board.d/03_gpio_switches
> +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/03_gpio_switches
> @@ -22,6 +22,10 @@ ubnt,edgerouter-x-sfp)
>  	ucidef_add_gpio_switch "poe_power_port3" "PoE Power Port3"
> "403"
>  	ucidef_add_gpio_switch "poe_power_port4" "PoE Power Port4"
> "404"
>  	;;
> +zyxel,lte3301-plus)
> +	ucidef_add_gpio_switch "usb_power" "Power USB Port"
> "usb_power" "1"
> +	ucidef_add_gpio_switch "lte_power" "Power LTE modem"
> "lte_power" "1"
> +	;;
>  zyxel,nr7101)
>  	ucidef_add_gpio_switch "lte_reset" "Reset LTE/5G modem" "483"
>  	;;
> diff --git a/target/linux/ramips/mt7621/base-files/etc/init.d/bootcount
> b/target/linux/ramips/mt7621/base-files/etc/init.d/bootcount
> index a155458d3f..03c6d8eea7 100755
> --- a/target/linux/ramips/mt7621/base-files/etc/init.d/bootcount
> +++ b/target/linux/ramips/mt7621/base-files/etc/init.d/bootcount
> @@ -16,6 +16,7 @@ boot() {
>  	samknows,whitebox-v8)
>  		fw_setenv bootcount 0
>  		;;
> +	zyxel,lte3301-plus|\
>  	zyxel,nr7101)
>  		[ $(printf %d $(fw_printenv -n DebugFlag)) -gt 0 ] ||
> fw_setenv DebugFlag 0x1
>  		[ $(printf %d $(fw_printenv -n Image1Stable)) -gt 0 ] ||
> fw_setenv Image1Stable 1 diff --git a/target/linux/ramips/mt7621/base-
> files/lib/upgrade/platform.sh b/target/linux/ramips/mt7621/base-
> files/lib/upgrade/platform.sh
> index d30bc3db2e..0cf6abfb0a 100755
> --- a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh
> +++ b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh
> @@ -82,6 +82,7 @@ platform_do_upgrade() {
>  	ubnt,edgerouter-x-sfp)
>  		platform_upgrade_ubnt_erx "$1"
>  		;;
> +        zyxel,lte3301-plus|\

Broken indent, again. This is only what I found directly in the patchwork without looking for it, please check that you use the proper indent in all places. (./scripts/checkpatch.pl might help in some, but not all places.)

Best

Adrian

>  	zyxel,nr7101)
>  		fw_setenv CheckBypass 0
>  		fw_setenv Image1Stable 0
> --
> 2.20.1
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: openpgp-digital-signature.asc
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20210523/efaf8c8a/attachment-0001.sig>


More information about the openwrt-devel mailing list