[PATCH] ramips: add support for GL.iNet GL-MT1300

Adrian Schmutzler mail at adrianschmutzler.de
Mon Dec 14 09:40:05 EST 2020


Hi,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org]
> On Behalf Of xinfa.deng at gl-inet.com
> Sent: Montag, 14. Dezember 2020 10:55
> To: openwrt-devel at lists.openwrt.org
> Cc: GL.iNet-Xinfa.Deng <xinfa.deng at gl-inet.com>
> Subject: [PATCH] ramips: add support for GL.iNet GL-MT1300
> 
> From: "GL.iNet-Xinfa.Deng" <xinfa.deng at gl-inet.com>

Please use a proper name of a person only both for From: and Signed-off-by:.

> 
> The GL-MT1300 is a high-performance new generation pocket-sized router
> that offers a powerful hardware and first-class cybersecurity protocol with
> unique and modern design.
> 
> Specifications:
> - SoC: MT7621A, Dual-Core @880MHz
> - RAM: 256 MB DDR3
> - Flash: 32 MB
> - Ethernet: 3 x 10/100/1000: 2 x LAN + 1 x WAN
> - Wireless: 1 x MT7615D Dual-Band 2.4GHz(400Mbps) + 5GHz(867Mbps)
> - USB: 1 x USB 3.0 port
> - Slot: 1 x MicroSD card slot
> - Button: 1 x Reset button
> - Switch: 1 x Mode switch
> - LED: 1 x Blue LED + 1 x White LED
> 
> MAC addresses based on vendor firmware:
> WAN : factory 0x4000
> LAN : Mac from factory 0x4000 + 1
> 2.4GHz : factory 0x04
> 5GHz : Mac form factory 0x04 + 1
> 
> For more information on GL-MT1300, see the OFFICIAL GL.iNet website:
> https://www.gl-inet.com/products/gl-mt1300/
> 
> Signed-off-by: GL.iNet-Xinfa.Deng <xinfa.deng at gl-inet.com>
> ---
>  .../linux/ramips/dts/mt7621_glinet_gl-mt1300.dts   | 157
> +++++++++++++++++++++
>  target/linux/ramips/image/mt7621.mk                |   9 ++
>  .../mt7621/base-files/etc/board.d/02_network       |   1 +
>  .../etc/hotplug.d/ieee80211/10_fix_wifi_mac        |   3 +
>  4 files changed, 170 insertions(+)
>  create mode 100644 target/linux/ramips/dts/mt7621_glinet_gl-mt1300.dts
> 
> diff --git a/target/linux/ramips/dts/mt7621_glinet_gl-mt1300.dts
> b/target/linux/ramips/dts/mt7621_glinet_gl-mt1300.dts
> new file mode 100644
> index 0000000..317a8f8
> --- /dev/null
> +++ b/target/linux/ramips/dts/mt7621_glinet_gl-mt1300.dts
> @@ -0,0 +1,157 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT /dts-v1/;

dts-v1 is in mt7621.dtsi now and can be dropped here.

> +
> +#include "mt7621.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +	compatible = "glinet,gl-mt1300", "mediatek,mt7621-soc";
> +	model = "GL.iNet GL-MT1300";
> +
> +	aliases {
> +		led-boot = &led_run;
> +		led-failsafe = &led_run;
> +		led-running = &led_run;
> +		led-upgrade = &led_run;
> +	};

Can you provide a label-mac-device here? Would be probably either &gmac or &wan based on which interface matches the (first) MAC address on the device's label/box.
 
> +
> +	chosen {
> +		bootargs = "console=ttyS0,115200";
> +	};
> +
> +	palmbus: palmbus at 1E000000 {
> +		i2c at 900 {
> +			status = "okay";
> +		};
> +	};

Just use

&i2c {
	status = "okay";
}

instead.

