From 50789acf4e75606ffe16f1f6e7e3b7ee2e71185d Mon Sep 17 00:00:00 2001 From: Christoph Krapp Date: Thu, 8 Nov 2018 11:09:02 +0000 Subject: [PATCH] ar71xx: add support for UniFi-AC-Mesh-Pro This adds the build option for UniFi AC Mesh Pro as well as model detection for it. The device is a hardware clone of the AC Pro. - SoC: QCA9563-AL3A (775Mhz) - RAM: 128MiB - Flash: 16MiB - dual firmware partitions! - LAN: 2x 1000M - POE+ - Wireless: 2.4G: QCA9563 5G: UniFi Chip, QCA988X compatible Signed-off-by: Christoph Krapp (cherry picked from commit 987b961537b7002eda21df97dd8bfebe8882bc6d) --- target/linux/ar71xx/base-files/lib/ar71xx.sh | 17 ++++++++++++----- .../files/arch/mips/ath79/Kconfig.openwrt | 2 +- .../files/arch/mips/ath79/mach-ubnt-unifiac.c | 2 +- .../ar71xx/files/arch/mips/ath79/machtypes.h | 2 +- target/linux/ar71xx/image/generic-ubnt.mk | 6 ++++++ 5 files changed, 21 insertions(+), 8 deletions(-) diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 3af2eee2bd..ccbd4e77c3 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -98,22 +98,28 @@ ubnt_xm_board_detect() { [ -z "$model" ] || AR71XX_MODEL="${model}${magic:3:1}" } -ubnt_ac_lite_get_mtd_part_magic() { +ubnt_unifi_ac_get_mtd_part_magic() { ar71xx_get_mtd_offset_size_format EEPROM 12 2 %02x } -ubnt_ac_lite_board_detect() { +ubnt_unifi_ac_board_detect() { local model local magic - magic="$(ubnt_ac_lite_get_mtd_part_magic)" + magic="$(ubnt_unifi_ac_get_mtd_part_magic)" case ${magic:0:4} in "e517") model="Ubiquiti UniFi-AC-LITE" ;; + "e537") + model="Ubiquiti UniFi-AC-PRO" + ;; "e557") model="Ubiquiti UniFi-AC-MESH" ;; + "e567") + model="Ubiquiti UniFi-AC-MESH-PRO" + ;; esac [ -z "$model" ] || AR71XX_MODEL="${model}" @@ -1369,10 +1375,11 @@ ar71xx_board_detect() { ;; *"UniFi-AC-LITE/MESH") name="unifiac-lite" - ubnt_ac_lite_board_detect + ubnt_unifi_ac_board_detect ;; - *"UniFi-AC-PRO") + *"UniFi-AC-PRO/MESH-PRO") name="unifiac-pro" + ubnt_unifi_ac_board_detect ;; *"UniFiAP Outdoor") name="unifi-outdoor" diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt index e7655b3c02..1d0e3d910d 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt @@ -2109,7 +2109,7 @@ config ATH79_MACH_UBNT select ATH79_DEV_USB config ATH79_MACH_UBNT_UNIFIAC - bool "Ubiquiti UniFi AC (LITE/LR/MESH/PRO) support" + bool "Ubiquiti UniFi AC (LITE/LR/MESH/PRO/MESH-PRO) support" select SOC_QCA956X select ATH79_DEV_AP9X_PCI if PCI select ATH79_DEV_ETH diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c index 38195a466b..2f62d32029 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c @@ -176,4 +176,4 @@ static void __init ubnt_unifiac_pro_setup(void) MIPS_MACHINE(ATH79_MACH_UBNT_UNIFIAC_PRO, "UBNT-UF-AC-PRO", - "Ubiquiti UniFi-AC-PRO", ubnt_unifiac_pro_setup); + "Ubiquiti UniFi-AC-PRO/MESH-PRO", ubnt_unifiac_pro_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h index 390ec0b2c3..80f6e1d95b 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h @@ -329,7 +329,7 @@ enum ath79_mach_type { ATH79_MACH_UBNT_UAP_PRO, /* Ubiquiti UniFi AP Pro */ ATH79_MACH_UBNT_UNIFI, /* Ubiquiti Unifi */ ATH79_MACH_UBNT_UNIFIAC_LITE, /* Ubiquiti Unifi AC LITE/LR/MESH */ - ATH79_MACH_UBNT_UNIFIAC_PRO, /* Ubiquiti Unifi AC PRO */ + ATH79_MACH_UBNT_UNIFIAC_PRO, /* Ubiquiti Unifi AC PRO/MESH PRO */ ATH79_MACH_UBNT_UNIFI_OUTDOOR, /* Ubiquiti UnifiAP Outdoor */ ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS, /* Ubiquiti UnifiAP Outdoor+ */ ATH79_MACH_UBNT_XM, /* Ubiquiti Networks XM board rev 1.0 */ diff --git a/target/linux/ar71xx/image/generic-ubnt.mk b/target/linux/ar71xx/image/generic-ubnt.mk index 07c0295504..77f9d3ad0a 100644 --- a/target/linux/ar71xx/image/generic-ubnt.mk +++ b/target/linux/ar71xx/image/generic-ubnt.mk @@ -143,6 +143,12 @@ define Device/ubnt-unifiac-pro endef TARGET_DEVICES += ubnt-unifiac-pro +define Device/ubnt-unifiac-mesh-pro + $(Device/ubnt-unifiac-pro) + DEVICE_TITLE := Ubiquiti UniFi AC-Mesh-Pro +endef +TARGET_DEVICES += ubnt-unifiac-mesh-pro + define Device/ubnt-unifi-outdoor $(Device/ubnt-bz) DEVICE_TITLE := Ubiquiti UniFi Outdoor