diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 416322d..6249bb9 100755 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -139,6 +139,7 @@ get_status_led() { tl-wr941nd) status_led="tp-link:green:system" ;; + tl-mr10u | \ tl-wdr4300 | \ tl-wr703n) status_led="tp-link:blue:system" diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/network b/target/linux/ar71xx/base-files/etc/uci-defaults/network index 7fa219d..370908c 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/network @@ -153,6 +153,7 @@ cap4200ag |\ eap7660d |\ mr600 |\ 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 fe7c910..8283a4f 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -108,6 +108,9 @@ tplink_board_detect() { "254300"*) model="TP-Link TL-WR2543N/ND" ;; + "100101"*) + model="TP-Link TL-MR10U" + ;; "110101"*) model="TP-Link TL-MR11U" ;; @@ -381,6 +384,9 @@ ar71xx_board_detect() { *"TL-WR703N v1") name="tl-wr703n" ;; + *"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 49b1de9..486d36b 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -147,6 +147,7 @@ platform_check_image() { platform_check_image_openmesh "$magic_long" "$1" && return 0 return 1 ;; + tl-mr10u | \ tl-mr11u | \ tl-mr3020 | \ tl-mr3040 | \ diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c index 90342e0..6f370db 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c @@ -1,5 +1,5 @@ /* - * TP-LINK TL-WR703N board support + * TP-LINK TL-WR703N/TL-MR10U board support * * Copyright (C) 2011 dongyuqi <729650915@qq.com> * Copyright (C) 2011-2012 Gabor Juhos @@ -26,6 +26,8 @@ #define TL_WR703N_GPIO_USB_POWER 8 +#define TL_MR10U_GPIO_USB_POWER 18 + #define TL_WR703N_KEYS_POLL_INTERVAL 20 /* msecs */ #define TL_WR703N_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR703N_KEYS_POLL_INTERVAL) @@ -57,7 +59,7 @@ static struct gpio_keys_button tl_wr703n_gpio_keys[] __initdata = { } }; -static void __init tl_wr703n_setup(void) +static void __init common_setup(unsigned usb_power_gpio) { u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); @@ -72,7 +74,7 @@ static void __init tl_wr703n_setup(void) ARRAY_SIZE(tl_wr703n_gpio_keys), tl_wr703n_gpio_keys); - gpio_request_one(TL_WR703N_GPIO_USB_POWER, + gpio_request_one(usb_power_gpio, GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, "USB power"); ath79_register_usb(); @@ -85,5 +87,18 @@ static void __init tl_wr703n_setup(void) ath79_register_wmac(ee, mac); } +static void __init tl_mr10u_setup(void) +{ + common_setup(TL_MR10U_GPIO_USB_POWER); +} + +MIPS_MACHINE(ATH79_MACH_TL_MR10U, "TL-MR10U", "TP-LINK TL-MR10U", + tl_mr10u_setup); + +static void __init tl_wr703n_setup(void) +{ + common_setup(TL_WR703N_GPIO_USB_POWER); +} + MIPS_MACHINE(ATH79_MACH_TL_WR703N, "TL-WR703N", "TP-LINK TL-WR703N v1", tl_wr703n_setup); diff --git a/target/linux/ar71xx/generic/profiles/tp-link.mk b/target/linux/ar71xx/generic/profiles/tp-link.mk index 07d7059..53a5fc8 100644 --- a/target/linux/ar71xx/generic/profiles/tp-link.mk +++ b/target/linux/ar71xx/generic/profiles/tp-link.mk @@ -5,6 +5,17 @@ # See /LICENSE for more information. # +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 9ebe486..fe638c2 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -872,6 +872,7 @@ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR941NV3,tl-wr941nd-v3,TL-WR94 $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR941NV4,tl-wr941nd-v4,TL-WR741ND,ttyS0,115200,0x09410004,1,4M)) $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR1043,tl-wr1043nd-v1,TL-WR1043ND,ttyS0,115200,0x10430001,1,8M)) +$(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),TLMR11U,tl-mr11u-v1,TL-MR11U,ttyATH0,115200,0x00110101,1,4Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3020,tl-mr3020-v1,TL-MR3020,ttyATH0,115200,0x30200001,1,4Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3040,tl-mr3040-v1,TL-MR3040,ttyATH0,115200,0x30400001,1,4Mlzma)) diff --git a/target/linux/ar71xx/patches-3.3/660-MIPS-add-tl-mr10u-support.patch b/target/linux/ar71xx/patches-3.3/660-MIPS-add-tl-mr10u-support.patch new file mode 100644 index 0000000..73abc84 --- /dev/null +++ b/target/linux/ar71xx/patches-3.3/660-MIPS-add-tl-mr10u-support.patch @@ -0,0 +1,21 @@ +--- a/arch/mips/ath79/Kconfig ++++ b/arch/mips/ath79/Kconfig +@@ -491,7 +491,7 @@ config ATH79_MACH_TL_WDR4300 + select ATH79_DEV_WMAC + + config ATH79_MACH_TL_WR703N +- bool "TP-LINK TL-WR703N support" ++ bool "TP-LINK TL-WR703N/TL-MR10U support" + select SOC_AR933X + select ATH79_DEV_ETH + select ATH79_DEV_GPIO_BUTTONS +--- a/arch/mips/ath79/machtypes.h ++++ b/arch/mips/ath79/machtypes.h +@@ -71,6 +71,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 2be6335..27ed826 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 0x00101001 #define HWID_TL_MR3020_V1 0x30200001 #define HWID_TL_MR3220_V1 0x32200001 #define HWID_TL_MR3420_V1 0x34200001 @@ -179,6 +180,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,