OpenWrt Forum Archive

Topic: The TP-Link's New WR703-MR10U

The content of this topic has been archived between 6 Feb 2018 and 5 May 2018. Unfortunately there are posts – most likely complete pages – missing.

Ok, thanks for testing - I will re-check and change back to 00100101 hardware id string and test on my unit, they promised I will have it tomorrow.

I am really sorry to hear you bricked your router.

Anyone with any clue how to debrick these?

tp1 and tp2 are tx and rx, right? what about GND?

What do I connect and what are the settings?

Thanks for any help!

FYI. To flash in serial:

tftpboot 0x81000000 openwrt.bin
erase 0x9f020000 +0x3c0000
cp.b 0x81000000 0x9f020000 0x3c0000
bootm 9f020000

(Last edited by Boompje123 on 17 Jul 2013, 21:04)

You used 703n's firmware from trunk on an old one?

Trunk

Now i just need to know how to power on the usb

Gpio 18? Anyone know how?


//edit:

this works:
echo 18 > /sys/class/gpio/export; echo "out" > /sys/class/gpio/gpio18/direction; echo 1 > /sys/class/gpio/gpio18/value

but i cant do anything with the usb port, dont think its recognizing the usb stick plugged in

Any tips? smile

(Last edited by Boompje123 on 17 Jul 2013, 21:01)

I think you need to use GPIO #8 (#18 is for TL-MR13U).

otlabs wrote:

I think you need to use GPIO #8 (#18 is for TL-MR13U).

Nope, other way around. The usb actually goes on when I issue the command (there's a light in the usb stick). Definitely works

I got my unit. It came from AliExpress seller without any retail packaging, but it is still very beautiful.

I put it to charge for about 1 hour with 5V 1A charger I had from ebook reader. While charging it has a red LED turned on.

I made all possible checks and re-checks based on all your kind comments and generated new set of images and binary packages based on current trunk (I use git so I have now idea how to identify corresponding changeset, maybe someone can help me).

I was so desperate to try out TL-MR10U so I stopped charging it before time.

I have connected TL-MR10U to notebook by Ethernet cable, but I was unable to connect to http://192.168.1.1/ . I was expecting it should be working.

So I connected to TL-MR10U on wi-fi, SSID was TP-LINK_9F8544 (last 6 digits of MAC, by the way some people hide their MAC address, why they would do that? Should I hide my MAC too?). On main screen I got:

3.14.4 Build 130318 Rel. 63648n
TL-MR10U v1 00000000

On wiki I read about how to locate the firmware upgrade page on TP-Link routers with Chinese firmware sometime ago (sorry, I forgot which router's page it was, will try to locate it again later). It was identical and for TL-MR10U: you should click on last item in the left column, in a new list you should select 3rd item from top. Probably you can also directly navigate to http://192.168.1.1/userRpm/SoftwareUpgradeRpm.htm .

On that page click on the button on the right of input field, select firmware image "openwrt-ar71xx-generic-tl-mr10u-v1-squashfs-factory.bin" and click the button on the bottom of the page. This will start the update process. You will get the screen with progress bar and at some moment it will reach 100% and the router will reboot. Your browser will also update the page and you will see that page in not available anymore (Error 404).

I went to drink some tea so I have no idea how much time you need to wait till router upgrades it's firmware.

When I returned I checked for new wi-fi networks available expecting to see OpenWRT, but have not found it. So I connected the Ethernet cable and telnet'ed to 192.168.1.1 and got OpenWRT's prompt where I issued "passwd" and successfully changed the root password.

I am so happy! :-)

Now I put the unit to fully charge its battery and will continue with experiments later.

I took several screenshots while upgrading the firmware, you can see them at Flickr (http://flic.kr/s/aHsjGVbgQY):
http://farm8.staticflickr.com/7452/9308709489_4948536485_t.jpghttp://farm8.staticflickr.com/7345/9308710427_d362ca6ba3_t.jpghttp://farm4.staticflickr.com/3758/9308710335_a5dcb98139_t.jpghttp://farm4.staticflickr.com/3832/9311493200_4fa0a6d493_t.jpghttp://farm6.staticflickr.com/5540/9311493134_3f073fbedd_t.jpghttp://farm3.staticflickr.com/2831/9308710445_dca06ab71f_t.jpg

All image files and binary packages I used today you can get at Mega:

20130717 (about 26.2MB)
https://mega.co.nz/#F!wIhB0IBT!N8SnennFuTwM3sHIJPfgbQ

The patch I used to generate all these files (it uses kernel 3.10 and latest trunk):

diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index 72390c0..56e87b1 100755
--- a/target/linux/ar71xx/base-files/etc/diag.sh
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
@@ -133,6 +133,7 @@ get_status_led() {
         status_led="tp-link:green:system"
         ;;
     archer-c7 | \
+    tl-mr10u | \
     tl-wdr4300 | \
     tl-wr703n | \
     tl-wr720n-v3)
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 86dceab..4f0d127 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
@@ -203,6 +203,7 @@ eap7660d |\
 mr600 |\
 mr600v2 |\
 rb-411 |\
+tl-mr10u |\
 tl-mr11u |\
 tl-mr3020 |\
 tl-mr3040 |\
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 19f19e7..c11091f 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -132,7 +132,7 @@ tplink_board_detect() {
     "254300"*)
         model="TP-Link TL-WR2543N/ND"
         ;;
-    "001001"*)
+    "100101"*)
         model="TP-Link TL-MR10U"
         ;;
     "001101"*)
