Michel Stempin schrieb:
> The GL-Connect GL.iNet v1 router is basically a TP-Link TL-WR703N with
> more DRAM/Flash, 2x Ethernet ports and console/GPIO header in the same
> small form-factor:
> <http://www.gl-inet.com/w/?lang=en>
>
> Moreover, the manufacturer is promoting the OpenWrt usage to replace
> the original firmware and proposing patches against both AA and trunk:
> <http://www.gl-inet.com/w/?p=398&lang=en>
>
> This is a clean up of the original manufacturer GPLv2 patch by alzhao,
> proposed to the list by Mark Janssen.
>
> Signed-off-by: Michel Stempin <[email protected]>
> Signed-off-by: Mark Janssen <[email protected]>
> Signed-off-by: alzhao <[email protected]>
> ---
> .../ar71xx/base-files/etc/uci-defaults/02_network | 1 +
> target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 +
> .../ar71xx/base-files/lib/upgrade/platform.sh | 1 +
> target/linux/ar71xx/config-3.10 | 1 +
> .../ar71xx/files/arch/mips/ath79/mach-gl-inet.c | 109
> ++++++++++++++++++++
> target/linux/ar71xx/generic/profiles/gl-connect.mk | 17 +++
> target/linux/ar71xx/image/Makefile | 2 +
> .../710-MIPS-ath79-add-gl-inet-v1-support.patch | 39 +++++++
> tools/firmware-utils/src/mktplinkfw.c | 6 ++
> 9 files changed, 179 insertions(+)
Looks already way cleaner than the original. But as I pointed out on my second
review on the other thread, the 710-MIPS*.patch should not be created, but
instead the already existing 610-MIPS*.patch extended by the new board infos.
Also, it might be a better idea to extend mach-tl-wr703n.c with the different
LED configuration rather than adding an almost complete duplicate file.
> create mode 100644 target/linux/ar71xx/files/arch/mips/ath79/mach-gl-inet.c
> create mode 100644 target/linux/ar71xx/generic/profiles/gl-connect.mk
> create mode 100644
> target/linux/ar71xx/patches-3.10/710-MIPS-ath79-add-gl-inet-v1-support.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..cf2b494 100755
> --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
> +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
> @@ -271,6 +271,7 @@ dir-505-a1)
> alfa-ap96 |\
> alfa-nx |\
> ap83 |\
> +gl-inet |\
> jwap003 |\
> pb42 |\
> pb44 |\
> diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh
> b/target/linux/ar71xx/base-files/lib/ar71xx.sh
> index 02c46f9..fd5d8b9 100755
> --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
> +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
> @@ -298,6 +298,9 @@ ar71xx_board_detect() {
> *EAP7660D)
> name="eap7660d"
> ;;
> + *"GL-CONNECT INET v1")
> + name="gl-inet"
> + ;;
> *JA76PF)
> name="ja76pf"
> ;;
> diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
> b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
> index 37ceea6..b52df00 100755
> --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
> +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
> @@ -220,6 +220,7 @@ platform_check_image() {
> ;;
>
> archer-c7 | \
> + gl-inet | \
> oolite | \
> tl-mr10u | \
> tl-mr11u | \
> diff --git a/target/linux/ar71xx/config-3.10 b/target/linux/ar71xx/config-3.10
> index 4eb4b9f..26347a7 100644
> --- a/target/linux/ar71xx/config-3.10
> +++ b/target/linux/ar71xx/config-3.10
> @@ -48,6 +48,7 @@ CONFIG_ATH79_MACH_DIR_825_C1=y
> CONFIG_ATH79_MACH_DRAGINO2=y
> CONFIG_ATH79_MACH_EAP7660D=y
> CONFIG_ATH79_MACH_EW_DORIN=y
> +CONFIG_ATH79_MACH_GL_INET=y
> CONFIG_ATH79_MACH_GS_OOLITE=y
> CONFIG_ATH79_MACH_HORNET_UB=y
> CONFIG_ATH79_MACH_JA76PF=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..10f30b2
> --- /dev/null
> +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-gl-inet.c
> @@ -0,0 +1,109 @@
> +/*
> + * GL-CONNECT iNet board support
> + *
> + * Copyright (C) 2011 dongyuqi <[email protected]>
> + * Copyright (C) 2011-2012 Gabor Juhos <[email protected]>
> + * Copyright (C) 2013 alzhao <[email protected]>
> + * Copyright (C) 2014 Michel Stempin <[email protected]>
> + *
> + * 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 using
> + 0x1fff1000, it doesn't matter it is 4M, 8M or 16M flash */
> + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
> +
> + /* 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 LEDs and keys */
> + 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..79e5b21
> --- /dev/null
> +++ b/target/linux/ar71xx/generic/profiles/gl-connect.mk
> @@ -0,0 +1,17 @@
> +#
> +# 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-Connect GL.iNet v1.
> +endef
> +
> +$(eval $(call Profile,GLINET))
> diff --git a/target/linux/ar71xx/image/Makefile
> b/target/linux/ar71xx/image/Makefile
> index 8234f88..fed256e 100644
> --- a/target/linux/ar71xx/image/Makefile
> +++ b/target/linux/ar71xx/image/Makefile
> @@ -1146,6 +1146,8 @@ $(eval $(call
> SingleProfile,TPLINK-LZMA,64kraw,TLWDR4310V1,tl-wdr4310-v1,TL-WDR4
> $(eval $(call
> SingleProfile,TPLINK-LZMA,64kraw,TLWDR4900V2,tl-wdr4900-v2,TL-WDR4900-v2,ttyS0,115200,0x49000002,1,8Mlzma))
> $(eval $(call
> SingleProfile,TPLINK-LZMA,64kraw,MW4530RV1,mw4530r-v1,TL-WDR4300,ttyS0,115200,0x45300001,1,8Mlzma))
>
> +$(eval $(call
> SingleProfile,TPLINK-LZMA,64kraw,GLINET,gl-inet-v1,GL-INET,ttyATH0,115200,0x08000001,1,8Mlzma))
> +
> $(eval $(call
> SingleProfile,TPLINK-LZMA,64kraw,OOLITE,oolite,GS-OOLITE,ttyATH0,115200,0x3C000101,1,16Mlzma))
>
> $(eval $(call
> SingleProfile,UAPPRO,64k,UAPPRO,ubnt-uap-pro,UAP-PRO,ttyS0,115200,BZ,BZ,ar934x))
> diff --git
> a/target/linux/ar71xx/patches-3.10/710-MIPS-ath79-add-gl-inet-v1-support.patch
>
> b/target/linux/ar71xx/patches-3.10/710-MIPS-ath79-add-gl-inet-v1-support.patch
> new file mode 100644
> index 0000000..1cf0ff5
> --- /dev/null
> +++
> b/target/linux/ar71xx/patches-3.10/710-MIPS-ath79-add-gl-inet-v1-support.patch
> @@ -0,0 +1,39 @@
> +--- a/arch/mips/ath79/Kconfig
> ++++ b/arch/mips/ath79/Kconfig
> +@@ -337,6 +337,16 @@
> + Say 'Y' here if you want your kernel to support the
> + Dorin Platform from www.80211.de .
> +
> ++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_GS_OOLITE
> + bool "GS Oolite V1 support"
> + select SOC_AR933X
> +--- a/arch/mips/ath79/machtypes.h
> ++++ b/arch/mips/ath79/machtypes.h
> +@@ -49,6 +49,7 @@
> + ATH79_MACH_EW_DORIN, /* embedded wireless Dorin Platform */
> + ATH79_MACH_EW_DORIN_ROUTER, /* embedded wireless Dorin Router
> Platform */
> + ATH79_MACH_EAP7660D, /* Senao EAP7660D */
> ++ ATH79_MACH_GL_INET, /* GL-CONNECT GL-INET */
> + ATH79_MACH_GS_OOLITE, /* GS OOLITE V1.0 */
> + ATH79_MACH_JA76PF, /* jjPlus JA76PF */
> + ATH79_MACH_JA76PF2, /* jjPlus JA76PF2 */
> +--- a/arch/mips/ath79/Makefile
> ++++ b/arch/mips/ath79/Makefile
> +@@ -62,6 +62,7 @@
> + obj-$(CONFIG_ATH79_MACH_DRAGINO2) += mach-dragino2.o
> + obj-$(CONFIG_ATH79_MACH_EW_DORIN) += mach-ew-dorin.o
> + obj-$(CONFIG_ATH79_MACH_EAP7660D) += mach-eap7660d.o
> ++obj-$(CONFIG_ATH79_MACH_GL_INET) += mach-gl-inet.o
> + obj-$(CONFIG_ATH79_MACH_GS_OOLITE) += mach-gs-oolite.o
> + obj-$(CONFIG_ATH79_MACH_JA76PF) += mach-ja76pf.o
> + obj-$(CONFIG_ATH79_MACH_JWAP003) += mach-jwap003.o
> diff --git a/tools/firmware-utils/src/mktplinkfw.c
> b/tools/firmware-utils/src/mktplinkfw.c
> index f0b33a0..a6aab59 100644
> --- a/tools/firmware-utils/src/mktplinkfw.c
> +++ b/tools/firmware-utils/src/mktplinkfw.c
> @@ -30,6 +30,7 @@
> #define ALIGN(x,a) ({ typeof(a) __a = (a); (((x) + __a - 1) & ~(__a - 1)); })
>
> #define HEADER_VERSION_V1 0x01000000
> +#define HWID_GL_INET_V1 0x08000001
> #define HWID_GS_OOLITE_V1 0x3C000101
> #define HWID_TL_MR10U_V1 0x00100101
> #define HWID_TL_MR13U_V1 0x00130101
> @@ -388,6 +389,11 @@ static struct board_info boards[] = {
> .hw_rev = 1,
> .layout_id = "4Mlzma",
> }, {
> + .id = "GL-INETv1",
> + .hw_id = HWID_GL_INET_V1,
> + .hw_rev = 1,
> + .layout_id = "8Mlzma",
> + }, {
> .id = "GS-OOLITEv1",
> .hw_id = HWID_GS_OOLITE_V1,
> .hw_rev = 1,
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel