This patch adds support for Linksys WUMC710 AC Media Bridge
https://wikidevi.com/wiki/Linksys_WUMC710
What works:
- leds
- buttons
- 4.1 and 4.4 kernel
(320-MIPS-BCM47XX-Devices-database-update-for-4.x.patch needs no change)
- switch (top 3 sockets as configured as LAN, socket next to power
socket is WAN)
- wan/lan performance is ~100mbit/s
Known issues:
- BCM4360 is not supported so it works like router/switch when compiled
with "no wifi" profile. Otherwise it segfaults at boot (wifi related)
but is accessible over ethernet
- There is non critical issue when booting
[ 0.149029] bcma: core 0x050e, irq : 2(S) 3 4 5 6 D* I
[ 0.149105] bcma: core 0x0534, irq : 2(S) 3 4 5 6 D* I
[ 0.149136] ------------[ cut here ]------------
[ 0.149178] WARNING: CPU: 0 PID: 1 at drivers/bcma/host_soc.c:140
bcma_host_soc_aread32+0x40/0x70()
[ 0.149189] Accessed core has no wrapper/agent
[ 0.149198] Modules linked in:
[ 0.149219] CPU: 0 PID: 1 Comm: swapper Not tainted 4.4.0 #1
[ 0.149229] Stack : 80319938 00000000 00000001 80360000 83828280
80356fe3 802fb1c0 00000001
[ 0.149229] 803a379c 00000007 00000005 80300000 80300000 80048b00
80300778 80350000
[ 0.149229] 00000003 00000007 802feb7c 8381bc94 80300000 80046adc
00000002 00000000
[ 0.149229] 00000000 00000001 00000000 00000000 00000000 00000000
00000000 00000000
[ 0.149229] 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000
[ 0.149229] ...
[ 0.149375] Call Trace:
[ 0.149411] [<80014004>] show_stack+0x50/0x84
[ 0.149448] [<8002396c>] warn_slowpath_common+0xa0/0xd0
[ 0.149470] [<800239c8>] warn_slowpath_fmt+0x2c/0x38
[ 0.149492] [<801d3cf4>] bcma_host_soc_aread32+0x40/0x70
[ 0.149513] [<801d2210>] bcma_core_mips_irqflag+0x78/0x94
[ 0.149532] [<801d229c>] bcma_core_mips_irq+0x28/0x98
[ 0.149553] [<801d2b94>] bcma_core_mips_init+0x3cc/0x480
[ 0.149572] [<801cc584>] bcma_bus_register+0x194/0x420
[ 0.149597] [<80371cb8>] bcm47xx_register_bus_complete+0x20/0x94
[ 0.149619] [<8000a07c>] do_one_initcall+0x1f0/0x218
[ 0.149640] [<8036fd68>] kernel_init_freeable+0x164/0x224
[ 0.149670] [<80005824>] kernel_init+0x14/0x118
[ 0.149689] [<80001078>] ret_from_kernel_thread+0x14/0x1c
[ 0.149700]
[ 0.149740] ---[ end trace b0bb05bbb14c3a7e ]---
[ 0.149753] bcma: core 0x05dc, irq : 2(S) 3 4 5 6 D* I
Signed-off-by: Michał Osowiecki <[email protected]>
diff --git a/target/linux/brcm47xx/image/Makefile b/target/linux/brcm47xx/image/Makefile
index c290f9a..eafb92d 100644
--- a/target/linux/brcm47xx/image/Makefile
+++ b/target/linux/brcm47xx/image/Makefile
@@ -320,6 +320,7 @@ ifeq ($(SUBTARGET),mips74k)
$(eval $(call LinksysDevice,e2500-v2.1,25RU,2.1.0))
$(eval $(call LinksysDevice,e2500-v3,25V3,3.0.0))
$(eval $(call LinksysDevice,e3200-v1,3200,1.0.1))
+ $(eval $(call AsusDevice,wumc710))
$(eval $(call LinksysDevice,e4200-v1,4200,1.0.5))
$(eval $(call NetgearDevice,wgr614-v10_north-america,U12H139T01_NETGEAR,2))
$(eval $(call NetgearDevice,wgr614-v10_other-regions,U12H139T01_NETGEAR,1))
diff --git a/target/linux/brcm47xx/patches-4.1/320-MIPS-BCM47XX-Devices-database-update-for-4.x.patch b/target/linux/brcm47xx/patches-4.1/320-MIPS-BCM47XX-Devices-database-update-for-4.x.patch
index 68214c8..ca59bd1 100644
--- a/target/linux/brcm47xx/patches-4.1/320-MIPS-BCM47XX-Devices-database-update-for-4.x.patch
+++ b/target/linux/brcm47xx/patches-4.1/320-MIPS-BCM47XX-Devices-database-update-for-4.x.patch
@@ -29,6 +29,14 @@
{{BCM47XX_BOARD_NETGEAR_WNR2000, "Netgear WNR2000"}, "U12H114T00_NETGEAR"},
{{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "U12H136T99_NETGEAR"},
{{BCM47XX_BOARD_NETGEAR_WNR3500U, "Netgear WNR3500U"}, "U12H136T00_NETGEAR"},
+@@ -178,6 +178,7 @@
+ {{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"},
+ {{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"},
+ {{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "0x04CF", "3500", "02"},
++ {{BCM47XX_BOARD_LINKSYS_WUMC710, "Linksys WUMC710"}, "0x0617", "1234", "0x1402"},
+ {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101, "Linksys WRT54G/GS/GL"}, "0x0101", "42", "0x10"},
+ {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467, "Linksys WRT54G/GS/GL"}, "0x0467", "42", "0x10"},
+ {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708, "Linksys WRT54G/GS/GL"}, "0x0708", "42", "0x10"},
--- a/arch/mips/bcm47xx/buttons.c
+++ b/arch/mips/bcm47xx/buttons.c
@@ -20,6 +20,12 @@
@@ -63,6 +71,19 @@
bcm47xx_buttons_linksys_wrt54g3gv2[] __initconst = {
BCM47XX_GPIO_KEY(5, KEY_WIMAX),
BCM47XX_GPIO_KEY(6, KEY_RESTART),
+@@ -299,6 +299,12 @@
+ BCM47XX_GPIO_KEY(6, KEY_RESTART),
+ };
+
++static const struct gpio_keys_button
++bcm47xx_buttons_linksys_wumc710[] __initconst = {
++ BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
++ BCM47XX_GPIO_KEY(6, KEY_RESTART),
++};
++
+ /* Luxul */
+
+ static const struct gpio_keys_button
@@ -333,6 +351,17 @@ bcm47xx_buttons_motorola_wr850gv2v3[] __
/* Netgear */
@@ -116,6 +137,16 @@
case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2);
break;
+@@ -560,6 +563,9 @@
+ case BCM47XX_BOARD_LINKSYS_WRTSL54GS:
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrtsl54gs);
+ break;
++ case BCM47XX_BOARD_LINKSYS_WUMC710:
++ err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wumc710);
++ break;
+
+ case BCM47XX_BOARD_LUXUL_XWR_1750_V1:
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_luxul_xwr_1750_v1);
@@ -579,6 +622,12 @@ int __init bcm47xx_buttons_register(void
err = bcm47xx_copy_bdata(bcm47xx_buttons_motorola_wr850gv2v3);
break;
@@ -149,6 +180,14 @@
BCM47XX_BOARD_LINKSYS_WRT54G3GV2,
BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101,
BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467,
+@@ -79,6 +79,7 @@
+ BCM47XX_BOARD_LINKSYS_WRT610NV1,
+ BCM47XX_BOARD_LINKSYS_WRT610NV2,
+ BCM47XX_BOARD_LINKSYS_WRTSL54GS,
++ BCM47XX_BOARD_LINKSYS_WUMC710,
+
+ BCM47XX_BOARD_LUXUL_XWR_1750_V1,
+
@@ -88,9 +89,12 @@ enum bcm47xx_board {
BCM47XX_BOARD_MOTOROLA_WR850GP,
BCM47XX_BOARD_MOTOROLA_WR850GV2V3,
@@ -201,6 +240,22 @@
bcm47xx_leds_linksys_wrt54g_generic[] __initconst = {
BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
+@@ -370,6 +370,15 @@
+ BCM47XX_GPIO_LED(7, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
+ };
+
++static const struct gpio_led
++bcm47xx_leds_linksys_wumc710[] __initconst = {
++ BCM47XX_GPIO_LED(8, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON),
++ BCM47XX_GPIO_LED(10, "blue", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
++ BCM47XX_GPIO_LED(11, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
++ BCM47XX_GPIO_LED(12, "red", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
++};
++
++
+ /* Luxul */
+
+ static const struct gpio_led
@@ -478,6 +493,9 @@ void __init bcm47xx_leds_register(void)
enum bcm47xx_board board = bcm47xx_board_get();
@@ -221,3 +276,15 @@
case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g3gv2);
break;
+@@ -632,6 +640,10 @@
+ case BCM47XX_BOARD_LINKSYS_WRTSL54GS:
+ bcm47xx_set_pdata(bcm47xx_leds_linksys_wrtsl54gs);
+ break;
++ case BCM47XX_BOARD_LINKSYS_WUMC710:
++ bcm47xx_set_pdata(bcm47xx_leds_linksys_wumc710);
++ break;
++
+
+ case BCM47XX_BOARD_LUXUL_XWR_1750_V1:
+ bcm47xx_set_pdata(bcm47xx_leds_luxul_xwr_1750_v1);
+
diff --git a/target/linux/brcm47xx/base-files/etc/board.d/01_detect b/target/linux/brcm47xx/base-files/etc/board.d/01_detect
index 91ac16e..5867365 100755
--- a/target/linux/brcm47xx/base-files/etc/board.d/01_detect
+++ b/target/linux/brcm47xx/base-files/etc/board.d/01_detect
@@ -70,6 +70,11 @@ detect_by_boardtype() {
ucidef_set_interfaces_lan_wan "eth0" "eth1"
;;
+ "0x0617")
+ ucidef_add_switch "switch0" \
+ "1:lan" "2:lan" "3:lan" "4:wan" "8@eth0"
+ ;;
+
"0x0467")
ucidef_add_switch "switch0" \
"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0"
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel