Message ID | e87ef2eb25c510165aaa0f7be290d78d2d0c4b99.1438821655.git.mschiffer@universe-factory.net |
---|---|
State | Changes Requested |
Headers | show |
In fact there is a model called TL-WR941N v6 which sells in China.It uses AR9344 SoC and AR9381 for 450M wireless.It's just a mistake made by the patch submitter to call it wr941nd-v6.I think you should rename the old profile and create a new one:D 2015-08-06 8:40 GMT+08:00 Matthias Schiffer <mschiffer@universe-factory.net>: > The images currently generated for the TL-WR941ND v6 try to treat it like > a TL-WDR3500, which doesn't make any sense and causes the kernel to panic > in early boot. I don't think this has ever worked (the TL-WR941ND v6 has > a different SoC, uses another MDIO bus, has only one WMAC and no USB...). > > Fix this by adding proper support for the device. > > Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> > --- > target/linux/ar71xx/base-files/etc/diag.sh | 3 +- > .../ar71xx/base-files/etc/uci-defaults/01_leds | 9 ++ > .../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-4.1 | 1 + > .../files/arch/mips/ath79/mach-tl-wr941nd-v6.c | 151 +++++++++++++++++++++ > target/linux/ar71xx/image/Makefile | 2 +- > .../700-MIPS-ath79-openwrt-machines.patch | 23 +++- > 9 files changed, 186 insertions(+), 8 deletions(-) > create mode 100644 target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c > > diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh > index 561c5da..46b83fc 100644 > --- a/target/linux/ar71xx/base-files/etc/diag.sh > +++ b/target/linux/ar71xx/base-files/etc/diag.sh > @@ -277,7 +277,8 @@ get_status_led() { > tl-wdr4300 | \ > tl-wr703n | \ > tl-wr710n | \ > - tl-wr720n-v3) > + tl-wr720n-v3 | \ > + tl-wr941nd-v6) > status_led="tp-link:blue:system" > ;; > tl-wr841n-v9) > diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds > index 2aced37..3344d97 100644 > --- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds > +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds > @@ -474,6 +474,15 @@ tl-wr941nd-v5) > ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" > ;; > > +tl-wr941nd-v6) > + ucidef_set_led_netdev "wan" "WAN" "tp-link:blue:wan" "eth0" > + ucidef_set_led_switch "lan1" "LAN1" "tp-link:blue:lan1" "switch0" "0x10" > + ucidef_set_led_switch "lan2" "LAN2" "tp-link:blue:lan2" "switch0" "0x08" > + ucidef_set_led_switch "lan3" "LAN3" "tp-link:blue:lan3" "switch0" "0x04" > + ucidef_set_led_switch "lan4" "LAN4" "tp-link:blue:lan4" "switch0" "0x02" > + ucidef_set_led_wlan "wlan" "WLAN" "tp-link:blue:wlan" "phy0tpt" > + ;; > + > tl-wa830re-v2) > ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0" > ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" > 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 2893e62..a6507db 100755 > --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network > +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network > @@ -227,6 +227,7 @@ tl-mr3420-v2 |\ > tl-wr841n-v8 |\ > tl-wr842n-v2 |\ > tl-wr941nd-v5 |\ > +tl-wr941nd-v6 |\ > wnr2000-v3 |\ > wnr2000-v4 |\ > wnr2200 |\ > diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh > index 256bd10..5d27538 100755 > --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh > +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh > @@ -793,6 +793,9 @@ ar71xx_board_detect() { > *"TL-WR941N/ND v5") > name="tl-wr941nd-v5" > ;; > + *"TL-WR941N/ND v6") > + name="tl-wr941nd-v6" > + ;; > *"TL-WR703N v1") > name="tl-wr703n" > ;; > diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > index 76d8c5b..55ff568 100755 > --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > @@ -353,6 +353,7 @@ platform_check_image() { > tl-wr842n-v2 | \ > tl-wr941nd | \ > tl-wr941nd-v5 | \ > + tl-wr941nd-v6 | \ > tl-wr1041n-v2 | \ > tl-wr1043nd | \ > tl-wr1043nd-v2 | \ > diff --git a/target/linux/ar71xx/config-4.1 b/target/linux/ar71xx/config-4.1 > index 1e31a01..ecaf454 100644 > --- a/target/linux/ar71xx/config-4.1 > +++ b/target/linux/ar71xx/config-4.1 > @@ -134,6 +134,7 @@ CONFIG_ATH79_MACH_TL_WR841N_V1=y > CONFIG_ATH79_MACH_TL_WR841N_V8=y > CONFIG_ATH79_MACH_TL_WR841N_V9=y > CONFIG_ATH79_MACH_TL_WR941ND=y > +CONFIG_ATH79_MACH_TL_WR941ND_V6=y > CONFIG_ATH79_MACH_TUBE2H=y > CONFIG_ATH79_MACH_UBNT=y > CONFIG_ATH79_MACH_UBNT_XM=y > diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c > new file mode 100644 > index 0000000..c5fc9fc > --- /dev/null > +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c > @@ -0,0 +1,151 @@ > +/* > + * TP-LINK TL-WR941N/ND v6 board support > + * > + * Copyright (C) 2015 Matthias Schiffer <mschiffer@universe-factory.net> > + * > + * 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 <linux/platform_device.h> > + > +#include <asm/mach-ath79/ath79.h> > +#include <asm/mach-ath79/ar71xx_regs.h> > + > +#include "common.h" > +#include "dev-eth.h" > +#include "dev-gpio-buttons.h" > +#include "dev-leds-gpio.h" > +#include "dev-m25p80.h" > +#include "dev-wmac.h" > +#include "machtypes.h" > + > + > +#define TL_WR941ND_V6_GPIO_LED_QSS 3 > +#define TL_WR941ND_V6_GPIO_LED_WAN 14 > +#define TL_WR941ND_V6_GPIO_LED_WAN_RED 15 > +#define TL_WR941ND_V6_GPIO_LED_LAN1 7 > +#define TL_WR941ND_V6_GPIO_LED_LAN2 6 > +#define TL_WR941ND_V6_GPIO_LED_LAN3 5 > +#define TL_WR941ND_V6_GPIO_LED_LAN4 4 > +#define TL_WR941ND_V6_GPIO_LED_WLAN 8 > +#define TL_WR941ND_V6_GPIO_LED_SYSTEM 18 > + > +#define TL_WR941ND_V6_GPIO_BTN_RESET 1 > +#define TL_WR941ND_V6_GPIO_BTN_RFKILL 2 > + > +#define TL_WR941ND_V6_KEYS_POLL_INTERVAL 20 > +#define TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR941ND_V6_KEYS_POLL_INTERVAL) > + > + > +static struct gpio_led tl_wr941nd_v6_leds_gpio[] __initdata = { > + { > + .name = "tp-link:blue:qss", > + .gpio = TL_WR941ND_V6_GPIO_LED_QSS, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:wan", > + .gpio = TL_WR941ND_V6_GPIO_LED_WAN, > + .active_low = 1, > + }, > + { > + .name = "tp-link:red:wan", > + .gpio = TL_WR941ND_V6_GPIO_LED_WAN_RED, > + .active_low = 0, > + }, > + { > + .name = "tp-link:blue:lan1", > + .gpio = TL_WR941ND_V6_GPIO_LED_LAN1, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:lan2", > + .gpio = TL_WR941ND_V6_GPIO_LED_LAN2, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:lan3", > + .gpio = TL_WR941ND_V6_GPIO_LED_LAN3, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:lan4", > + .gpio = TL_WR941ND_V6_GPIO_LED_LAN4, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:wlan", > + .gpio = TL_WR941ND_V6_GPIO_LED_WLAN, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:system", > + .gpio = TL_WR941ND_V6_GPIO_LED_SYSTEM, > + .active_low = 1, > + }, > +}; > + > +static struct gpio_keys_button tl_wr941nd_v6_gpio_keys[] __initdata = { > + { > + .desc = "Reset button", > + .type = EV_KEY, > + .code = KEY_RESTART, > + .debounce_interval = TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL, > + .gpio = TL_WR941ND_V6_GPIO_BTN_RESET, > + .active_low = 1, > + }, { > + .desc = "RFKILL button", > + .type = EV_KEY, > + .code = KEY_RFKILL, > + .debounce_interval = TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL, > + .gpio = TL_WR941ND_V6_GPIO_BTN_RFKILL, > + .active_low = 1, > + } > +}; > + > + > +static const char *tl_wr941n_v6_part_probes[] = { > + "tp-link", > + NULL, > +}; > + > +static struct flash_platform_data tl_wr941n_v6_flash_data = { > + .part_probes = tl_wr941n_v6_part_probes, > +}; > + > + > +static void __init tl_wr941nd_v6_setup(void) > +{ > + u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); > + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); > + > + ath79_register_m25p80(&tl_wr941n_v6_flash_data); > + > + ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr941nd_v6_leds_gpio), > + tl_wr941nd_v6_leds_gpio); > + > + ath79_register_gpio_keys_polled(-1, TL_WR941ND_V6_KEYS_POLL_INTERVAL, > + ARRAY_SIZE(tl_wr941nd_v6_gpio_keys), > + tl_wr941nd_v6_gpio_keys); > + > + ath79_register_mdio(0, 0x0); > + > + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1); > + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0); > + > + ath79_switch_data.phy4_mii_en = 1; > + ath79_switch_data.phy_poll_mask = BIT(0); > + ath79_eth0_data.phy_mask = BIT(0); > + > + ath79_register_eth(0); > + ath79_register_eth(1); > + > + ath79_register_wmac(ee, mac); > + > +} > + > +MIPS_MACHINE(ATH79_MACH_TL_WR941ND_V6, "TL-WR941ND-v6", "TP-LINK TL-WR941N/ND v6", > + tl_wr941nd_v6_setup); > diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile > index e894d78..f9e0087 100644 > --- a/target/linux/ar71xx/image/Makefile > +++ b/target/linux/ar71xx/image/Makefile > @@ -620,7 +620,7 @@ endef > > define Device/tl-wr941nd-v6 > $(Device/tplink-4mlzma) > - BOARDNAME := TL-WDR3500 > + BOARDNAME := TL-WR941ND-v6 > DEVICE_PROFILE := TLWR941 > TPLINK_HWID := 0x09410006 > endef > diff --git a/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch > index 02ebd1b..558d43c 100644 > --- a/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch > +++ b/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch > @@ -1,6 +1,6 @@ > --- a/arch/mips/ath79/machtypes.h > +++ b/arch/mips/ath79/machtypes.h > -@@ -16,24 +16,207 @@ > +@@ -16,24 +16,208 @@ > > enum ath79_mach_type { > ATH79_MACH_GENERIC = 0, > @@ -157,6 +157,7 @@ > + ATH79_MACH_TL_WR842N_V2, /* TP-LINK TL-WR842N/ND v2 */ > + ATH79_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */ > + ATH79_MACH_TL_WR941ND_V5, /* TP-LINK TL-WR941ND v5 */ > ++ ATH79_MACH_TL_WR941ND_V6, /* TP-LINK TL-WR941ND v6 */ > + ATH79_MACH_TUBE2H, /* Alfa Network Tube2H */ > + ATH79_MACH_UBNT_AIRGW, /* Ubiquiti AirGateway */ > ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */ > @@ -301,7 +302,7 @@ > config ATH79_MACH_AP121 > bool "Atheros AP121 reference board" > select SOC_AR933X > -@@ -11,62 +95,1107 @@ config ATH79_MACH_AP121 > +@@ -11,62 +95,1116 @@ config ATH79_MACH_AP121 > select ATH79_DEV_M25P80 > select ATH79_DEV_USB > select ATH79_DEV_WMAC > @@ -1342,6 +1343,15 @@ > + select ATH79_DEV_M25P80 > + select ATH79_DEV_WMAC > + > ++config ATH79_MACH_TL_WR941ND_V6 > ++ bool "TP-LINK TL-WR941ND v6 support" > ++ select SOC_QCA956X > ++ select ATH79_DEV_ETH > ++ select ATH79_DEV_GPIO_BUTTONS > ++ select ATH79_DEV_LEDS_GPIO > ++ select ATH79_DEV_M25P80 > ++ select ATH79_DEV_WMAC > ++ > +config ATH79_MACH_TL_WR1041N_V2 > + bool "TP-LINK TL-WR1041N v2 support" > + select SOC_AR934X > @@ -1437,7 +1447,7 @@ > > config ATH79_MACH_UBNT_XM > bool "Ubiquiti Networks XM/UniFi boards" > -@@ -83,6 +1212,97 @@ config ATH79_MACH_UBNT_XM > +@@ -83,6 +1221,97 @@ config ATH79_MACH_UBNT_XM > Say 'Y' here if you want your kernel to support the > Ubiquiti Networks XM (rev 1.0) board. > > @@ -1535,7 +1545,7 @@ > endmenu > > config SOC_AR71XX > -@@ -134,7 +1354,10 @@ config ATH79_DEV_DSA > +@@ -134,7 +1363,10 @@ config ATH79_DEV_DSA > config ATH79_DEV_ETH > def_bool n > > @@ -1547,7 +1557,7 @@ > def_bool n > > config ATH79_DEV_GPIO_BUTTONS > -@@ -164,6 +1387,11 @@ config ATH79_PCI_ATH9K_FIXUP > +@@ -164,6 +1396,11 @@ config ATH79_PCI_ATH9K_FIXUP > def_bool n > > config ATH79_ROUTERBOOT > @@ -1561,7 +1571,7 @@ > endif > --- a/arch/mips/ath79/Makefile > +++ b/arch/mips/ath79/Makefile > -@@ -38,9 +38,133 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route > +@@ -38,9 +38,134 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route > # > # Machines > # > @@ -1661,6 +1671,7 @@ > +obj-$(CONFIG_ATH79_MACH_TL_WR841N_V8) += mach-tl-wr841n-v8.o > +obj-$(CONFIG_ATH79_MACH_TL_WR841N_V9) += mach-tl-wr841n-v9.o > +obj-$(CONFIG_ATH79_MACH_TL_WR941ND) += mach-tl-wr941nd.o > ++obj-$(CONFIG_ATH79_MACH_TL_WR941ND_V6) += mach-tl-wr941nd-v6.o > +obj-$(CONFIG_ATH79_MACH_TL_WR1041N_V2) += mach-tl-wr1041n-v2.o > +obj-$(CONFIG_ATH79_MACH_TL_WR1043ND) += mach-tl-wr1043nd.o > +obj-$(CONFIG_ATH79_MACH_TL_WR1043ND_V2) += mach-tl-wr1043nd-v2.o > -- > 2.5.0 > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
Please ignore this patch for now, the WLAN isn't working correctly, I'll have a look at that first. Matthias On 08/06/2015 02:40 AM, Matthias Schiffer wrote: > The images currently generated for the TL-WR941ND v6 try to treat it like > a TL-WDR3500, which doesn't make any sense and causes the kernel to panic > in early boot. I don't think this has ever worked (the TL-WR941ND v6 has > a different SoC, uses another MDIO bus, has only one WMAC and no USB...). > > Fix this by adding proper support for the device. > > Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> > --- > target/linux/ar71xx/base-files/etc/diag.sh | 3 +- > .../ar71xx/base-files/etc/uci-defaults/01_leds | 9 ++ > .../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-4.1 | 1 + > .../files/arch/mips/ath79/mach-tl-wr941nd-v6.c | 151 +++++++++++++++++++++ > target/linux/ar71xx/image/Makefile | 2 +- > .../700-MIPS-ath79-openwrt-machines.patch | 23 +++- > 9 files changed, 186 insertions(+), 8 deletions(-) > create mode 100644 target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c > > diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh > index 561c5da..46b83fc 100644 > --- a/target/linux/ar71xx/base-files/etc/diag.sh > +++ b/target/linux/ar71xx/base-files/etc/diag.sh > @@ -277,7 +277,8 @@ get_status_led() { > tl-wdr4300 | \ > tl-wr703n | \ > tl-wr710n | \ > - tl-wr720n-v3) > + tl-wr720n-v3 | \ > + tl-wr941nd-v6) > status_led="tp-link:blue:system" > ;; > tl-wr841n-v9) > diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds > index 2aced37..3344d97 100644 > --- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds > +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds > @@ -474,6 +474,15 @@ tl-wr941nd-v5) > ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" > ;; > > +tl-wr941nd-v6) > + ucidef_set_led_netdev "wan" "WAN" "tp-link:blue:wan" "eth0" > + ucidef_set_led_switch "lan1" "LAN1" "tp-link:blue:lan1" "switch0" "0x10" > + ucidef_set_led_switch "lan2" "LAN2" "tp-link:blue:lan2" "switch0" "0x08" > + ucidef_set_led_switch "lan3" "LAN3" "tp-link:blue:lan3" "switch0" "0x04" > + ucidef_set_led_switch "lan4" "LAN4" "tp-link:blue:lan4" "switch0" "0x02" > + ucidef_set_led_wlan "wlan" "WLAN" "tp-link:blue:wlan" "phy0tpt" > + ;; > + > tl-wa830re-v2) > ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0" > ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" > 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 2893e62..a6507db 100755 > --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network > +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network > @@ -227,6 +227,7 @@ tl-mr3420-v2 |\ > tl-wr841n-v8 |\ > tl-wr842n-v2 |\ > tl-wr941nd-v5 |\ > +tl-wr941nd-v6 |\ > wnr2000-v3 |\ > wnr2000-v4 |\ > wnr2200 |\ > diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh > index 256bd10..5d27538 100755 > --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh > +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh > @@ -793,6 +793,9 @@ ar71xx_board_detect() { > *"TL-WR941N/ND v5") > name="tl-wr941nd-v5" > ;; > + *"TL-WR941N/ND v6") > + name="tl-wr941nd-v6" > + ;; > *"TL-WR703N v1") > name="tl-wr703n" > ;; > diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > index 76d8c5b..55ff568 100755 > --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > @@ -353,6 +353,7 @@ platform_check_image() { > tl-wr842n-v2 | \ > tl-wr941nd | \ > tl-wr941nd-v5 | \ > + tl-wr941nd-v6 | \ > tl-wr1041n-v2 | \ > tl-wr1043nd | \ > tl-wr1043nd-v2 | \ > diff --git a/target/linux/ar71xx/config-4.1 b/target/linux/ar71xx/config-4.1 > index 1e31a01..ecaf454 100644 > --- a/target/linux/ar71xx/config-4.1 > +++ b/target/linux/ar71xx/config-4.1 > @@ -134,6 +134,7 @@ CONFIG_ATH79_MACH_TL_WR841N_V1=y > CONFIG_ATH79_MACH_TL_WR841N_V8=y > CONFIG_ATH79_MACH_TL_WR841N_V9=y > CONFIG_ATH79_MACH_TL_WR941ND=y > +CONFIG_ATH79_MACH_TL_WR941ND_V6=y > CONFIG_ATH79_MACH_TUBE2H=y > CONFIG_ATH79_MACH_UBNT=y > CONFIG_ATH79_MACH_UBNT_XM=y > diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c > new file mode 100644 > index 0000000..c5fc9fc > --- /dev/null > +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c > @@ -0,0 +1,151 @@ > +/* > + * TP-LINK TL-WR941N/ND v6 board support > + * > + * Copyright (C) 2015 Matthias Schiffer <mschiffer@universe-factory.net> > + * > + * 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 <linux/platform_device.h> > + > +#include <asm/mach-ath79/ath79.h> > +#include <asm/mach-ath79/ar71xx_regs.h> > + > +#include "common.h" > +#include "dev-eth.h" > +#include "dev-gpio-buttons.h" > +#include "dev-leds-gpio.h" > +#include "dev-m25p80.h" > +#include "dev-wmac.h" > +#include "machtypes.h" > + > + > +#define TL_WR941ND_V6_GPIO_LED_QSS 3 > +#define TL_WR941ND_V6_GPIO_LED_WAN 14 > +#define TL_WR941ND_V6_GPIO_LED_WAN_RED 15 > +#define TL_WR941ND_V6_GPIO_LED_LAN1 7 > +#define TL_WR941ND_V6_GPIO_LED_LAN2 6 > +#define TL_WR941ND_V6_GPIO_LED_LAN3 5 > +#define TL_WR941ND_V6_GPIO_LED_LAN4 4 > +#define TL_WR941ND_V6_GPIO_LED_WLAN 8 > +#define TL_WR941ND_V6_GPIO_LED_SYSTEM 18 > + > +#define TL_WR941ND_V6_GPIO_BTN_RESET 1 > +#define TL_WR941ND_V6_GPIO_BTN_RFKILL 2 > + > +#define TL_WR941ND_V6_KEYS_POLL_INTERVAL 20 > +#define TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR941ND_V6_KEYS_POLL_INTERVAL) > + > + > +static struct gpio_led tl_wr941nd_v6_leds_gpio[] __initdata = { > + { > + .name = "tp-link:blue:qss", > + .gpio = TL_WR941ND_V6_GPIO_LED_QSS, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:wan", > + .gpio = TL_WR941ND_V6_GPIO_LED_WAN, > + .active_low = 1, > + }, > + { > + .name = "tp-link:red:wan", > + .gpio = TL_WR941ND_V6_GPIO_LED_WAN_RED, > + .active_low = 0, > + }, > + { > + .name = "tp-link:blue:lan1", > + .gpio = TL_WR941ND_V6_GPIO_LED_LAN1, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:lan2", > + .gpio = TL_WR941ND_V6_GPIO_LED_LAN2, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:lan3", > + .gpio = TL_WR941ND_V6_GPIO_LED_LAN3, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:lan4", > + .gpio = TL_WR941ND_V6_GPIO_LED_LAN4, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:wlan", > + .gpio = TL_WR941ND_V6_GPIO_LED_WLAN, > + .active_low = 1, > + }, > + { > + .name = "tp-link:blue:system", > + .gpio = TL_WR941ND_V6_GPIO_LED_SYSTEM, > + .active_low = 1, > + }, > +}; > + > +static struct gpio_keys_button tl_wr941nd_v6_gpio_keys[] __initdata = { > + { > + .desc = "Reset button", > + .type = EV_KEY, > + .code = KEY_RESTART, > + .debounce_interval = TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL, > + .gpio = TL_WR941ND_V6_GPIO_BTN_RESET, > + .active_low = 1, > + }, { > + .desc = "RFKILL button", > + .type = EV_KEY, > + .code = KEY_RFKILL, > + .debounce_interval = TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL, > + .gpio = TL_WR941ND_V6_GPIO_BTN_RFKILL, > + .active_low = 1, > + } > +}; > + > + > +static const char *tl_wr941n_v6_part_probes[] = { > + "tp-link", > + NULL, > +}; > + > +static struct flash_platform_data tl_wr941n_v6_flash_data = { > + .part_probes = tl_wr941n_v6_part_probes, > +}; > + > + > +static void __init tl_wr941nd_v6_setup(void) > +{ > + u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); > + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); > + > + ath79_register_m25p80(&tl_wr941n_v6_flash_data); > + > + ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr941nd_v6_leds_gpio), > + tl_wr941nd_v6_leds_gpio); > + > + ath79_register_gpio_keys_polled(-1, TL_WR941ND_V6_KEYS_POLL_INTERVAL, > + ARRAY_SIZE(tl_wr941nd_v6_gpio_keys), > + tl_wr941nd_v6_gpio_keys); > + > + ath79_register_mdio(0, 0x0); > + > + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1); > + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0); > + > + ath79_switch_data.phy4_mii_en = 1; > + ath79_switch_data.phy_poll_mask = BIT(0); > + ath79_eth0_data.phy_mask = BIT(0); > + > + ath79_register_eth(0); > + ath79_register_eth(1); > + > + ath79_register_wmac(ee, mac); > + > +} > + > +MIPS_MACHINE(ATH79_MACH_TL_WR941ND_V6, "TL-WR941ND-v6", "TP-LINK TL-WR941N/ND v6", > + tl_wr941nd_v6_setup); > diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile > index e894d78..f9e0087 100644 > --- a/target/linux/ar71xx/image/Makefile > +++ b/target/linux/ar71xx/image/Makefile > @@ -620,7 +620,7 @@ endef > > define Device/tl-wr941nd-v6 > $(Device/tplink-4mlzma) > - BOARDNAME := TL-WDR3500 > + BOARDNAME := TL-WR941ND-v6 > DEVICE_PROFILE := TLWR941 > TPLINK_HWID := 0x09410006 > endef > diff --git a/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch > index 02ebd1b..558d43c 100644 > --- a/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch > +++ b/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch > @@ -1,6 +1,6 @@ > --- a/arch/mips/ath79/machtypes.h > +++ b/arch/mips/ath79/machtypes.h > -@@ -16,24 +16,207 @@ > +@@ -16,24 +16,208 @@ > > enum ath79_mach_type { > ATH79_MACH_GENERIC = 0, > @@ -157,6 +157,7 @@ > + ATH79_MACH_TL_WR842N_V2, /* TP-LINK TL-WR842N/ND v2 */ > + ATH79_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */ > + ATH79_MACH_TL_WR941ND_V5, /* TP-LINK TL-WR941ND v5 */ > ++ ATH79_MACH_TL_WR941ND_V6, /* TP-LINK TL-WR941ND v6 */ > + ATH79_MACH_TUBE2H, /* Alfa Network Tube2H */ > + ATH79_MACH_UBNT_AIRGW, /* Ubiquiti AirGateway */ > ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */ > @@ -301,7 +302,7 @@ > config ATH79_MACH_AP121 > bool "Atheros AP121 reference board" > select SOC_AR933X > -@@ -11,62 +95,1107 @@ config ATH79_MACH_AP121 > +@@ -11,62 +95,1116 @@ config ATH79_MACH_AP121 > select ATH79_DEV_M25P80 > select ATH79_DEV_USB > select ATH79_DEV_WMAC > @@ -1342,6 +1343,15 @@ > + select ATH79_DEV_M25P80 > + select ATH79_DEV_WMAC > + > ++config ATH79_MACH_TL_WR941ND_V6 > ++ bool "TP-LINK TL-WR941ND v6 support" > ++ select SOC_QCA956X > ++ select ATH79_DEV_ETH > ++ select ATH79_DEV_GPIO_BUTTONS > ++ select ATH79_DEV_LEDS_GPIO > ++ select ATH79_DEV_M25P80 > ++ select ATH79_DEV_WMAC > ++ > +config ATH79_MACH_TL_WR1041N_V2 > + bool "TP-LINK TL-WR1041N v2 support" > + select SOC_AR934X > @@ -1437,7 +1447,7 @@ > > config ATH79_MACH_UBNT_XM > bool "Ubiquiti Networks XM/UniFi boards" > -@@ -83,6 +1212,97 @@ config ATH79_MACH_UBNT_XM > +@@ -83,6 +1221,97 @@ config ATH79_MACH_UBNT_XM > Say 'Y' here if you want your kernel to support the > Ubiquiti Networks XM (rev 1.0) board. > > @@ -1535,7 +1545,7 @@ > endmenu > > config SOC_AR71XX > -@@ -134,7 +1354,10 @@ config ATH79_DEV_DSA > +@@ -134,7 +1363,10 @@ config ATH79_DEV_DSA > config ATH79_DEV_ETH > def_bool n > > @@ -1547,7 +1557,7 @@ > def_bool n > > config ATH79_DEV_GPIO_BUTTONS > -@@ -164,6 +1387,11 @@ config ATH79_PCI_ATH9K_FIXUP > +@@ -164,6 +1396,11 @@ config ATH79_PCI_ATH9K_FIXUP > def_bool n > > config ATH79_ROUTERBOOT > @@ -1561,7 +1571,7 @@ > endif > --- a/arch/mips/ath79/Makefile > +++ b/arch/mips/ath79/Makefile > -@@ -38,9 +38,133 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route > +@@ -38,9 +38,134 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route > # > # Machines > # > @@ -1661,6 +1671,7 @@ > +obj-$(CONFIG_ATH79_MACH_TL_WR841N_V8) += mach-tl-wr841n-v8.o > +obj-$(CONFIG_ATH79_MACH_TL_WR841N_V9) += mach-tl-wr841n-v9.o > +obj-$(CONFIG_ATH79_MACH_TL_WR941ND) += mach-tl-wr941nd.o > ++obj-$(CONFIG_ATH79_MACH_TL_WR941ND_V6) += mach-tl-wr941nd-v6.o > +obj-$(CONFIG_ATH79_MACH_TL_WR1041N_V2) += mach-tl-wr1041n-v2.o > +obj-$(CONFIG_ATH79_MACH_TL_WR1043ND) += mach-tl-wr1043nd.o > +obj-$(CONFIG_ATH79_MACH_TL_WR1043ND_V2) += mach-tl-wr1043nd-v2.o >
Hi, as I've already written on the OpenWrt ML, I'm currently porting OpenWrt to the TP-LINK TL-WR941ND v6, which uses a TP9343 SoC (which is confusingly part of the QCA956x series). The WMAC identifies as QCA9561 (0x600 rev 0). I'm unable to get the WLAN working at all. The TX seems to work fine (at least I can see the beacons when I put the card into AP mode), but RX is completely dead (iw scan is empty, etc...). As I'm not familar with ath9k, I need some help debugging this. I'm using the OpenWrt trunk, which contains a recent version of mac80211 based on wireless-testing, it already contains the patches "ath9k_hw: fix device ID check for AR956x" and "ath9k: Fix register definitions for QCA956x". I've attached a dump of all debugfs information ath9k provides while the WLAN is configured in IBSS mode in a cell that should be quite active. Thanks in advance, Matthias
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 561c5da..46b83fc 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -277,7 +277,8 @@ get_status_led() { tl-wdr4300 | \ tl-wr703n | \ tl-wr710n | \ - tl-wr720n-v3) + tl-wr720n-v3 | \ + tl-wr941nd-v6) status_led="tp-link:blue:system" ;; tl-wr841n-v9) diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds index 2aced37..3344d97 100644 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds @@ -474,6 +474,15 @@ tl-wr941nd-v5) ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" ;; +tl-wr941nd-v6) + ucidef_set_led_netdev "wan" "WAN" "tp-link:blue:wan" "eth0" + ucidef_set_led_switch "lan1" "LAN1" "tp-link:blue:lan1" "switch0" "0x10" + ucidef_set_led_switch "lan2" "LAN2" "tp-link:blue:lan2" "switch0" "0x08" + ucidef_set_led_switch "lan3" "LAN3" "tp-link:blue:lan3" "switch0" "0x04" + ucidef_set_led_switch "lan4" "LAN4" "tp-link:blue:lan4" "switch0" "0x02" + ucidef_set_led_wlan "wlan" "WLAN" "tp-link:blue:wlan" "phy0tpt" + ;; + tl-wa830re-v2) ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0" ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" 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 2893e62..a6507db 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network @@ -227,6 +227,7 @@ tl-mr3420-v2 |\ tl-wr841n-v8 |\ tl-wr842n-v2 |\ tl-wr941nd-v5 |\ +tl-wr941nd-v6 |\ wnr2000-v3 |\ wnr2000-v4 |\ wnr2200 |\ diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 256bd10..5d27538 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -793,6 +793,9 @@ ar71xx_board_detect() { *"TL-WR941N/ND v5") name="tl-wr941nd-v5" ;; + *"TL-WR941N/ND v6") + name="tl-wr941nd-v6" + ;; *"TL-WR703N v1") name="tl-wr703n" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 76d8c5b..55ff568 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -353,6 +353,7 @@ platform_check_image() { tl-wr842n-v2 | \ tl-wr941nd | \ tl-wr941nd-v5 | \ + tl-wr941nd-v6 | \ tl-wr1041n-v2 | \ tl-wr1043nd | \ tl-wr1043nd-v2 | \ diff --git a/target/linux/ar71xx/config-4.1 b/target/linux/ar71xx/config-4.1 index 1e31a01..ecaf454 100644 --- a/target/linux/ar71xx/config-4.1 +++ b/target/linux/ar71xx/config-4.1 @@ -134,6 +134,7 @@ CONFIG_ATH79_MACH_TL_WR841N_V1=y CONFIG_ATH79_MACH_TL_WR841N_V8=y CONFIG_ATH79_MACH_TL_WR841N_V9=y CONFIG_ATH79_MACH_TL_WR941ND=y +CONFIG_ATH79_MACH_TL_WR941ND_V6=y CONFIG_ATH79_MACH_TUBE2H=y CONFIG_ATH79_MACH_UBNT=y CONFIG_ATH79_MACH_UBNT_XM=y diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c new file mode 100644 index 0000000..c5fc9fc --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c @@ -0,0 +1,151 @@ +/* + * TP-LINK TL-WR941N/ND v6 board support + * + * Copyright (C) 2015 Matthias Schiffer <mschiffer@universe-factory.net> + * + * 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 <linux/platform_device.h> + +#include <asm/mach-ath79/ath79.h> +#include <asm/mach-ath79/ar71xx_regs.h> + +#include "common.h" +#include "dev-eth.h" +#include "dev-gpio-buttons.h" +#include "dev-leds-gpio.h" +#include "dev-m25p80.h" +#include "dev-wmac.h" +#include "machtypes.h" + + +#define TL_WR941ND_V6_GPIO_LED_QSS 3 +#define TL_WR941ND_V6_GPIO_LED_WAN 14 +#define TL_WR941ND_V6_GPIO_LED_WAN_RED 15 +#define TL_WR941ND_V6_GPIO_LED_LAN1 7 +#define TL_WR941ND_V6_GPIO_LED_LAN2 6 +#define TL_WR941ND_V6_GPIO_LED_LAN3 5 +#define TL_WR941ND_V6_GPIO_LED_LAN4 4 +#define TL_WR941ND_V6_GPIO_LED_WLAN 8 +#define TL_WR941ND_V6_GPIO_LED_SYSTEM 18 + +#define TL_WR941ND_V6_GPIO_BTN_RESET 1 +#define TL_WR941ND_V6_GPIO_BTN_RFKILL 2 + +#define TL_WR941ND_V6_KEYS_POLL_INTERVAL 20 +#define TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR941ND_V6_KEYS_POLL_INTERVAL) + + +static struct gpio_led tl_wr941nd_v6_leds_gpio[] __initdata = { + { + .name = "tp-link:blue:qss", + .gpio = TL_WR941ND_V6_GPIO_LED_QSS, + .active_low = 1, + }, + { + .name = "tp-link:blue:wan", + .gpio = TL_WR941ND_V6_GPIO_LED_WAN, + .active_low = 1, + }, + { + .name = "tp-link:red:wan", + .gpio = TL_WR941ND_V6_GPIO_LED_WAN_RED, + .active_low = 0, + }, + { + .name = "tp-link:blue:lan1", + .gpio = TL_WR941ND_V6_GPIO_LED_LAN1, + .active_low = 1, + }, + { + .name = "tp-link:blue:lan2", + .gpio = TL_WR941ND_V6_GPIO_LED_LAN2, + .active_low = 1, + }, + { + .name = "tp-link:blue:lan3", + .gpio = TL_WR941ND_V6_GPIO_LED_LAN3, + .active_low = 1, + }, + { + .name = "tp-link:blue:lan4", + .gpio = TL_WR941ND_V6_GPIO_LED_LAN4, + .active_low = 1, + }, + { + .name = "tp-link:blue:wlan", + .gpio = TL_WR941ND_V6_GPIO_LED_WLAN, + .active_low = 1, + }, + { + .name = "tp-link:blue:system", + .gpio = TL_WR941ND_V6_GPIO_LED_SYSTEM, + .active_low = 1, + }, +}; + +static struct gpio_keys_button tl_wr941nd_v6_gpio_keys[] __initdata = { + { + .desc = "Reset button", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL, + .gpio = TL_WR941ND_V6_GPIO_BTN_RESET, + .active_low = 1, + }, { + .desc = "RFKILL button", + .type = EV_KEY, + .code = KEY_RFKILL, + .debounce_interval = TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL, + .gpio = TL_WR941ND_V6_GPIO_BTN_RFKILL, + .active_low = 1, + } +}; + + +static const char *tl_wr941n_v6_part_probes[] = { + "tp-link", + NULL, +}; + +static struct flash_platform_data tl_wr941n_v6_flash_data = { + .part_probes = tl_wr941n_v6_part_probes, +}; + + +static void __init tl_wr941nd_v6_setup(void) +{ + u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); + + ath79_register_m25p80(&tl_wr941n_v6_flash_data); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr941nd_v6_leds_gpio), + tl_wr941nd_v6_leds_gpio); + + ath79_register_gpio_keys_polled(-1, TL_WR941ND_V6_KEYS_POLL_INTERVAL, + ARRAY_SIZE(tl_wr941nd_v6_gpio_keys), + tl_wr941nd_v6_gpio_keys); + + ath79_register_mdio(0, 0x0); + + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1); + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0); + + ath79_switch_data.phy4_mii_en = 1; + ath79_switch_data.phy_poll_mask = BIT(0); + ath79_eth0_data.phy_mask = BIT(0); + + ath79_register_eth(0); + ath79_register_eth(1); + + ath79_register_wmac(ee, mac); + +} + +MIPS_MACHINE(ATH79_MACH_TL_WR941ND_V6, "TL-WR941ND-v6", "TP-LINK TL-WR941N/ND v6", + tl_wr941nd_v6_setup); diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index e894d78..f9e0087 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -620,7 +620,7 @@ endef define Device/tl-wr941nd-v6 $(Device/tplink-4mlzma) - BOARDNAME := TL-WDR3500 + BOARDNAME := TL-WR941ND-v6 DEVICE_PROFILE := TLWR941 TPLINK_HWID := 0x09410006 endef diff --git a/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch index 02ebd1b..558d43c 100644 --- a/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch +++ b/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -16,24 +16,207 @@ +@@ -16,24 +16,208 @@ enum ath79_mach_type { ATH79_MACH_GENERIC = 0, @@ -157,6 +157,7 @@ + ATH79_MACH_TL_WR842N_V2, /* TP-LINK TL-WR842N/ND v2 */ + ATH79_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */ + ATH79_MACH_TL_WR941ND_V5, /* TP-LINK TL-WR941ND v5 */ ++ ATH79_MACH_TL_WR941ND_V6, /* TP-LINK TL-WR941ND v6 */ + ATH79_MACH_TUBE2H, /* Alfa Network Tube2H */ + ATH79_MACH_UBNT_AIRGW, /* Ubiquiti AirGateway */ ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */ @@ -301,7 +302,7 @@ config ATH79_MACH_AP121 bool "Atheros AP121 reference board" select SOC_AR933X -@@ -11,62 +95,1107 @@ config ATH79_MACH_AP121 +@@ -11,62 +95,1116 @@ config ATH79_MACH_AP121 select ATH79_DEV_M25P80 select ATH79_DEV_USB select ATH79_DEV_WMAC @@ -1342,6 +1343,15 @@ + select ATH79_DEV_M25P80 + select ATH79_DEV_WMAC + ++config ATH79_MACH_TL_WR941ND_V6 ++ bool "TP-LINK TL-WR941ND v6 support" ++ select SOC_QCA956X ++ select ATH79_DEV_ETH ++ select ATH79_DEV_GPIO_BUTTONS ++ select ATH79_DEV_LEDS_GPIO ++ select ATH79_DEV_M25P80 ++ select ATH79_DEV_WMAC ++ +config ATH79_MACH_TL_WR1041N_V2 + bool "TP-LINK TL-WR1041N v2 support" + select SOC_AR934X @@ -1437,7 +1447,7 @@ config ATH79_MACH_UBNT_XM bool "Ubiquiti Networks XM/UniFi boards" -@@ -83,6 +1212,97 @@ config ATH79_MACH_UBNT_XM +@@ -83,6 +1221,97 @@ config ATH79_MACH_UBNT_XM Say 'Y' here if you want your kernel to support the Ubiquiti Networks XM (rev 1.0) board. @@ -1535,7 +1545,7 @@ endmenu config SOC_AR71XX -@@ -134,7 +1354,10 @@ config ATH79_DEV_DSA +@@ -134,7 +1363,10 @@ config ATH79_DEV_DSA config ATH79_DEV_ETH def_bool n @@ -1547,7 +1557,7 @@ def_bool n config ATH79_DEV_GPIO_BUTTONS -@@ -164,6 +1387,11 @@ config ATH79_PCI_ATH9K_FIXUP +@@ -164,6 +1396,11 @@ config ATH79_PCI_ATH9K_FIXUP def_bool n config ATH79_ROUTERBOOT @@ -1561,7 +1571,7 @@ endif --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -38,9 +38,133 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route +@@ -38,9 +38,134 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route # # Machines # @@ -1661,6 +1671,7 @@ +obj-$(CONFIG_ATH79_MACH_TL_WR841N_V8) += mach-tl-wr841n-v8.o +obj-$(CONFIG_ATH79_MACH_TL_WR841N_V9) += mach-tl-wr841n-v9.o +obj-$(CONFIG_ATH79_MACH_TL_WR941ND) += mach-tl-wr941nd.o ++obj-$(CONFIG_ATH79_MACH_TL_WR941ND_V6) += mach-tl-wr941nd-v6.o +obj-$(CONFIG_ATH79_MACH_TL_WR1041N_V2) += mach-tl-wr1041n-v2.o +obj-$(CONFIG_ATH79_MACH_TL_WR1043ND) += mach-tl-wr1043nd.o +obj-$(CONFIG_ATH79_MACH_TL_WR1043ND_V2) += mach-tl-wr1043nd-v2.o
The images currently generated for the TL-WR941ND v6 try to treat it like a TL-WDR3500, which doesn't make any sense and causes the kernel to panic in early boot. I don't think this has ever worked (the TL-WR941ND v6 has a different SoC, uses another MDIO bus, has only one WMAC and no USB...). Fix this by adding proper support for the device. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> --- target/linux/ar71xx/base-files/etc/diag.sh | 3 +- .../ar71xx/base-files/etc/uci-defaults/01_leds | 9 ++ .../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-4.1 | 1 + .../files/arch/mips/ath79/mach-tl-wr941nd-v6.c | 151 +++++++++++++++++++++ target/linux/ar71xx/image/Makefile | 2 +- .../700-MIPS-ath79-openwrt-machines.patch | 23 +++- 9 files changed, 186 insertions(+), 8 deletions(-) create mode 100644 target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941nd-v6.c