@@ -450,6 +450,9 @@ ar71xx_board_detect() {
     *"TL-WR720N v3")
         name="tl-wr720n-v3"
         ;;
+    *"TL-MR10U")
+        name="tl-mr10u"
+        ;;
     *"TL-MR11U")
         name="tl-mr11u"
         ;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 9542295..c57e5d5 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -157,6 +157,7 @@ platform_check_image() {
         ;;
 
     archer-c7 | \
+    tl-mr10u | \
     tl-mr11u | \
     tl-mr3020 | \
     tl-mr3040 | \
diff --git a/target/linux/ar71xx/config-3.10 b/target/linux/ar71xx/config-3.10
index 31a1db1..e42434b 100644
--- a/target/linux/ar71xx/config-3.10
+++ b/target/linux/ar71xx/config-3.10
@@ -63,6 +63,7 @@ CONFIG_ATH79_MACH_RW2458N=y
 CONFIG_ATH79_MACH_TEW_632BRP=y
 CONFIG_ATH79_MACH_TEW_673GRU=y
 CONFIG_ATH79_MACH_TEW_712BR=y
+CONFIG_ATH79_MACH_TL_MR10U=y
 CONFIG_ATH79_MACH_TL_MR11U=y
 CONFIG_ATH79_MACH_TL_MR3020=y
 CONFIG_ATH79_MACH_TL_MR3X20=y
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr10u.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr10u.c
new file mode 100644
index 0000000..1b00720
--- /dev/null
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr10u.c
@@ -0,0 +1,89 @@
+/*
+ *  TP-LINK TL-MR10U board support
+ *
+ *  Copyright (C) 2011 dongyuqi <729650915@qq.com>
+ *  Copyright (C) 2013 andelf <andelf@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 TL_MR10U_GPIO_LED_SYSTEM       27
+#define TL_MR10U_GPIO_BTN_RESET        11
+
+#define TL_MR10U_GPIO_USB_POWER        8
+
+#define TL_MR10U_KEYS_POLL_INTERVAL    20      /* msecs */
+#define TL_MR10U_KEYS_DEBOUNCE_INTERVAL        (3 * TL_MR10U_KEYS_POLL_INTERVAL)
+
+static const char *tl_mr10u_part_probes[] = {
+    "tp-link",
+    NULL,
+};
+
+static struct flash_platform_data tl_mr10u_flash_data = {
+    .part_probes    = tl_mr10u_part_probes,
+};
+
+static struct gpio_led tl_mr10u_leds_gpio[] __initdata = {
+    {
+        .name        = "tp-link:blue:system",
+        .gpio        = TL_MR10U_GPIO_LED_SYSTEM,
+        .active_low    = 1,
+    },
+};
+
+static struct gpio_keys_button tl_mr10u_gpio_keys[] __initdata = {
+    {
+        .desc        = "reset",
+        .type        = EV_KEY,
+        .code        = KEY_RESTART,
+        .debounce_interval = TL_MR10U_KEYS_DEBOUNCE_INTERVAL,
+        .gpio        = TL_MR10U_GPIO_BTN_RESET,
+        .active_low    = 0,
+    }
+};
+
+static void __init tl_mr10u_setup(void)
+{
+    u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
+    u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
+
+    /* disable PHY_SWAP and PHY_ADDR_SWAP bits */
+    ath79_setup_ar933x_phy4_switch(false, false);
+
+    ath79_register_m25p80(&tl_mr10u_flash_data);
+    ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_mr10u_leds_gpio),
+                 tl_mr10u_leds_gpio);
+    ath79_register_gpio_keys_polled(-1, TL_MR10U_KEYS_POLL_INTERVAL,
+                    ARRAY_SIZE(tl_mr10u_gpio_keys),
+                    tl_mr10u_gpio_keys);
+
+    gpio_request_one(TL_MR10U_GPIO_USB_POWER,
+             GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED,
+             "USB power");
+    ath79_register_usb();
+
+    ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
+
+    ath79_register_mdio(0, 0x0);
+    ath79_register_eth(0);
+
+    ath79_register_wmac(ee, mac);
+}
+
+MIPS_MACHINE(ATH79_MACH_TL_MR10U, "TL-MR10U", "TP-LINK TL-MR10U",
+         tl_mr10u_setup);
diff --git a/target/linux/ar71xx/generic/profiles/tp-link.mk b/target/linux/ar71xx/generic/profiles/tp-link.mk
index 8c16df6..30e2b9c 100644
--- a/target/linux/ar71xx/generic/profiles/tp-link.mk
+++ b/target/linux/ar71xx/generic/profiles/tp-link.mk
@@ -16,6 +16,17 @@ endef
 $(eval $(call Profile,ARCHERC7))
 
 
