ar71xx: add support for MikroTik hAP ac lite

This patch adds support for the MikroTik RouterBOARD hAP ac lite
(RB952Ui-5ac2nD).

The hAP ac lite is nearly identical to the hAP, with an added QCA9887
5GHz radio. The 2.4GHz radio ID is also changed in the hAP ac lite.

Signed-off-by: Ryan Mounce <ryan@mounce.com.au>
This commit is contained in:
Ryan Mounce 2017-03-08 19:37:00 +10:30 committed by Piotr Dymacz
parent dce3b0057b
commit 540edf7045
11 changed files with 47 additions and 10 deletions

View file

@ -239,7 +239,8 @@ rb-750up-r2)
rb-941-2nd) rb-941-2nd)
ucidef_set_led_timer "user" "USR/ACT" "rb:green:user" "1000" "1000" ucidef_set_led_timer "user" "USR/ACT" "rb:green:user" "1000" "1000"
;; ;;
rb-951ui-2nd) rb-951ui-2nd|\
rb-952ui-5ac2nd)
ucidef_set_led_timer "user" "USER" "rb:green:user" "1000" "1000" ucidef_set_led_timer "user" "USER" "rb:green:user" "1000" "1000"
ucidef_set_led_netdev "port1" "port1" "rb:green:port1" "eth0" ucidef_set_led_netdev "port1" "port1" "rb:green:port1" "eth0"
ucidef_set_led_switch "port2" "port2" "rb:green:port2" "switch0" "0x10" ucidef_set_led_switch "port2" "port2" "rb:green:port2" "switch0" "0x10"

View file

@ -142,6 +142,7 @@ ar71xx_setup_interfaces()
rb-750up-r2|\ rb-750up-r2|\
rb-951ui-2hnd|\ rb-951ui-2hnd|\
rb-951ui-2nd|\ rb-951ui-2nd|\
rb-952ui-5ac2nd|\
routerstation|\ routerstation|\
tl-wr710n|\ tl-wr710n|\
tl-wr720n-v3|\ tl-wr720n-v3|\

View file

@ -28,7 +28,8 @@ rb-912uag-5hpnd)
ucidef_add_gpio_switch "usb_power_switch" "USB Power Switch" "52" "1" ucidef_add_gpio_switch "usb_power_switch" "USB Power Switch" "52" "1"
;; ;;
rb-750up-r2|\ rb-750up-r2|\
rb-951ui-2nd) rb-951ui-2nd|\
rb-952ui-5ac2nd)
ucidef_add_gpio_switch "usb_power_switch" "USB Power Switch" "45" "1" ucidef_add_gpio_switch "usb_power_switch" "USB Power Switch" "45" "1"
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "14" ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "14"
;; ;;

View file

@ -306,6 +306,7 @@ get_status_led() {
rb-912uag-5hpnd|\ rb-912uag-5hpnd|\
rb-941-2nd|\ rb-941-2nd|\
rb-951ui-2nd|\ rb-951ui-2nd|\
rb-952ui-5ac2nd|\
rb-lhg-5nd|\ rb-lhg-5nd|\
rb-mapl-2nd) rb-mapl-2nd)
status_led="rb:green:user" status_led="rb:green:user"

View file

@ -106,6 +106,9 @@ case "$FIRMWARE" in
unifiac-pro) unifiac-pro)
ath10kcal_extract "EEPROM" 20480 2116 ath10kcal_extract "EEPROM" 20480 2116
;; ;;
rb-952ui-5ac2nd)
ath10kcal_from_file "/sys/firmware/routerboot/ext_wlan_data" 20480 2116
;;
esac esac
;; ;;
"ath10k/cal-pci-0000:01:00.0.bin") "ath10k/cal-pci-0000:01:00.0.bin")

View file

@ -905,6 +905,9 @@ ar71xx_board_detect() {
*"RouterBOARD 951Ui-2nD") *"RouterBOARD 951Ui-2nD")
name="rb-951ui-2nd" name="rb-951ui-2nd"
;; ;;
*"RouterBOARD 952Ui-5ac2nD")
name="rb-952ui-5ac2nd"
;;
*"RouterBOARD LHG 5nD") *"RouterBOARD LHG 5nD")
name="rb-lhg-5nd" name="rb-lhg-5nd"
;; ;;

View file

@ -638,6 +638,7 @@ platform_check_image() {
rb-750up-r2|\ rb-750up-r2|\
rb-941-2nd|\ rb-941-2nd|\
rb-951ui-2nd|\ rb-951ui-2nd|\
rb-952ui-5ac2nd|\
rb-lhg-5nd|\ rb-lhg-5nd|\
rb-mapl-2nd) rb-mapl-2nd)
return 0 return 0
@ -690,6 +691,7 @@ platform_pre_upgrade() {
rb-750up-r2|\ rb-750up-r2|\
rb-941-2nd|\ rb-941-2nd|\
rb-951ui-2nd|\ rb-951ui-2nd|\
rb-952ui-5ac2nd|\
rb-lhg-5nd|\ rb-lhg-5nd|\
rb-mapl-2nd) rb-mapl-2nd)
# erase firmware if booted from initramfs # erase firmware if booted from initramfs

