mvebu: add support for GL.iNet GL-MV1000
authorLi Zhang <li.zhang@gl-inet.com>
Fri, 17 Apr 2020 06:39:32 +0000 (14:39 +0800)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 26 Apr 2020 19:45:41 +0000 (21:45 +0200)
This patch adds supports for GL-MV1000.

Specification:
- SOC: Marvell Armada 88F3720 (1GHz)
- Flash: 16MB (W25Q128FWSIG)
- RAM: 1GB DDR4
- Ethernet: 3x GE (1 WAN + 2 LAN)
- EMMC: 8GB EMMC (KLM8G1GETF-B041)
- MicroSD: 1x microSD slot
- USB: 1x USB 2.0 port(TypeA),1x USB 3.0 port(TypeC)
- Button: 1x reset button,1x slide switch
- LED: 3x greed LED
- UART: 1x UART on PCB (JP1: 3.3V, RX, TX, GND)

Update firmware instructions
============================
In the compiled,please gzip -d xxx.img.gz,then update firmware on uboot web.

Signed-off-by: Li Zhang <li.zhang@gl-inet.com>
[Copied dts file to files-5.4]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
package/boot/uboot-envtools/files/mvebu
target/linux/mvebu/cortexa53/base-files/etc/board.d/02_network
target/linux/mvebu/files-4.19/arch/arm64/boot/dts/marvell/armada-gl-mv1000.dts [new file with mode: 0644]
target/linux/mvebu/files-5.4/arch/arm64/boot/dts/marvell/armada-gl-mv1000.dts [new file with mode: 0644]
target/linux/mvebu/image/cortexa53.mk

index 7902384a37a4dd792124084c7620ffba4548511b..b883f0aa8ce1cc3d8d38611330a49f3fcdf25848 100644 (file)
@@ -24,6 +24,9 @@ globalscale,espressobin-v7-emmc|\
 marvell,armada8040-mcbin)
        ubootenv_add_uci_config "/dev/mtd0" "0x3f0000" "0x10000" "0x10000" "1"
        ;;
 marvell,armada8040-mcbin)
        ubootenv_add_uci_config "/dev/mtd0" "0x3f0000" "0x10000" "0x10000" "1"
        ;;
+glinet,gl-mv1000)
+       ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x8000" "0x8000" "1"
+       ;;
 linksys,caiman|\
 linksys,cobra|\
 linksys,shelby)
 linksys,caiman|\
 linksys,cobra|\
 linksys,shelby)
index ba4b9304266b062c6ecfb8dc6d2c3d6d46f090c1..9b1d97d921e6b5ed7f548fd4b5e5cc7aae6188c6 100755 (executable)
@@ -14,7 +14,8 @@ case "$board" in
 globalscale,espressobin|\
 globalscale,espressobin-emmc|\
 globalscale,espressobin-v7|\
 globalscale,espressobin|\
 globalscale,espressobin-emmc|\
 globalscale,espressobin-v7|\
-globalscale,espressobin-v7-emmc)
+globalscale,espressobin-v7-emmc|\
+glinet,gl-mv1000)
        ucidef_set_interfaces_lan_wan "lan0 lan1" "wan"
        ;;
 marvell,armada-3720-db|\
        ucidef_set_interfaces_lan_wan "lan0 lan1" "wan"
        ;;
 marvell,armada-3720-db|\