+define Profile/TLMR10U
+    NAME:=TP-LINK TL-MR10U
+    PACKAGES:=kmod-usb-core kmod-usb2
+endef
+
+define Profile/TLMR10U/Description
+    Package set optimized for the TP-LINK TL-MR10U.
+endef
+$(eval $(call Profile,TLMR10U))
+
+
 define Profile/TLMR11U
     NAME:=TP-LINK TL-MR11U
     PACKAGES:=kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index dacac9c..10605cb 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -970,7 +970,7 @@ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR941NV4,tl-wr941nd-v4,TL-WR74
 $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR1043,tl-wr1043nd-v1,TL-WR1043ND,ttyS0,115200,0x10430001,1,8M))
 
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),ARCHERC7,archer-c7-v1,ARCHER-C7,ttyS0,115200,0x75000001,1,8Mlzma))
-$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR10UV1,tl-mr10u-v1,TL-MR3040,ttyATH0,115200,0x00100101,1,4Mlzma))
+$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR10U,tl-mr10u-v1,TL-MR10U,ttyATH0,115200,0x00100101,1,4Mlzma))
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR11UV1,tl-mr11u-v1,TL-MR11U,ttyATH0,115200,0x00110101,1,4Mlzma))
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR11UV2,tl-mr11u-v2,TL-MR11U,ttyATH0,115200,0x00110102,1,4Mlzma))
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3020,tl-mr3020-v1,TL-MR3020,ttyATH0,115200,0x30200001,1,4Mlzma))
diff --git a/target/linux/ar71xx/patches-3.10/920-add-tl-mr10u-support.patch b/target/linux/ar71xx/patches-3.10/920-add-tl-mr10u-support.patch
new file mode 100644
index 0000000..7110348
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.10/920-add-tl-mr10u-support.patch
@@ -0,0 +1,39 @@
+--- a/arch/mips/ath79/Kconfig
++++ b/arch/mips/ath79/Kconfig
+@@ -506,6 +506,16 @@ config ATH79_MACH_ARCHER_C7
+     select ATH79_DEV_USB
+     select ATH79_DEV_WMAC
+ 
++config ATH79_MACH_TL_MR10U
++    bool "TP-LINK TL-MR10U 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_MR11U
+     bool "TP-LINK TL-MR11U/TL-MR3040 support"
+     select SOC_AR933X
+--- a/arch/mips/ath79/Makefile
++++ b/arch/mips/ath79/Makefile
+@@ -78,6 +78,7 @@ obj-$(CONFIG_ATH79_MACH_RW2458N)    += mach
+ obj-$(CONFIG_ATH79_MACH_TEW_632BRP)    += mach-tew-632brp.o
+ obj-$(CONFIG_ATH79_MACH_TEW_673GRU)    += mach-tew-673gru.o
+ obj-$(CONFIG_ATH79_MACH_TEW_712BR)    += mach-tew-712br.o
++obj-$(CONFIG_ATH79_MACH_TL_MR10U)    += mach-tl-mr10u.o
+ obj-$(CONFIG_ATH79_MACH_TL_MR11U)    += mach-tl-mr11u.o
+ obj-$(CONFIG_ATH79_MACH_TL_MR3020)    += mach-tl-mr3020.o
+ obj-$(CONFIG_ATH79_MACH_TL_MR3X20)    += mach-tl-mr3x20.o
+--- a/arch/mips/ath79/machtypes.h
++++ b/arch/mips/ath79/machtypes.h
+@@ -81,6 +81,7 @@ enum ath79_mach_type {
+     ATH79_MACH_TEW_632BRP,        /* TRENDnet TEW-632BRP */
+     ATH79_MACH_TEW_673GRU,        /* TRENDnet TEW-673GRU */
+     ATH79_MACH_TEW_712BR,        /* TRENDnet TEW-712BR */
++    ATH79_MACH_TL_MR10U,        /* TP-LINK TL-MR10U */
+     ATH79_MACH_TL_MR11U,        /* TP-LINK TL-MR11U */
+     ATH79_MACH_TL_MR3020,        /* TP-LINK TL-MR3020 */
+     ATH79_MACH_TL_MR3040,        /* TP-LINK TL-MR3040 */
diff --git a/tools/firmware-utils/src/mktplinkfw.c b/tools/firmware-utils/src/mktplinkfw.c
index 74a55fd..19dc2b4 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_TL_MR10U_V1    0x00100101
 #define HWID_TL_MR3020_V1    0x30200001
 #define HWID_TL_MR3220_V1    0x32200001
 #define HWID_TL_MR3220_V2    0x32200002
@@ -193,6 +194,11 @@ static struct flash_layout layouts[] = {
 
 static struct board_info boards[] = {
     {
+        .id        = "TL-MR10Uv1",
+        .hw_id        = HWID_TL_MR10U_V1,
+        .hw_rev        = 1,
+        .layout_id    = "4Mlzma",
+    }, {
         .id        = "TL-MR3020v1",
         .hw_id        = HWID_TL_MR3020_V1,
         .hw_rev        = 1,

I would quite appreciate your feedback on this patch as I would like to send it to dev-list for inclusion into trunk.

(Last edited by otlabs on 18 Jul 2013, 01:32)

Perfect! Flashed it too, works great so far smile thank you for this otlabs!
(I prefer having a patched firmware over having the 703n firmware smile )

I'm only having the same problem again: nothing on usb

Again, I can power it on with:
echo 18 > /sys/class/gpio/export; echo "out" > /sys/class/gpio/gpio18/direction; echo 1 > /sys/class/gpio/gpio18/value

dmesg refers to it (new high speed interface)

But ifconfig doesn't show anything

otlabs, what are your findings with usb on your image so far? It would seem that you would have the same problem
(im not actually sure this is a problem.. maybe I just need to DO something with the usb port. Eg. set up usb storage. Problem is that 4mb is extremely limited and you really cant install anything when you install Luci.)

Thank you again!

//edit: http://patchwork.openwrt.org/patch/3683/



Also, to answer some of your questions/comments:
1) You can use the router perfectly fine with just 1 hour of charge (the light differs between green and orange according to how strong the charge is). You can also use it while charging smile works great too!
I even noticed that I can charge my iPhone with the usb port (after issuing the command above) with the usb port (using the internal battery of the router)
2) Wifi on openwrt didn't come up because you have to SCP in (change the file) /etc/config/wireless and remove:
# REMOVE THIS LINE TO ENABLE WIFI:
option disabled 0


I have also updated the wiki to include some info about debricking using serial, will work on it more later (or feel free to contribute)

(Last edited by Boompje123 on 18 Jul 2013, 09:50)

Thank you for making test and your comments! I will be able to continue with experimentation on this weekend.

I have not run any tests with USB but I definitely will as I need extroot for large flash storage.

Looks like we need to edit target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr10u.c and change

#define TL_MR10U_GPIO_USB_POWER        8

to

#define TL_MR10U_GPIO_USB_POWER        18
docbee wrote:

I receied my MR10U and flashed with the file in the wiki:
http://wiki.openwrt.org/toh/tp-link/tl- … ith.ar9331

I can reach the unit via telnet and ssh but there seems no
luci or http process running. What do I miss?

sorry, dump question. I just had to do...
opkg update
opkg install luci
/etc/init.d/uhttpd start

+ replace start with enable for Luci to start each reboot wink

As a workaround, I can confirm that
echo 18 > /sys/class/gpio/export; echo "out" > /sys/class/gpio/gpio18/direction; echo 1 > /sys/class/gpio/gpio18/value

makes USB work. I managed to get usb tethering (phone > router) working!

I have changed the file as I mentioned in msg #60 and generated new set of files from same trunk version.

USB is powered now.

Get new set of files from MEGA:

20130719 (Folder Link, 26.2 MB)
https://mega.co.nz/#F!cYp13KAb!YinVC09jVwBPQIALRafudw

Please, check the image and let me know if it works for you. Based on your feedback I plan to make an image with LuCI and USB Flash Storage support build-in (you can also suggest any other configuration you wish to see).

(Last edited by otlabs on 20 Jul 2013, 02:15)

So I am currently back on the 703n firmware

The problem with your image for me is that there are kernel dependency problems when you try to install the packages for usb tethering as mentioned here:
http://wiki.openwrt.org/doc/howto/usb.tethering

I truly appreciate your work on this! But Im going on a holiday in a few days and I bought this router for usb tethering with my phone.

If you could build an image with the usb power fixed and those usb tethering packages build in, I would be super happy. And i would of course test them and provide feedback smile otherwise, I prefer to stay on the 703n firmware until after my holiday smile

(Note that Luci cant be installed alongside the tethering packages, there's too little space)

Thank you again for your hard work!

(Last edited by Boompje123 on 20 Jul 2013, 07:51)

I just got a TL-MR10N (Not sure why N other than U) from eBay, a group are modding them with 16/64MB and from the comments people seem happy.
Thing is, when I got it it was showing the red or orange (on) led while charging and now nothing / green leds.
But beyond that, I don't have access to any SSID nor is there any traffic from the ethernet port...
Anybody has experience with such a situation?

Sounds like a brick to me?

Boompje123 wrote:

Sounds like a brick to me?

That's my current conclusion too sad

I'm guessing that having a usb0 network device or a /dev/ttyACM0 is not really useful?

So uhm, there isn't a reset + power combination that could allow me to tftp a firmware?

Yes keep pressing reset in and out during boot. If the led starts flashing really quickly youre in failsafe

@RR: Have you tried to configure your PC with IP set to 192.168.1.2, netmask 255.255.255.0, connect to TL-MR10U by Ethernet cable and telnet to 192.168.1.1 and later ssh 192.168.1.1?

I made some final changes to patch, now it applies against current trunk (r37513). So far latest firmware based on trunk runs fine so I submitted this patch to openwrt-devel list. Here comes the latest version of the patch:

diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index 72390c0..56e87b1 100755
--- a/target/linux/ar71xx/base-files/etc/diag.sh
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
@@ -133,6 +133,7 @@ get_status_led() {
         status_led="tp-link:green:system"
         ;;
     archer-c7 | \
+    tl-mr10u | \
     tl-wdr4300 | \
     tl-wr703n | \
     tl-wr720n-v3)
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 c4b6cd2..05b4566 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
@@ -209,6 +209,7 @@ eap7660d |\
 mr600 |\
 mr600v2 |\
 rb-411 |\
+tl-mr10u |\
 tl-mr11u |\
 tl-mr3020 |\
 tl-mr3040 |\
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 19f19e7..c11091f 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -132,7 +132,7 @@ tplink_board_detect() {
     "254300"*)
         model="TP-Link TL-WR2543N/ND"
         ;;
-    "001001"*)
+    "100101"*)
         model="TP-Link TL-MR10U"
         ;;
     "001101"*)