View file

@ -942,6 +942,7 @@ config ATH79_MACH_RBSPI
MikroTik RouterBOARD mAP lite MikroTik RouterBOARD mAP lite
MikroTik RouterBOARD hAP lite MikroTik RouterBOARD hAP lite
MikroTik RouterBOARD hAP MikroTik RouterBOARD hAP
MikroTik RouterBOARD hAP ac lite
MikroTik RouterBOARD hEX PoE lite MikroTik RouterBOARD hEX PoE lite
MikroTik RouterBOARD hEX lite MikroTik RouterBOARD hEX lite
MikroTik RouterBOARD LHG 5 MikroTik RouterBOARD LHG 5

View file

@ -4,6 +4,7 @@
* - MikroTik RouterBOARD mAP L-2nD * - MikroTik RouterBOARD mAP L-2nD
* - MikroTik RouterBOARD 941L-2nD * - MikroTik RouterBOARD 941L-2nD
* - MikroTik RouterBOARD 951Ui-2nD * - MikroTik RouterBOARD 951Ui-2nD
* - MikroTik RouterBOARD 952Ui-5ac2nD
* - MikroTik RouterBOARD 750UP r2 * - MikroTik RouterBOARD 750UP r2
* - MikroTik RouterBOARD 750 r2 * - MikroTik RouterBOARD 750 r2
* - MikroTik RouterBOARD LHG 5nD * - MikroTik RouterBOARD LHG 5nD
@ -23,6 +24,7 @@
* by the Free Software Foundation. * by the Free Software Foundation.
*/ */
#include <linux/pci.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/phy.h> #include <linux/phy.h>
#include <linux/routerboot.h> #include <linux/routerboot.h>
@ -47,6 +49,7 @@
#include "dev-usb.h" #include "dev-usb.h"
#include "dev-wmac.h" #include "dev-wmac.h"
#include "machtypes.h" #include "machtypes.h"
#include "pci.h"
#include "routerboot.h" #include "routerboot.h"
#define RBSPI_KEYS_POLL_INTERVAL 20 /* msecs */ #define RBSPI_KEYS_POLL_INTERVAL 20 /* msecs */
@ -59,6 +62,7 @@
#define RBSPI_HAS_SSR BIT(4) /* has an SSR on SPI bus 0 */ #define RBSPI_HAS_SSR BIT(4) /* has an SSR on SPI bus 0 */
#define RBSPI_HAS_POE BIT(5) #define RBSPI_HAS_POE BIT(5)
#define RBSPI_HAS_MDIO1 BIT(6) #define RBSPI_HAS_MDIO1 BIT(6)
#define RBSPI_HAS_PCI BIT(7)
#define RB_ROUTERBOOT_OFFSET 0x0000 #define RB_ROUTERBOOT_OFFSET 0x0000
#define RB_BIOS_SIZE 0x1000 #define RB_BIOS_SIZE 0x1000
@ -490,6 +494,9 @@ static void __init rbspi_peripherals_setup(u32 flags)
if (flags & RBSPI_HAS_USB) if (flags & RBSPI_HAS_USB)
ath79_register_usb(); ath79_register_usb();
if (flags & RBSPI_HAS_PCI)
ath79_register_pci();
} }
/* /*
@ -597,7 +604,7 @@ static void __init rbhapl_setup(void)
} }
/* /*
* The hAP, hEX lite and hEX PoE lite share the same platform * The hAP, hAP ac lite, hEX lite and hEX PoE lite share the same platform
*/ */
static void __init rbspi_952_750r2_setup(u32 flags) static void __init rbspi_952_750r2_setup(u32 flags)
{ {
@ -606,8 +613,11 @@ static void __init rbspi_952_750r2_setup(u32 flags)
rbspi_peripherals_setup(flags); rbspi_peripherals_setup(flags);
/* GMAC1 is HW MAC + 1, WLAN0 MAC IS HW MAC + 5 */ /*
rbspi_network_setup(flags, 1, 5, 0); * GMAC1 is HW MAC + 1, WLAN0 MAC IS HW MAC + 5 (hAP),
* WLAN1 MAC IS HW MAC + 6 (hAP ac lite)
*/
rbspi_network_setup(flags, 1, 5, 6);
if (flags & RBSPI_HAS_USB) if (flags & RBSPI_HAS_USB)
gpio_request_one(RB952_GPIO_USB_POWER, gpio_request_one(RB952_GPIO_USB_POWER,
@ -628,22 +638,30 @@ static void __init rbspi_952_750r2_setup(u32 flags)
} }
/* /*
* Init the hAP hardware (QCA953x). * Init the hAP (ac lite) hardware (QCA953x).
* The 951Ui-2nD (hAP) has 5 ethernet ports, with ports 2-5 being assigned * The 951Ui-2nD (hAP) has 5 ethernet ports, with ports 2-5 being assigned
* to LAN on the casing, and port 1 being assigned to "internet" (WAN). * to LAN on the casing, and port 1 being assigned to "internet" (WAN).
* Port 1 is connected to PHY4 (the ports are labelled in reverse physical * Port 1 is connected to PHY4 (the ports are labelled in reverse physical
* number), so the SoC can be set to connect GMAC0 to PHY4 and GMAC1 to the * number), so the SoC can be set to connect GMAC0 to PHY4 and GMAC1 to the
* internal switch for the LAN ports. * internal switch for the LAN ports.
* The device also has USB, PoE output and an SSR used for LED multiplexing. * The device also has USB, PoE output and an SSR used for LED multiplexing.
* The 952Ui-5ac2nD (hAP ac lite) is nearly identical to the hAP, it adds a
* QCA9887 5GHz radio via PCI and moves 2.4GHz from WLAN0 to WLAN1.
*/ */
static void __init rb952_setup(void) static void __init rb952_setup(void)
{ {
u32 flags = RBSPI_HAS_WLAN0 | RBSPI_HAS_WAN4 | RBSPI_HAS_USB | u32 flags = RBSPI_HAS_WAN4 | RBSPI_HAS_USB |
RBSPI_HAS_SSR | RBSPI_HAS_POE; RBSPI_HAS_SSR | RBSPI_HAS_POE;
if (rbspi_platform_setup()) if (rbspi_platform_setup())
return; return;
/* differentiate the hAP from the hAP ac lite */
if (strstr(mips_get_machine_name(), "952Ui-5ac2nD"))
flags |= RBSPI_HAS_WLAN1 | RBSPI_HAS_PCI;
else
flags |= RBSPI_HAS_WLAN0;
rbspi_952_750r2_setup(flags); rbspi_952_750r2_setup(flags);
} }

View file

@ -176,7 +176,7 @@ enum ath79_mach_type {
ATH79_MACH_RB_941, /* MikroTik RouterBOARD 941-2nD */ ATH79_MACH_RB_941, /* MikroTik RouterBOARD 941-2nD */
ATH79_MACH_RB_951G, /* Mikrotik RouterBOARD 951G */ ATH79_MACH_RB_951G, /* Mikrotik RouterBOARD 951G */
ATH79_MACH_RB_951U, /* Mikrotik RouterBOARD 951Ui-2HnD */ ATH79_MACH_RB_951U, /* Mikrotik RouterBOARD 951Ui-2HnD */
ATH79_MACH_RB_952, /* MikroTik RouterBOARD 951Ui-2nD */ ATH79_MACH_RB_952, /* MikroTik RouterBOARD 951Ui-2nD / 952Ui-5ac2nD */
ATH79_MACH_RB_CAP, /* Mikrotik RouterBOARD cAP2nD */ ATH79_MACH_RB_CAP, /* Mikrotik RouterBOARD cAP2nD */
ATH79_MACH_RB_LHG5, /* Mikrotik RouterBOARD LHG5 */ ATH79_MACH_RB_LHG5, /* Mikrotik RouterBOARD LHG5 */
ATH79_MACH_RB_MAP, /* Mikrotik RouterBOARD mAP2nD */ ATH79_MACH_RB_MAP, /* Mikrotik RouterBOARD mAP2nD */

View file

@ -31,9 +31,15 @@ define Device/rb-nor-flash-16M
LOADER_TYPE := elf LOADER_TYPE := elf
KERNEL_INSTALL := 1 KERNEL_INSTALL := 1
KERNEL := kernel-bin | lzma | loader-kernel KERNEL := kernel-bin | lzma | loader-kernel
SUPPORTED_DEVICES := rb-750-r2 rb-750up-r2 rb-941-2nd rb-951ui-2nd rb-lhg-5nd rb-mapl-2nd SUPPORTED_DEVICES := rb-750-r2 rb-750up-r2 rb-941-2nd rb-951ui-2nd rb-952ui-5ac2nd rb-lhg-5nd rb-mapl-2nd
IMAGE/sysupgrade.bin = append-kernel | kernel2minor -s 1024 -e | pad-to $$$$(BLOCKSIZE) | \ IMAGE/sysupgrade.bin = append-kernel | kernel2minor -s 1024 -e | pad-to $$$$(BLOCKSIZE) | \
append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
endef endef
TARGET_DEVICES += rb-nor-flash-16M define Device/rb-nor-flash-16M-ac
$(Device/rb-nor-flash-16M)
DEVICE_TITLE := MikroTik RouterBoard with 16 MB SPI NOR flash and ac
DEVICE_PACKAGES += kmod-ath10k ath10k-firmware-qca988x ath10k-firmware-qca9887
endef
TARGET_DEVICES += rb-nor-flash-16M rb-nor-flash-16M-ac