diff --git a/target/linux/mvebu/files-4.19/arch/arm64/boot/dts/marvell/armada-gl-mv1000.dts b/target/linux/mvebu/files-4.19/arch/arm64/boot/dts/marvell/armada-gl-mv1000.dts
new file mode 100644 (file)
index 0000000..9d7963c
--- /dev/null
@@ -0,0 +1,165 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree file for GL.iNet GL-MV1000
+ */
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include "armada-372x.dtsi"
+
+/ {
+       model = "GL.inet GL-MV1000";
+       compatible = "glinet,gl-mv1000", "marvell,armada3720";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
+       };
+
+       vcc_sd_reg1: regulator {
+               compatible = "regulator-gpio";
+               regulator-name = "vcc_sd1";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+        
+               gpios-states = <0>;
+               states = <1800000 0x1
+                       3300000 0x0>;
+               enable-active-high;
+       };
+};
+
+&spi0 {
+       status = "okay";
+
+       flash@0 {
+               reg = <0>;
+               compatible = "jedec,spi-nor";
+               spi-max-frequency = <104000000>;
+               m25p,fast-read;
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0 0xf0000>;
+                       };
+
+                       partition@f0000 {
+                               label = "u-boot-env";
+                               reg = <0Xf0000 0x8000>;
+                       };
+
+                       factory: partition@f8000 {
+                               label = "factory";
+                               reg = <0xf8000 0x8000>;
+                       };
+               };
+       };
+};
+
+&sdhci1 {
+       wp-inverted;
+       bus-width = <4>;
+       cd-gpios = <&gpionb 17 GPIO_ACTIVE_LOW>;
+       marvell,pad-type = "sd";
+       no-1-8-v;
+       vqmmc-supply = <&vcc_sd_reg1>;
+       status = "okay";
+};
+
+&sdhci0 {
+       bus-width = <8>;
+       mmc-ddr-1_8v;
+       mmc-hs400-1_8v;
+       non-removable;
+       no-sd;
+       no-sdio;
+       marvell,pad-type = "fixed-1-8v";
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&mdio {
+       switch0: switch0@1 {
+               compatible = "marvell,mv88e6085";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <1>;
+
+               dsa,member = <0 0>;
+
+               ports: ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               label = "cpu";
+                               ethernet = <&eth0>;
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               label = "wan";
+                               phy-handle = <&switch0phy0>;
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               label = "lan0";
+                               phy-handle = <&switch0phy1>;
+                       };
+
+                       port@3 {
+                               reg = <3>;
+                               label = "lan1";
+                               phy-handle = <&switch0phy2>;
+                       };
+               };
+
+               mdio {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       switch0phy0: switch0phy0@11 {
+                               reg = <0x11>;
+                       };
+                       switch0phy1: switch0phy1@12 {
+                               reg = <0x12>;
+                       };
+                       switch0phy2: switch0phy2@13 {
+                               reg = <0x13>;
+                       };
+               };
+       };
+};
+
+&eth0 {
+       mtd-mac-address = <&factory 0x0>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+};
diff --git a/target/linux/mvebu/files-5.4/arch/arm64/boot/dts/marvell/armada-gl-mv1000.dts b/target/linux/mvebu/files-5.4/arch/arm64/boot/dts/marvell/armada-gl-mv1000.dts
new file mode 100644 (file)
index 0000000..9d7963c
--- /dev/null
@@ -0,0 +1,165 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree file for GL.iNet GL-MV1000
+ */
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include "armada-372x.dtsi"
+
+/ {
+       model = "GL.inet GL-MV1000";
+       compatible = "glinet,gl-mv1000", "marvell,armada3720";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
+       };
+
+       vcc_sd_reg1: regulator {
+               compatible = "regulator-gpio";
+               regulator-name = "vcc_sd1";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+        
+               gpios-states = <0>;
+               states = <1800000 0x1
+                       3300000 0x0>;
+               enable-active-high;
+       };
+};
+
+&spi0 {
+       status = "okay";
+
+       flash@0 {
+               reg = <0>;
+               compatible = "jedec,spi-nor";
+               spi-max-frequency = <104000000>;
+               m25p,fast-read;
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0 0xf0000>;
+                       };
+
+                       partition@f0000 {
+                               label = "u-boot-env";
+                               reg = <0Xf0000 0x8000>;
+                       };
+
+                       factory: partition@f8000 {
+                               label = "factory";
+                               reg = <0xf8000 0x8000>;
+                       };
+               };
+       };
+};
+
+&sdhci1 {
+       wp-inverted;
+       bus-width = <4>;
+       cd-gpios = <&gpionb 17 GPIO_ACTIVE_LOW>;
+       marvell,pad-type = "sd";
+       no-1-8-v;
+       vqmmc-supply = <&vcc_sd_reg1>;
+       status = "okay";
+};
+
+&sdhci0 {
+       bus-width = <8>;
+       mmc-ddr-1_8v;
+       mmc-hs400-1_8v;
+       non-removable;
+       no-sd;
+       no-sdio;
+       marvell,pad-type = "fixed-1-8v";
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&mdio {
+       switch0: switch0@1 {
+               compatible = "marvell,mv88e6085";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <1>;
+
+               dsa,member = <0 0>;
+
+               ports: ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               label = "cpu";
+                               ethernet = <&eth0>;
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               label = "wan";
+                               phy-handle = <&switch0phy0>;
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               label = "lan0";
+                               phy-handle = <&switch0phy1>;
+                       };
+
+                       port@3 {
+                               reg = <3>;
+                               label = "lan1";
+                               phy-handle = <&switch0phy2>;
+                       };
+               };
+
+               mdio {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       switch0phy0: switch0phy0@11 {
+                               reg = <0x11>;
+                       };
+                       switch0phy1: switch0phy1@12 {
+                               reg = <0x12>;
+                       };
+                       switch0phy2: switch0phy2@13 {
+                               reg = <0x13>;
+                       };
+               };
+       };
+};
+
+&eth0 {
+       mtd-mac-address = <&factory 0x0>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+};
index 77f5c799729815abdfc171c4df8cf7493756612a..1436c1bd23ecb9486f0aa4089148d4ed1ff99a70 100644 (file)
@@ -69,3 +69,12 @@ define Device/methode_udpu
   BOOT_SCRIPT := udpu
 endef
 TARGET_DEVICES += methode_udpu
   BOOT_SCRIPT := udpu
 endef
 TARGET_DEVICES += methode_udpu
+
+define Device/glinet_gl-mv1000
+  $(call Device/Default-arm64)
+  DEVICE_TITLE := GL.iNet GL-MV1000
+  DEVICE_DTS := armada-gl-mv1000
+  SUPPORTED_DEVICES := glinet,gl-mv1000
+endef
+TARGET_DEVICES += glinet_gl-mv1000
+