@@ -450,6 +450,9 @@ ar71xx_board_detect() {
     *"TL-WR720N v3")
         name="tl-wr720n-v3"
         ;;
+    *"TL-MR10U")
+        name="tl-mr10u"
+        ;;
     *"TL-MR11U")
         name="tl-mr11u"
         ;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 9542295..c57e5d5 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -157,6 +157,7 @@ platform_check_image() {
         ;;
 
     archer-c7 | \
+    tl-mr10u | \
     tl-mr11u | \
     tl-mr3020 | \
     tl-mr3040 | \
diff --git a/target/linux/ar71xx/config-3.10 b/target/linux/ar71xx/config-3.10
index 8695bad..641afae 100644
--- a/target/linux/ar71xx/config-3.10
+++ b/target/linux/ar71xx/config-3.10
@@ -63,6 +63,7 @@ CONFIG_ATH79_MACH_RW2458N=y
 CONFIG_ATH79_MACH_TEW_632BRP=y
 CONFIG_ATH79_MACH_TEW_673GRU=y
 CONFIG_ATH79_MACH_TEW_712BR=y
+CONFIG_ATH79_MACH_TL_MR10U=y
 CONFIG_ATH79_MACH_TL_MR11U=y
 CONFIG_ATH79_MACH_TL_MR3020=y
 CONFIG_ATH79_MACH_TL_MR3X20=y
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr10u.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr10u.c
new file mode 100644
index 0000000..d4b2006
--- /dev/null
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr10u.c
@@ -0,0 +1,89 @@
+/*
+ *  TP-LINK TL-MR10U board support
+ *
+ *  Copyright (C) 2011 dongyuqi <729650915@qq.com>
+ *  Copyright (C) 2013 andelf <andelf@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 TL_MR10U_GPIO_LED_SYSTEM    27
+#define TL_MR10U_GPIO_BTN_RESET        11
+
+#define TL_MR10U_GPIO_USB_POWER        18
+
+#define TL_MR10U_KEYS_POLL_INTERVAL    20 /* msecs */
+#define TL_MR10U_KEYS_DEBOUNCE_INTERVAL        (3 * TL_MR10U_KEYS_POLL_INTERVAL)
+
+static const char *tl_mr10u_part_probes[] = {
+    "tp-link",
+    NULL,
+};
+
+static struct flash_platform_data tl_mr10u_flash_data = {
+    .part_probes    = tl_mr10u_part_probes,
+};
+
+static struct gpio_led tl_mr10u_leds_gpio[] __initdata = {
+    {
+        .name        = "tp-link:blue:system",
+        .gpio        = TL_MR10U_GPIO_LED_SYSTEM,
+        .active_low    = 1,
+    },
+};
+
+static struct gpio_keys_button tl_mr10u_gpio_keys[] __initdata = {
+    {
+        .desc        = "reset",
+        .type        = EV_KEY,
+        .code        = KEY_RESTART,
+        .debounce_interval = TL_MR10U_KEYS_DEBOUNCE_INTERVAL,
+        .gpio        = TL_MR10U_GPIO_BTN_RESET,
+        .active_low    = 0,
+    }
+};
+
+static void __init tl_mr10u_setup(void)
+{
+    u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
+    u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
+
+    /* disable PHY_SWAP and PHY_ADDR_SWAP bits */
+    ath79_setup_ar933x_phy4_switch(false, false);
+
+    ath79_register_m25p80(&tl_mr10u_flash_data);
+    ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_mr10u_leds_gpio),
+                 tl_mr10u_leds_gpio);
+    ath79_register_gpio_keys_polled(-1, TL_MR10U_KEYS_POLL_INTERVAL,
+                    ARRAY_SIZE(tl_mr10u_gpio_keys),
+                    tl_mr10u_gpio_keys);
+
+    gpio_request_one(TL_MR10U_GPIO_USB_POWER,
+             GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED,
+             "USB power");
+    ath79_register_usb();
+
+    ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
+
+    ath79_register_mdio(0, 0x0);
+    ath79_register_eth(0);
+
+    ath79_register_wmac(ee, mac);
+}
+
+MIPS_MACHINE(ATH79_MACH_TL_MR10U, "TL-MR10U", "TP-LINK TL-MR10U",
+         tl_mr10u_setup);
diff --git a/target/linux/ar71xx/generic/profiles/tp-link.mk b/target/linux/ar71xx/generic/profiles/tp-link.mk
index 8c16df6..30e2b9c 100644
--- a/target/linux/ar71xx/generic/profiles/tp-link.mk
+++ b/target/linux/ar71xx/generic/profiles/tp-link.mk
@@ -16,6 +16,17 @@ endef
 $(eval $(call Profile,ARCHERC7))
 
 
+define Profile/TLMR10U
+    NAME:=TP-LINK TL-MR10U
+    PACKAGES:=kmod-usb-core kmod-usb2
+endef
+
+define Profile/TLMR10U/Description
+    Package set optimized for the TP-LINK TL-MR10U.
+endef
+$(eval $(call Profile,TLMR10U))
+
+
 define Profile/TLMR11U
     NAME:=TP-LINK TL-MR11U
     PACKAGES:=kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index 05412ae..ceb0d0a 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -970,7 +970,7 @@ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR941NV4,tl-wr941nd-v4,TL-WR74
 $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR1043,tl-wr1043nd-v1,TL-WR1043ND,ttyS0,115200,0x10430001,1,8M))
 
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),ARCHERC7,archer-c7-v1,ARCHER-C7,ttyS0,115200,0x75000001,1,8Mlzma))
-$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR10UV1,tl-mr10u-v1,TL-MR3040,ttyATH0,115200,0x00100101,1,4Mlzma))
+$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR10U,tl-mr10u-v1,TL-MR10U,ttyATH0,115200,0x00100101,1,4Mlzma))
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR11UV1,tl-mr11u-v1,TL-MR11U,ttyATH0,115200,0x00110101,1,4Mlzma))
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR11UV2,tl-mr11u-v2,TL-MR11U,ttyATH0,115200,0x00110102,1,4Mlzma))
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3020,tl-mr3020-v1,TL-MR3020,ttyATH0,115200,0x30200001,1,4Mlzma))
diff --git a/target/linux/ar71xx/patches-3.10/920-add-tl-mr10u-support.patch b/target/linux/ar71xx/patches-3.10/920-add-tl-mr10u-support.patch
new file mode 100644
index 0000000..6925a6f
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.10/920-add-tl-mr10u-support.patch
@@ -0,0 +1,39 @@
+--- a/arch/mips/ath79/Kconfig
++++ b/arch/mips/ath79/Kconfig
+@@ -506,6 +506,16 @@ config ATH79_MACH_ARCHER_C7
+     select ATH79_DEV_USB
+     select ATH79_DEV_WMAC
+ 
++config ATH79_MACH_TL_MR10U
++    bool "TP-LINK TL-MR10U 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_MR11U
+     bool "TP-LINK TL-MR11U/TL-MR3040 support"
+     select SOC_AR933X
+--- a/arch/mips/ath79/Makefile
++++ b/arch/mips/ath79/Makefile
+@@ -78,6 +78,7 @@ obj-$(CONFIG_ATH79_MACH_RW2458N)    += mach
+ obj-$(CONFIG_ATH79_MACH_TEW_632BRP)    += mach-tew-632brp.o
+ obj-$(CONFIG_ATH79_MACH_TEW_673GRU)    += mach-tew-673gru.o
+ obj-$(CONFIG_ATH79_MACH_TEW_712BR)    += mach-tew-712br.o
++obj-$(CONFIG_ATH79_MACH_TL_MR10U)    += mach-tl-mr10u.o
+ obj-$(CONFIG_ATH79_MACH_TL_MR11U)    += mach-tl-mr11u.o
+ obj-$(CONFIG_ATH79_MACH_TL_MR3020)    += mach-tl-mr3020.o
+ obj-$(CONFIG_ATH79_MACH_TL_MR3X20)    += mach-tl-mr3x20.o
+--- a/arch/mips/ath79/machtypes.h
++++ b/arch/mips/ath79/machtypes.h
+@@ -81,6 +81,7 @@ enum ath79_mach_type {
+     ATH79_MACH_TEW_632BRP,        /* TRENDnet TEW-632BRP */
+     ATH79_MACH_TEW_673GRU,        /* TRENDnet TEW-673GRU */
+     ATH79_MACH_TEW_712BR,        /* TRENDnet TEW-712BR */
++    ATH79_MACH_TL_MR10U,        /* TP-LINK TL-MR10U */
+     ATH79_MACH_TL_MR11U,        /* TP-LINK TL-MR11U */
+     ATH79_MACH_TL_MR3020,        /* TP-LINK TL-MR3020 */
+     ATH79_MACH_TL_MR3040,        /* TP-LINK TL-MR3040 */
diff --git a/tools/firmware-utils/src/mktplinkfw.c b/tools/firmware-utils/src/mktplinkfw.c
index 74a55fd..19dc2b4 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_TL_MR10U_V1    0x00100101
 #define HWID_TL_MR3020_V1    0x30200001
 #define HWID_TL_MR3220_V1    0x32200001
 #define HWID_TL_MR3220_V2    0x32200002
@@ -193,6 +194,11 @@ static struct flash_layout layouts[] = {
 
 static struct board_info boards[] = {
     {
+        .id        = "TL-MR10Uv1",
+        .hw_id        = HWID_TL_MR10U_V1,
+        .hw_rev        = 1,
+        .layout_id    = "4Mlzma",
+    }, {
         .id        = "TL-MR3020v1",
         .hw_id        = HWID_TL_MR3020_V1,
         .hw_rev        = 1,

I am unable to share image files I have generated as MEGA is not working any more with my browser, hope they will fix this issue and I will be able to upload all files. These files are good for "long time use" as they use latest kerner 3.10.2 so you can install all kernel modules and other packages from snapshot repository, e.g. right from opkg managed or LuCI.

(Last edited by otlabs on 23 Jul 2013, 00:22)

otlabs wrote:

@RR: Have you tried to configure your PC with IP set to 192.168.1.2, netmask 255.255.255.0, connect to TL-MR10U by Ethernet cable and telnet to 192.168.1.1 and later ssh 192.168.1.1?

I tried that setup, sniffing the network, ping-ing, nmap-ing, ... never did the ethernet's card RX inscreased above 0.
So I think I really wasn't getting any traffic at all from the device. sad

A replacement is on the way though, support seems really good up till now, I'll keep you posted, I think I just got unlucky!

@RR: ok, I see - you have tried a lot of options. Just one last note  - MR10N is a modded device, you can not flash it with firmware from ordinary OpenWrt website, of course, if you plan to do that.

Sorry, posts 76 to 75 are missing from our archive.