[LEDE-DEV] [PATCH v2] ramips: add support for GL-inet GL-MT300N-V2

kyson lok kysonlok at gmail.com
Thu May 11 18:37:10 PDT 2017


On Fri, May 12, 2017 at 6:18 AM, L. D. Pinney <ldpinney at gmail.com> wrote:
> Hi Kyson :
>
> v2 looks much better ...
> Not a LEDE dev...comments inline.
>
> Thanks for your contribution efforts!
>
> Larry

Thanks for your review, I will modify it later.

>
> On Thu, May 11, 2017 at 3:48 AM, kysonlok <kysonlok at gmail.com> wrote:
>> This patch adds supports for the GL-inet GL-MT300N-V2.
>>
>> Specification:
>> - SoC: MediaTek MT7628AN
>> - Flash: 16 MiB (W25Q128FVSG)
>> - RAM: 128 MiB DDR
>> - Ethernet: 1 x WAN (100 Mbps) and 1 x LAN (100 Mbps)
>> - USB: 1 x USB 2.0 port
>> - Button: 1 x switch button, 1 x reset button
>> - LED: 3 x LEDS (system power led is not GPIO controller)
>> - UART: 1 x UART on PCB (JP1: 3.3V, RX, TX, GND)
>>
>> Installation through Luci:
>> - The original firmware is LEDE, so both LuCI or sysupgrade can be used.
>> - Do not keep settings, for sysupgrade please use the -n option.
>>
>> Installation through bootloader webserver:
>> - Plug power and hold reset button until red LED blink to bright.
>> - Install sysupgrade image using web interface on 192.168.1.1.
>>
>> Signed-off-by: kyson Lok <kysonlok at gmail.com>
>> ---
>>  target/linux/ramips/base-files/etc/board.d/01_leds |   3 +
>>  .../linux/ramips/base-files/etc/board.d/02_network |   4 +
>>  target/linux/ramips/base-files/etc/diag.sh         |   3 +
>>  target/linux/ramips/base-files/lib/ramips.sh       |   3 +
>>  .../ramips/base-files/lib/upgrade/platform.sh      |   1 +
>>  target/linux/ramips/dts/GL-MT300N-V2.dts           | 133 +++++++++++++++++++++
>>  target/linux/ramips/image/mt7628.mk                |   8 ++
>>  7 files changed, 155 insertions(+)
>>  create mode 100644 target/linux/ramips/dts/GL-MT300N-V2.dts
>>
>> diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds
>> index 52542ec..6c95a92 100755
>> --- a/target/linux/ramips/base-files/etc/board.d/01_leds
>> +++ b/target/linux/ramips/base-files/etc/board.d/01_leds
>> @@ -189,6 +189,9 @@ gl-mt300n|\
>>  gl-mt750)
>>         set_wifi_led "$board:wlan"
>>         ;;
>> +gl-mt300n-v2)
>> +       set_wifi_led "$board:red:wlan"
>> +       ;;
>>  hc5661|\
>>  hc5661a)
>>         ucidef_set_led_default "system" "system" "$board:blue:system" "1"
>> diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network
>> index 80a3bc2..741e702 100755
>> --- a/target/linux/ramips/base-files/etc/board.d/02_network
>> +++ b/target/linux/ramips/base-files/etc/board.d/02_network
>> @@ -175,6 +175,10 @@ ramips_setup_interfaces()
>>                 ucidef_add_switch "switch0" \
>>                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6 at eth0"
>>                 ;;
>> +       gl-mt300n-v2)
>> +               ucidef_add_switch "switch0" \
>> +                       "1:lan" "0:wan" "6 at eth0"
>> +               ;;
>>         awapn2403)
>>                 ucidef_add_switch "switch0" \
>>                         "0:lan" "1:wan" "6 at eth0"
>> diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh
>> index 461f46c..e051dfd 100644
>> --- a/target/linux/ramips/base-files/etc/diag.sh
>> +++ b/target/linux/ramips/base-files/etc/diag.sh
>> @@ -164,6 +164,9 @@ get_status_led() {
>>         miwifi-nano)
>>                 status_led="$board:blue:status"
>>                 ;;
>> +       gl-mt300n-v2)
>> +               status_led="$board:red:wlan"
>> +               ;;
>>         m4-4M|\
>>         m4-8M)
>>                 status_led="m4:blue:status"
>> diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
>> index 87cb7ff..1e031cd 100755
>> --- a/target/linux/ramips/base-files/lib/ramips.sh
>> +++ b/target/linux/ramips/base-files/lib/ramips.sh
>> @@ -214,6 +214,9 @@ ramips_board_detect() {
>>         *"GL-MT300N")
>>                 name="gl-mt300n"
>>                 ;;
>> +       *"GL-MT300N-V2")
>> +               name="gl-mt300n-v2"
>> +               ;;
>>         *"GL-MT750")
>>                 name="gl-mt750"
>>                 ;;
>> diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh
>> index adad8da..2c50c3c 100755
>> --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh
>> +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
>> @@ -64,6 +64,7 @@ platform_check_image() {
>>         freestation5|\
>>         gl-mt300a|\
>>         gl-mt300n|\
>> +       gl-mt300n-v2|\
>>         gl-mt750|\
>>         hc5*61|\
>>         hc5661a|\
>> diff --git a/target/linux/ramips/dts/GL-MT300N-V2.dts b/target/linux/ramips/dts/GL-MT300N-V2.dts
>> new file mode 100644
>> index 0000000..0e2777f
>> --- /dev/null
>> +++ b/target/linux/ramips/dts/GL-MT300N-V2.dts
>> @@ -0,0 +1,133 @@
>> +/dts-v1/;
>> +
>> +#include "mt7628an.dtsi"
>> +
>> +#include <dt-bindings/gpio/gpio.h>
>> +#include <dt-bindings/input/input.h>
>> +
>> +/{
>> +       compatible = "gl-inet,gl-mt300n-v2", "ralink,mt7620an-soc";
>> +       model = "GL-MT300N-V2";
>> +
>> +       chosen {
>> +               bootargs = "console=ttyS0,115200";
>> +       };
>> +
>> +       memory at 0 {
>> +               device_type = "memory";
>> +               reg = <0x0 0x8000000>;
>> +       };
>> +
>> +       gpio-leds {
>> +               compatible = "gpio-leds";
>> +
>> +               wan {
>> +                       label = "gl-mt300n-v2:blue:wan";
>> +                       gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
>> +               };
>> +
>> +               wlan {
>> +                       label = "gl-mt300n-v2:red:wlan";
>> +                       gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
>> +               };
>> +       };
>> +
>> +       gpio-keys {
>> +               compatible = "gpio-keys-polled";
>> +               #address-cells = <1>;
>> +               #size-cells = <0>;
>> +               poll-interval = <20>;
>> +
>> +               reset {
>> +                       label = "reset";
>> +                       gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
>> +                       linux,code = <KEY_RESTART>;
>> +               };
>> +
>> +               BTN_0 {
>> +                       label = "BTN_0";
>> +                       gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
>> +                       linux,code = <BTN_0>;
>> +               };
>> +
>> +               BTN_1 {
>> +                       label = "BTN_1";
>> +                       gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
>> +                       linux,code = <BTN_1>;
>> +               };
>> +       };
>> +
>> +       gpio_export {
>> +               compatible = "gpio-export";
>> +               #size-cells = <0>;
>> +
>> +               usb {
>> +                       gpio-export,name = "usb";
>> +                       gpio-export,output = <1>;
>> +                       gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
>> +               };
>> +       };
>> +
>> +};
>> +
>> +&pinctrl {
>> +       state_default: pinctrl0 {
>> +               gpio {
>> +                       ralink,group = "wdt", "gpio", "wled_an", "p0led_an", "i2s";
>> +                       ralink,function = "gpio";
>> +               };
>> +       };
>> +};
>> +
>> +&ethernet {
>> +       mtd-mac-address = <&factory 0x04000>;
>> +};
>> +
>> +&wmac {
>> +       status = "okay";
>> +       ralink,mtd-eeprom = <&factory 0x04000>;
>
> Using the same MAC for both the ethernet and wifi ?
> Again ...other mt76x8 devices use something like this:
>
> &wmac {
> status = "okay";
> ralink,mtd-eeprom = <&factory 0x4>;
> };
>
> &ethernet {
> mtd-mac-address = <&factory 0x28>;
> };

You are right, It's wrong with wifi MAC, It should be 0x0, and
ethernet MAC is 0x4000.

>
>> +};
>> +
>> +&spi0 {
>> +       status = "okay";
>> +
>> +       m25p80 at 0 {
>> +               #address-cells = <1>;
>> +               #size-cells = <1>;
>> +               compatible = "jedec,spi-nor";
>> +               reg = <0>;
>> +               spi-max-frequency = <10000000>;
>> +               m25p,chunked-io = <32>;
>> +
>> +               partition at 0 {
>> +                       label = "u-boot";
>> +                       reg = <0x0 0x30000>;
>> +                       read-only;
>> +               };
>> +
>> +               partition at 30000 {
>> +                       label = "u-boot-env";
>> +                       reg = <0x30000 0x10000>;
>> +                       read-only;
>
> Is there a reason that users can not or should not write to the
> uboot-env partition?
>
>                partition at 30000 {
>                       label = "u-boot-env";
>                       reg = <0x30000 0x10000>;
>                       read-only;     <---- remove this line IF it is
> OK for user to write here.

I don't think user can write to uboot-env, other vendor does not.

>
>> +               };
>> +
>> +               factory: partition at 40000 {
>> +                       label = "factory";
>> +                       reg = <0x40000 0x10000>;
>> +                       read-only;
>> +               };
>> +
>> +               partition at 50000 {
>> +                       label = "firmware";
>> +                       reg = <0x50000 0xf00000>;
>
> Is this correct? other mt76x8 devices with 16MB SPI Flash use :
>
> partition at 50000 {
> label = "firmware";
> reg = <0x50000 0xfb0000>;
>

I think it doesn't matter. I only use 15MB for firmware.

>> +               };
>> +       };
>> +};
>> +
>> +&ehci {
>> +       status = "okay";
>> +};
>> +
>> +&ohci {
>> +       status = "okay";
>> +};
>> diff --git a/target/linux/ramips/image/mt7628.mk b/target/linux/ramips/image/mt7628.mk
>> index 6bb04ea..5396115 100644
>> --- a/target/linux/ramips/image/mt7628.mk
>> +++ b/target/linux/ramips/image/mt7628.mk
>> @@ -26,6 +26,14 @@ define Device/miwifi-nano
>>  endef
>>  TARGET_DEVICES += miwifi-nano
>>
>> +define Device/gl-mt300n-v2
>> +  DTS := GL-MT300N-V2
>> +  IMAGE_SIZE := $(ralink_default_fw_size_16M)
>> +  DEVICE_TITLE := GL-iNet GL-MT300N-V2
>> +  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci
>> +endef
>> +TARGET_DEVICES += gl-mt300n-v2
>> +
>>  define Device/vocore2
>>    DTS := VOCORE2
>>    IMAGE_SIZE := $(ralink_default_fw_size_16M)
>> --
>> 1.9.1
>>
>>
>> _______________________________________________
>> Lede-dev mailing list
>> Lede-dev at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/lede-dev



More information about the Lede-dev mailing list