Le 30/04/2014 23:48, Hartmut Knaack a écrit :
> [email protected] schrieb:
>> 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 <[email protected]> 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
>>
> On second thought, why don't you completely rewrite the patches? The biggest 
> bunch seems to be the mach-gl-inet.c, which I think may be the wrong attempt. 
> Since it is almost the same as the mach-tl-wr703n.c (only different 
> LED-definition), just add the pieces for your board.
See my attempt in a separate submission. For one reason, my MTA did not catch 
the parent message ID.

You can't easily, because there are 2 LEDs vs. a single one (and not with the 
same prefix), and no GPIO to control the USB power, so this would add many 
specific structures and tests or init functions to the mach-tl-wr703n.c file.

It has not been done for the existing TL-MR3020 or GS-Oolite routers for 
example, which are nevertheless TL-WR703N sister boards, probably not to bloat 
the installed kernel with unrelated dead code/data.

Otherwise, be prepared for consistency's sake to merge at least all related 
mach-tl-mr*.c, mach-tl-wa*.c, mach-tl-wr*.c, etc.

Time for a cleanup? I spotted some unordered boards into the target Bash 
scripts too.
>>
>> 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 <[email protected]>
>> *  Copyright (C) 2011-2012 Gabor Juhos <[email protected]>
>> *  Copyright (C) 2013 alzhao <[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.
>> */
>>
>> Signed-off-by: Mark Janssen <[email protected]>
>> Signed-off-by: alzhao <[email protected]>
>>
>>
>> -------------------------- 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"
>> +    ;;
>> +
> Wrong attempt. The section below does the same, so just merge your board name 
> in, at the right alphabetic position.
>>  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 <[email protected]>
>> + *  Copyright (C) 2011-2012 Gabor Juhos <[email protected]>
>> + *  Copyright (C) 2013 alzhao <[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 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
> Don't put a new patch in there, add your board infos to the existing 
> 610-MIPS-ath79-openwrt-machines.patch.
It is not possible here anymore too, since there have been some boards added 
separately lately, including 706-MIPS-ath79-oolite-v1-support.patch which would 
then be broken since the GL.iNet is right next to it in the alphabetically 
ordered lists :(

If this new machine is not in a file on its own like these, we will have to 
undo all these patches to integrate them back properly into the 
610-MIPS-ath79-openwrt-machines.patch too.

>> @@ -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
>> [email protected]
>> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
>>
> _______________________________________________
> openwrt-devel mailing list
> [email protected]
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
> 
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to