Hello,

I didn't get ANY response on my previous version... here it is again.
Please apply this patch to add support for the GL-iNet devices.

I've updated a patch, available at
https://github.com/alzhao/Openwrt-patches-for-GL.iNet/blob/master/001-gl-38300.patch
 

The patch (also at https://dev.openwrt.org/ticket/15632 ) includes
support for the GL-Inet V1 devices. Which are mostly compatible with the
TP-Link WR-703N boards.

The devices have 64M ram, 16M flash and 2 ethernet interfaces.

The original patch was written by alzhao <alz...@gmail.com> although as
far as I can see he never bothered to get this patch included in the
mainline.

I currently have 20+ of these routers, so I would appreciate it if this
patch was included into the mainline, as that would make life easier
here.

The patch adds the following files:
target/linux/ar71xx/files/arch/mips/ath79/mach-gl-inet.c
target/linux/ar71xx/generic/profiles/gl-connect.mk
target/linux/ar71xx/patches-3.10/911-MIPS-ath79-gl-machine.patch

And adds a few lines to the following:
tools/firmware-utils/src/mktplinkfw.c
target/linux/ar71xx/config-3.10
target/linux/ar71xx/base-files/lib/upgrade/platform.sh
target/linux/ar71xx/base-files/lib/ar71xx.sh
target/linux/ar71xx/base-files/etc/uci-defaults/02_network



I myself do not claim any copyright on this, as I only rebased the
patch. The original copyright statement included is/was:

/*
*  GL-CONNECT iNet board support
*
*  Copyright (C) 2011 dongyuqi <729650...@qq.com>
*  Copyright (C) 2011-2012 Gabor Juhos <juh...@openwrt.org>
*  Copyright (C) 2013 alzhao <alz...@gmail.com>
*
*  This program is free software; you can redistribute it and/or modify it
*  under the terms of the GNU General Public License version 2 as published
*  by the Free Software Foundation.
*/

Signed-off-by: Mark Janssen <m...@sig-io.nl>
Signed-off-by: alzhao <alz...@gmail.com>


-------------------------- patch ------------------------------

diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network 
b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
index 62373e4..ff6d4d7 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
@@ -268,6 +268,10 @@ dir-505-a1)
        ucidef_set_interface_lan "eth1"
        ;;
 
+gl-inet)
+       ucidef_set_interfaces_lan_wan "eth1" "eth0"
+       ;;
+
 alfa-ap96 |\
 alfa-nx |\
 ap83 |\
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh 
b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 02c46f9..9099f45 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -214,6 +214,9 @@ ar71xx_board_detect() {
        *"Oolite V1.0")
                name="oolite"
                ;;
+       *"GL-CONNECT INET v1")
+               name="gl-inet"
+               ;;
        *"AirRouter")
                name="airrouter"
                ;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh 
b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 37ceea6..4760cd8 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -242,6 +242,7 @@ platform_check_image() {
        tl-wdr4300 | \
        tl-wdr4900-v2 | \
        tl-wr703n | \
+       gl-inet | \
        tl-wr710n | \
        tl-wr720n-v3 | \
        tl-wr741nd | \
diff --git a/target/linux/ar71xx/config-3.10 b/target/linux/ar71xx/config-3.10
index 4eb4b9f..f448f9d 100644
--- a/target/linux/ar71xx/config-3.10
+++ b/target/linux/ar71xx/config-3.10
@@ -88,6 +88,7 @@ CONFIG_ATH79_MACH_TL_WR1043ND=y
 CONFIG_ATH79_MACH_TL_WR1043ND_V2=y
 CONFIG_ATH79_MACH_TL_WR2543N=y
 CONFIG_ATH79_MACH_TL_WR703N=y
+CONFIG_ATH79_MACH_GL_INET=y
 CONFIG_ATH79_MACH_TL_WR720N_V3=y
 CONFIG_ATH79_MACH_TL_WR741ND=y
 CONFIG_ATH79_MACH_TL_WR741ND_V4=y
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-gl-inet.c 
b/target/linux/ar71xx/files/arch/mips/ath79/mach-gl-inet.c
new file mode 100644
index 0000000..0908918
--- /dev/null
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-gl-inet.c
@@ -0,0 +1,106 @@
+/*
+ *  GL-CONNECT iNet board support
+ *
+ *  Copyright (C) 2011 dongyuqi <729650...@qq.com>
+ *  Copyright (C) 2011-2012 Gabor Juhos <juh...@openwrt.org>
+ *  Copyright (C) 2013 alzhao <alz...@gmail.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License version 2 as published
+ *  by the Free Software Foundation.
+ */
+
+#include <linux/gpio.h>
+
+#include <asm/mach-ath79/ath79.h>
+
+#include "dev-eth.h"
+#include "dev-gpio-buttons.h"
+#include "dev-leds-gpio.h"
+#include "dev-m25p80.h"
+#include "dev-usb.h"
+#include "dev-wmac.h"
+#include "machtypes.h"
+
+#define GL_INET_GPIO_LED_WLAN  0
+#define GL_INET_GPIO_LED_LAN   13
+#define GL_INET_GPIO_BTN_RESET 11
+
+#define GL_INET_KEYS_POLL_INTERVAL     20      /* msecs */
+#define GL_INET_KEYS_DEBOUNCE_INTERVAL (3 * GL_INET_KEYS_POLL_INTERVAL)
+
+static const char *gl_inet_part_probes[] = {
+               "tp-link", //dont change, this will use tplink parser
+               NULL ,
+};
+
+static struct flash_platform_data gl_inet_flash_data = {
+               .part_probes = gl_inet_part_probes,
+};
+
+static struct gpio_led gl_inet_leds_gpio[] __initdata = {
+               {
+                               .name = "gl-connect:red:wireless",
+                               .gpio = GL_INET_GPIO_LED_WLAN,
+                               .active_low = 0,
+               },
+               {
+                               .name = "gl-connect:green:lan",
+                               .gpio = GL_INET_GPIO_LED_LAN,
+                               .active_low = 0,
+                               .default_state = 1,
+               },
+};
+
+static struct gpio_keys_button gl_inet_gpio_keys[] __initdata = {
+               {
+                               .desc = "reset",
+                               .type = EV_KEY,
+                               .code = KEY_RESTART,
+                               .debounce_interval = 
GL_INET_KEYS_DEBOUNCE_INTERVAL,
+                               .gpio = GL_INET_GPIO_BTN_RESET,
+                               .active_low = 0,
+               }
+};
+
+static void __init gl_inet_setup(void) {
+
+       /* get the mac address which is stored in the 1st 64k uboot MTD */
+       u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
+       /* get the art address, which is the last 64k. by usng 0x1fff1000, it 
doesn't matter it is 4M, 8M or 16M flash */
+       u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
+
+       //Todo: what is this
+       /* disable PHY_SWAP and PHY_ADDR_SWAP bits */
+       ath79_setup_ar933x_phy4_switch(false, false);
+
+       /* register flash. MTD will use tp-link parser to parser MTD*/
+       ath79_register_m25p80(&gl_inet_flash_data);
+
+       /* register gpio LED and Key */
+       ath79_register_leds_gpio(-1, ARRAY_SIZE(gl_inet_leds_gpio), 
gl_inet_leds_gpio);
+
+       ath79_register_gpio_keys_polled(-1, GL_INET_KEYS_POLL_INTERVAL, 
ARRAY_SIZE(gl_inet_gpio_keys),
+                       gl_inet_gpio_keys);
+
+       /* enable usb */
+       ath79_register_usb();
+
+       /* register eth0 as WAN, eth1 as LAN */
+       ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
+
+       ath79_register_mdio(0, 0x0);
+       ath79_register_eth(0);
+       ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0);
+       ath79_register_eth(1);
+
+       /* register wireless mac with cal data*/
+       ath79_register_wmac(ee, mac);
+
+}
+/* Important:
+ * $1: machtype, is used to identify profiles
+ * $2: machine id
+ * The init scripts will use the "Name" to detect which board, be sure to 
modify the scripts
+ */
+MIPS_MACHINE(ATH79_MACH_GL_INET, "GL-INET", "GL-CONNECT INET v1", 
gl_inet_setup);
diff --git a/target/linux/ar71xx/generic/profiles/gl-connect.mk 
b/target/linux/ar71xx/generic/profiles/gl-connect.mk
new file mode 100644
index 0000000..0a09ff2
--- /dev/null
+++ b/target/linux/ar71xx/generic/profiles/gl-connect.mk
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/GLINET
+       NAME:=GL INET
+       PACKAGES:=kmod-usb-core kmod-usb2
+endef
+
+define Profile/GLINET/Description
+       Package set optimized for the GL INET LITE 001.
+endef
+$(eval $(call Profile,GLINET))
diff --git a/target/linux/ar71xx/image/Makefile 
b/target/linux/ar71xx/image/Makefile
index 8234f88..9aa47ce 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -1122,6 +1122,7 @@ $(eval $(call 
SingleProfile,TPLINK-LZMA,64kraw,TLMR3040V2,tl-mr3040-v2,TL-MR3040
 $(eval $(call 
SingleProfile,TPLINK-LZMA,64kraw,TLMR3220V2,tl-mr3220-v2,TL-MR3220-v2,ttyATH0,115200,0x32200002,1,4Mlzma))
 $(eval $(call 
SingleProfile,TPLINK-LZMA,64kraw,TLMR3420V2,tl-mr3420-v2,TL-MR3420-v2,ttyS0,115200,0x34200002,1,4Mlzma))
 $(eval $(call 
SingleProfile,TPLINK-LZMA,64kraw,TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,4Mlzma))
+$(eval $(call 
SingleProfile,TPLINK-LZMA,64kraw,GLINET,gl-inet-v1,GL-INET,ttyATH0,115200,0x08000001,1,8Mlzma))
 $(eval $(call 
SingleProfile,TPLINK-LZMA,64kraw,TLWR710,tl-wr710n-v1,TL-WR710N,ttyATH0,115200,0x07100001,1,8Mlzma))
 $(eval $(call 
SingleProfile,TPLINK-LZMA,64kraw,TLWR720NV3,tl-wr720n-v3,TL-WR720N-v3,ttyATH0,115200,0x07200103,1,4Mlzma))
 $(eval $(call 
SingleProfile,TPLINK-LZMA,64kraw,TLWR740NV4,tl-wr740n-v4,TL-WR741ND-v4,ttyATH0,115200,0x07400004,1,4Mlzma))
diff --git a/target/linux/ar71xx/patches-3.10/911-MIPS-ath79-gl-machine.patch 
b/target/linux/ar71xx/patches-3.10/911-MIPS-ath79-gl-machine.patch
new file mode 100644
index 0000000..201104c
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.10/911-MIPS-ath79-gl-machine.patch
@@ -0,0 +1,40 @@
+--- a/arch/mips/ath79/Kconfig
++++ b/arch/mips/ath79/Kconfig
+@@ -586,6 +586,17 @@ config ATH79_MACH_TL_WR703N
+       select ATH79_DEV_USB
+       select ATH79_DEV_WMAC
+ 
++config ATH79_MACH_GL_INET
++        bool "GL-INET support"
++        select SOC_AR933X
++        select ATH79_DEV_ETH
++        select ATH79_DEV_GPIO_BUTTONS
++        select ATH79_DEV_LEDS_GPIO
++        select ATH79_DEV_M25P80
++        select ATH79_DEV_USB
++        select ATH79_DEV_WMAC
++
++
+ config ATH79_MACH_TL_WR720N_V3
+       bool "TP-LINK TL-WR720N v3 support"
+       select SOC_AR933X
+--- a/arch/mips/ath79/machtypes.h
++++ b/arch/mips/ath79/machtypes.h
+@@ -98,6 +98,7 @@ enum ath79_mach_type {
+       ATH79_MACH_TL_WR1043ND,         /* TP-LINK TL-WR1043ND */
+       ATH79_MACH_TL_WR2543N,          /* TP-LINK TL-WR2543N/ND */
+       ATH79_MACH_TL_WR703N,           /* TP-LINK TL-WR703N */
++      ATH79_MACH_GL_INET,             /* GL-CONNECT GL-INET */
+       ATH79_MACH_TL_WR710N,           /* TP-LINK TL-WR710N */
+       ATH79_MACH_TL_WR720N_V3,        /* TP-LINK TL-WR720N v3 */
+       ATH79_MACH_TL_WR741ND,          /* TP-LINK TL-WR741ND */
+--- a/arch/mips/ath79/Makefile
++++ b/arch/mips/ath79/Makefile
+@@ -94,6 +94,7 @@ obj-$(CONFIG_ATH79_MACH_TL_WR1041N_V2)       +
+ obj-$(CONFIG_ATH79_MACH_TL_WR1043ND)  += mach-tl-wr1043nd.o
+ obj-$(CONFIG_ATH79_MACH_TL_WR2543N)   += mach-tl-wr2543n.o
+ obj-$(CONFIG_ATH79_MACH_TL_WR703N)    += mach-tl-wr703n.o
++obj-$(CONFIG_ATH79_MACH_GL_INET)      += mach-gl-inet.o
+ obj-$(CONFIG_ATH79_MACH_TL_WR720N_V3) += mach-tl-wr720n-v3.o
+ obj-$(CONFIG_ATH79_MACH_UBNT)         += mach-ubnt.o
+ obj-$(CONFIG_ATH79_MACH_UBNT_XM)      += mach-ubnt-xm.o
diff --git a/tools/firmware-utils/src/mktplinkfw.c 
b/tools/firmware-utils/src/mktplinkfw.c
index f0b33a0..1bed464 100644
--- a/tools/firmware-utils/src/mktplinkfw.c
+++ b/tools/firmware-utils/src/mktplinkfw.c
@@ -66,6 +66,7 @@
 #define HWID_TL_WR1043ND_V2    0x10430002
 #define HWID_TL_WR1041N_V2     0x10410002
 #define HWID_TL_WR2543N_V1     0x25430001
+#define HWID_GL_INET_V1        0x08000001
 
 #define MD5SUM_LEN     16
 
@@ -393,6 +394,11 @@ static struct board_info boards[] = {
                .hw_rev         = 1,
                .layout_id      = "16Mlzma",
        }, {
+               .id             = "GL-INETv1",
+               .hw_id          = HWID_GL_INET_V1,
+               .hw_rev         = 1,
+               .layout_id      = "8Mlzma",
+       }, {
                /* terminating entry */
        }
 };
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to