> +
> +	keys {
> +		compatible = "gpio-keys-polled";
> +		poll-interval = <20>;

Using "gpio-keys" is preferred here.

> +
> +		reset {
> +			label = "reset";
> +			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_RESTART>;
> +		};
> +
> +		BTN_0 {
> +			label = "BTN_0";

It would be nice to use a more friendly name here. Might be just something generic like "user" or "configurable" ...

> +			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
> +			linux,code = <BTN_0>;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		led_run: blue {
> +			label = "gl-mt1300:blue";

The LED labels should be "color:function". Thus, you might probably want something like "blue:run", "blue:system", "blue:power" or similar here.

> +			gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		white {
> +			label = "gl-mt1300:white";

See above.

> +			gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +};
> +
> +&sdhci {
> +	status = "okay";
> +};
> +
> +&spi0 {
> +	status = "okay";
> +
> +	m25p80 at 0 {

flash at 0

> +		compatible = "mx25l25635f", "jedec,spi-nor";

Is the first compatible value required?

> +		reg = <0>;
> +		spi-max-frequency = <10000000>;

This probably can go much faster ...?

> +
> +		partitions {
> +			compatible = "fixed-partitions";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			partition at 0 {
> +				label = "u-boot";
> +				reg = <0x0 0x30000>;
> +				read-only;
> +			};
> +
> +			partition at 30000 {
> +				label = "u-boot-env";
> +				reg = <0x30000 0x10000>;
> +				read-only;
> +			};
> +
> +			factory: partition at 40000 {
> +				label = "factory";
> +				reg = <0x40000 0x10000>;
> +				read-only;
> +			};
> +
> +			partition at 50000 {
> +				compatible = "denx,uimage";
> +				label = "firmware";
> +				reg = <0x50000 0x1fb0000>;
> +			};
> +		};
> +	};
> +};
> +
> +&pcie {
> +	status = "okay";
> +};
> +
> +&pcie0 {
> +	wifi at 0,0 {
> +		compatible = "mediatek,mt76";
> +		reg = <0x0000 0 0 0 0>;
> +		mediatek,mtd-eeprom = <&factory 0x0>;
> +		mtd-mac-address = <&factory 0x0004>;

This line can be dropped, MAC address will be set from caldata automatically.

> +	};
> +};
> +
> +&gmac0 {
> +	mtd-mac-address = <&factory 0x4000>;

Just put the increment here, and remove the statement on the lan (not wan) ports.

> +};
> +
> +&switch0 {
> +	ports {
> +		port at 2 {
> +			status = "okay";
> +			label = "lan1";
> +			mtd-mac-address = <&factory 0x4000>;
> +			mtd-mac-address-increment = <1>;
> +		};
> +
> +		port at 3 {
> +			status = "okay";
> +			label = "lan2";
> +			mtd-mac-address = <&factory 0x4000>;
> +			mtd-mac-address-increment = <1>;
> +		};
> +		wan: port at 4 {

The "wan:" DT label is only needed if you use it for label-mac-device. Otherwise, it can be dropped.

> +			status = "okay";
> +			label = "wan";
> +			mtd-mac-address = <&factory 0x4000>;
> +		};
> +	};
> +};
> +
> +&uartlite3 {
> +	status = "okay";
> +};
> +
> +&pinctrl {
> +	state_default: pinctrl0 {
> +		gpio {
> +			ralink,group = "wdt", "rgmii2", "jtag", "mdio";

I don't see rgmii2 and mdio required anywhere?

Apart from that, please note that the syntax has changed. Just have a look at any of the other DTS files for mt7621.

> +			ralink,function = "gpio";
> +		};
> +	};
> +};
> diff --git a/target/linux/ramips/image/mt7621.mk
> b/target/linux/ramips/image/mt7621.mk
> index fad1855..615a55a 100644
> --- a/target/linux/ramips/image/mt7621.mk
> +++ b/target/linux/ramips/image/mt7621.mk
> @@ -475,6 +475,15 @@ define Device/gehua_ghl-r-001  endef
> TARGET_DEVICES += gehua_ghl-r-001
> 
> +define Device/glinet_gl-mt1300
> +  $(Device/dsa-migration)
> +  IMAGE_SIZE :=32448k
> +  DEVICE_VENDOR := GL.iNet
> +  DEVICE_MODEL := GL-MT1300
> +  DEVICE_PACKAGES := kmod-mt7615e kmod-mt7615-firmware kmod-usb3
> endef
> +TARGET_DEVICES += glinet_gl-mt1300
> +
>  define Device/gnubee_gb-pc1
>    $(Device/dsa-migration)
>    DEVICE_VENDOR := GnuBee
> 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 c5b3514..bca4cc2 100755
> --- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
> +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
> @@ -14,6 +14,7 @@ ramips_setup_interfaces()
>  		ucidef_set_interfaces_lan_wan "lan" "wan"
>  		;;
>  	asiarf,ap7621-nv1|\
> +	glinet,gl-mt1300|\
>  	lenovo,newifi-d1|\
>  	mikrotik,routerboard-m33g|\
>  	xiaomi,mi-router-3g|\
> diff --git a/target/linux/ramips/mt7621/base-
> files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
> b/target/linux/ramips/mt7621/base-
> files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
> index b7a41f0..49b61a5 100644
> --- a/target/linux/ramips/mt7621/base-
> files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
> +++ b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_f
> +++ ix_wifi_mac
> @@ -10,6 +10,9 @@ PHYNBR=${DEVPATH##*/phy}
>  board=$(board_name)
> 
>  case "$board" in
> +	glinet,gl-mt1300)
> +		[ "$PHYNBR" = "1" ] && macaddr_add
> "$(mtd_get_mac_binary factory 0x04)" 1 > /sys${DEVPATH}/macaddress
> +		;;

Again, I'd personally just use 0x4 instead 0x04 here.

Best

Adrian

>  	linksys,ea7300-v1|\
>  	linksys,ea7300-v2|\
>  	linksys,ea7500-v2)
> --
> 2.7.4
> 
> 
> 
> 
> _______________________________________________
> 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/20201214/54a9ca5c/attachment.sig>


More information about the openwrt-devel mailing list