diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds index 867fa9d381..97abd91423 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -320,6 +320,12 @@ rb-lhg-5nd) ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "rb:green:rssi3" "wlan0" "60" "100" "-59" "13" ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "rb:green:rssi4" "wlan0" "80" "100" "-79" "13" ;; +rb-map-2nd) + ucidef_set_led_switch "eth1" "WAN" "rb:green:eth1" "switch0" "0x02" + ucidef_set_led_switch "eth2" "LAN" "rb:green:eth2" "switch0" "0x04" + ucidef_set_led_gpio "poe" "POE" "rb:red:poe_out" "14" "0" + ucidef_set_led_wlan "wlan" "WLAN" "rb:green:wlan" "phy0tpt" + ;; rb-mapl-2nd) ucidef_set_led_default "power" "POWER" "rb:green:power" "1" ucidef_set_led_netdev "lan" "LAN" "rb:green:eth" "eth0" diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network index a5b8a95cc8..614c82de05 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -419,6 +419,10 @@ ar71xx_setup_interfaces() ucidef_add_switch "switch1" \ "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" ;; + rb-map-2nd) + ucidef_add_switch "switch0" \ + "0@eth0" "1:wan" "2:lan" + ;; tellstick-znet-lite) ucidef_set_interface_wan "eth0" ucidef_set_interface_raw "wlan" "wlan0" "dhcp" diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index e767eec520..3fcbe306ad 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -320,6 +320,7 @@ get_status_led() { rb-952ui-5ac2nd|\ rb-962uigs-5hact2hnt|\ rb-lhg-5nd|\ + rb-map-2nd|\ rb-mapl-2nd) status_led="rb:green:user" ;; diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 702ed215ca..306af08cc5 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -965,6 +965,9 @@ ar71xx_board_detect() { *"RouterBOARD LHG 5nD") name="rb-lhg-5nd" ;; + *"RouterBOARD mAP 2nD") + name="rb-map-2nd" + ;; *"RouterBOARD mAP L-2nD") name="rb-mapl-2nd" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 4639ae32cf..e7947a319f 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -666,6 +666,7 @@ platform_check_image() { rb-952ui-5ac2nd|\ rb-962uigs-5hact2hnt|\ rb-lhg-5nd|\ + rb-map-2nd|\ rb-mapl-2nd|\ rb-wap-2nd) return 0 @@ -726,6 +727,7 @@ platform_pre_upgrade() { rb-952ui-5ac2nd|\ rb-962uigs-5hact2hnt|\ rb-lhg-5nd|\ + rb-map-2nd|\ rb-mapl-2nd|\ rb-wap-2nd) # erase firmware if booted from initramfs diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt index 77e523bcc4..aa29052316 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt @@ -1024,6 +1024,7 @@ config ATH79_MACH_RBSPI select ATH79_ROUTERBOOT help Say 'Y' here if you want your kernel to support the + MikroTik RouterBOARD mAP MikroTik RouterBOARD mAP lite MikroTik RouterBOARD hAP lite MikroTik RouterBOARD hAP @@ -1034,7 +1035,6 @@ config ATH79_MACH_RBSPI MikroTik RouterBOARD Powerbox MikroTik RouterBOARD LHG 5 MikroTik RouterBOARD cAP (EXPERIMENTAL) - MikroTik RouterBOARD mAP (EXPERIMENTAL) MikroTik RouterBOARD wAP config ATH79_MACH_RBSXTLITE diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c index 2e1ecd0f52..cfd7373164 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c @@ -1,6 +1,7 @@ /* * MikroTik SPI-NOR RouterBOARDs support * + * - MikroTik RouterBOARD mAP 2nD * - MikroTik RouterBOARD mAP L-2nD * - MikroTik RouterBOARD 941L-2nD * - MikroTik RouterBOARD 951Ui-2nD @@ -14,7 +15,6 @@ * * Preliminary support for the following hardware * - MikroTik RouterBOARD cAP2nD - * - MikroTik RouterBOARD mAP2nD * Furthermore, the cAP lite (cAPL2nD) appears to feature the exact same * hardware as the mAP L-2nD. It is unknown if they share the same board * identifier. @@ -405,7 +405,7 @@ static struct gpio_led rbmap_leds[] __initdata = { .active_low = 1, }, { .name = "rb:green:eth2", - .gpio = RBMAP_GPIO_LED_WLAN, + .gpio = RBMAP_GPIO_LED_LAN2, .active_low = 1, }, { .name = "rb:red:poe_out", @@ -920,13 +920,14 @@ static void __init rbcap_setup(void) } /* - * Init the mAP hardware (EXPERIMENTAL). - * The mAP 2nD has two ethernet ports, PoE output and an SSR for LED - * multiplexing. + * Init the mAP hardware. + * The mAP 2nD has two ethernet ports, PoE output, SSR for LED + * multiplexing and USB port. */ static void __init rbmap_setup(void) { - u32 flags = RBSPI_HAS_WLAN0 | RBSPI_HAS_SSR | RBSPI_HAS_POE; + u32 flags = RBSPI_HAS_USB | RBSPI_HAS_WLAN0 | + RBSPI_HAS_SSR | RBSPI_HAS_POE; if (rbspi_platform_setup()) return; @@ -939,10 +940,22 @@ static void __init rbmap_setup(void) if (flags & RBSPI_HAS_POE) gpio_request_one(RBMAP_GPIO_POE_POWER, - GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, + GPIOF_OUT_INIT_LOW | GPIOF_EXPORT_DIR_FIXED, "POE power"); + /* USB power GPIO is inverted, set GPIOF_ACTIVE_LOW for consistency */ + if (flags & RBSPI_HAS_USB) + gpio_request_one(RBMAP_GPIO_USB_POWER, + GPIOF_OUT_INIT_HIGH | GPIOF_ACTIVE_LOW | + GPIOF_EXPORT_DIR_FIXED, + "USB power"); + ath79_register_leds_gpio(-1, ARRAY_SIZE(rbmap_leds), rbmap_leds); + + /* mAP 2nD has a single reset button as gpio 16 */ + ath79_register_gpio_keys_polled(-1, RBSPI_KEYS_POLL_INTERVAL, + ARRAY_SIZE(rbspi_gpio_keys_reset16), + rbspi_gpio_keys_reset16); } diff --git a/target/linux/ar71xx/image/mikrotik.mk b/target/linux/ar71xx/image/mikrotik.mk index 5ee3eee65e..46d2a3e3a6 100644 --- a/target/linux/ar71xx/image/mikrotik.mk +++ b/target/linux/ar71xx/image/mikrotik.mk @@ -25,12 +25,12 @@ TARGET_DEVICES += nand-64m nand-large define Device/rb-nor-flash-16M DEVICE_TITLE := MikroTik RouterBoard (16 MB SPI NOR) - DEVICE_PACKAGES := rbcfg rssileds -nand-utils + DEVICE_PACKAGES := rbcfg rssileds -nand-utils kmod-ledtrig-gpio IMAGE_SIZE := 16000k LOADER_TYPE := elf KERNEL_INSTALL := 1 KERNEL := kernel-bin | lzma | loader-kernel - SUPPORTED_DEVICES := rb-750-r2 rb-750up-r2 rb-750p-pbr2 rb-941-2nd rb-951ui-2nd rb-952ui-5ac2nd rb-962uigs-5hact2hnt rb-lhg-5nd rb-mapl-2nd rb-wap-2nd + SUPPORTED_DEVICES := rb-750-r2 rb-750up-r2 rb-750p-pbr2 rb-941-2nd rb-951ui-2nd rb-952ui-5ac2nd rb-962uigs-5hact2hnt rb-lhg-5nd rb-map-2nd rb-mapl-2nd rb-wap-2nd IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 -e | pad-to $$$$(BLOCKSIZE) | \ append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) endef diff --git a/target/linux/ar71xx/patches-4.4/701-MIPS-ath79-add-routerboard-detection.patch b/target/linux/ar71xx/patches-4.4/701-MIPS-ath79-add-routerboard-detection.patch index fc3091ec65..1ad5fa68a1 100644 --- a/target/linux/ar71xx/patches-4.4/701-MIPS-ath79-add-routerboard-detection.patch +++ b/target/linux/ar71xx/patches-4.4/701-MIPS-ath79-add-routerboard-detection.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/prom.c +++ b/arch/mips/ath79/prom.c -@@ -136,6 +136,28 @@ void __init prom_init(void) +@@ -136,6 +136,29 @@ void __init prom_init(void) initrd_end = initrd_start + fw_getenvl("initrd_size"); } #endif @@ -20,6 +20,7 @@ + strstr(arcs_cmdline, "board=962") || + strstr(arcs_cmdline, "board=lhg") || + strstr(arcs_cmdline, "board=map-hb") || ++ strstr(arcs_cmdline, "board=map2-hb") || + strstr(arcs_cmdline, "board=wap-hb") || + strstr(arcs_cmdline, "board=2011L") || + strstr(arcs_cmdline, "board=2011r") || diff --git a/target/linux/ar71xx/patches-4.9/701-MIPS-ath79-add-routerboard-detection.patch b/target/linux/ar71xx/patches-4.9/701-MIPS-ath79-add-routerboard-detection.patch index fc3091ec65..1ad5fa68a1 100644 --- a/target/linux/ar71xx/patches-4.9/701-MIPS-ath79-add-routerboard-detection.patch +++ b/target/linux/ar71xx/patches-4.9/701-MIPS-ath79-add-routerboard-detection.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/prom.c +++ b/arch/mips/ath79/prom.c -@@ -136,6 +136,28 @@ void __init prom_init(void) +@@ -136,6 +136,29 @@ void __init prom_init(void) initrd_end = initrd_start + fw_getenvl("initrd_size"); } #endif @@ -20,6 +20,7 @@ + strstr(arcs_cmdline, "board=962") || + strstr(arcs_cmdline, "board=lhg") || + strstr(arcs_cmdline, "board=map-hb") || ++ strstr(arcs_cmdline, "board=map2-hb") || + strstr(arcs_cmdline, "board=wap-hb") || + strstr(arcs_cmdline, "board=2011L") || + strstr(arcs_cmdline, "board=2011r") ||