Signed-off-by: Daniel Dickinson <[email protected]>
---
.../base-files/etc/defconfig/unifi-outdoor/network | 15 +++++
target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 +
.../ar71xx/base-files/lib/upgrade/platform.sh | 3 +-
target/linux/ar71xx/generic/profiles/ubnt.mk | 11 ++++
target/linux/ar71xx/image/Makefile | 3 +-
.../660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch | 68 ++++++++++++++++++++
.../660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch | 68 ++++++++++++++++++++
7 files changed, 169 insertions(+), 2 deletions(-)
create mode 100644
target/linux/ar71xx/base-files/etc/defconfig/unifi-outdoor/network
create mode 100644
target/linux/ar71xx/patches-3.3/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
create mode 100644
target/linux/ar71xx/patches-3.6/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
diff --git a/target/linux/ar71xx/base-files/etc/defconfig/unifi-outdoor/network
b/target/linux/ar71xx/base-files/etc/defconfig/unifi-outdoor/network
new file mode 100644
index 0000000..c8f18c2
--- /dev/null
+++ b/target/linux/ar71xx/base-files/etc/defconfig/unifi-outdoor/network
@@ -0,0 +1,15 @@
+# Copyright (C) 2006 OpenWrt.org
+
+config interface loopback
+ option ifname lo
+ option proto static
+ option ipaddr 127.0.0.1
+ option netmask 255.0.0.0
+
+config interface lan
+ list ifname eth0
+ list ifname eth1
+ option type bridge
+ option proto static
+ option ipaddr 192.168.1.1
+ option netmask 255.255.255.0
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh
b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 430ef8c..7ff43b8 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -387,6 +387,9 @@ ar71xx_board_detect() {
*WLAE-AG300N)
name="wlae-ag300n"
;;
+ *"UniFiAP Outdoor")
+ name="unifi-outdoor"
+ ;;
*WP543)
name="wp543"
;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 81535ce..5946cf6 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -126,7 +126,8 @@ platform_check_image() {
whr-hp-gn | \
wlae-ag300n | \
nbg460n_550n_550nh | \
- unifi )
+ unifi | \
+ unifi-outdoor )
[ "$magic" != "2705" ] && {
echo "Invalid image type."
return 1
diff --git a/target/linux/ar71xx/generic/profiles/ubnt.mk
b/target/linux/ar71xx/generic/profiles/ubnt.mk
index 668171b..dc26956 100644
--- a/target/linux/ar71xx/generic/profiles/ubnt.mk
+++ b/target/linux/ar71xx/generic/profiles/ubnt.mk
@@ -38,6 +38,17 @@ endef
$(eval $(call Profile,UBNTUNIFI))
+define Profile/UBNTUNIFIOUTDOOR
+ NAME:=Ubiquiti UniFiAP Outdoor
+ PACKAGES:=
+endef
+
+define Profile/UBNTUNIFIOUTDOOR/Description
+ Package set optimized for the Ubiquiti UniFiAP Outdoor.
+endef
+
+$(eval $(call Profile,UBNTUNIFIOUTDOOR))
+
define Profile/UBNT
NAME:=Ubiquiti Products
PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-usb2
diff --git a/target/linux/ar71xx/image/Makefile
b/target/linux/ar71xx/image/Makefile
index 2bf66cb..9678d66 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -885,6 +885,7 @@ $(eval $(call
SingleProfile,UBNTXM,$(fs_64k),UBNTBULLETM,ubnt-bullet-m,UBNT-BM,t
$(eval $(call
SingleProfile,UBNTXM,$(fs_64k),UBNTROCKETM,ubnt-rocket-m,UBNT-RM,ttyS0,115200,XM,XM,ar7240))
$(eval $(call
SingleProfile,UBNTXM,$(fs_64k),UBNTNANOM,ubnt-nano-m,UBNT-NM,ttyS0,115200,XM,XM,ar7240))
$(eval $(call
SingleProfile,UBNTXM,$(fs_64k),UBNTUNIFI,ubnt-unifi,UBNT-UF,ttyS0,115200,XM,XM,ar7240))
+$(eval $(call
SingleProfile,UBNTXM,$(fs_64k),UBNTUNIFIOUTDOOR,ubnt-unifi-outdoor,UBNT-U20,ttyS0,115200,XM,XM,ar7240))
$(eval $(call
SingleProfile,WHRHPG300N,$(fs_64k),WHRG301N,whr-g301n,WHR-G301N,ttyS0,115200,$$(whrhpg300n_mtdlayout),WHR-G301N))
$(eval $(call
SingleProfile,WHRHPG300N,$(fs_64k),WHRHPG300N,whr-hp-g300n,WHR-HP-G300N,ttyS0,115200,$$(whrhpg300n_mtdlayout),WHR-HP-G300N))
@@ -915,7 +916,7 @@ $(eval $(call MultiProfile,TLWR741,TLWR741NV1 TLWR741NV2
TLWR741NV4))
$(eval $(call MultiProfile,TLWR841,TLWR841NV15 TLWR841NV3 TLWR841NV5
TLWR841NV7 TLWR841NV8))
$(eval $(call MultiProfile,TLWR941,TLWR941NV2 TLWR941NV3 TLWR941NV4))
$(eval $(call MultiProfile,TLWDR4300,TLWDR3600V1 TLWDR4300V1 TLWDR4310V1))
-$(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71
UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTUNIFI))
+$(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71
UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTUNIFI UBNTUNIFIOUTDOOR))
$(eval $(call MultiProfile,WNDR3700,WNDR3700V1 WNDR3700V2 WNDR3800 WNDRMAC
WNDRMACV2))
$(eval $(call MultiProfile,WP543,WP543_2M WP543_4M WP543_8M WP543_16M))
$(eval $(call MultiProfile,WPE72,WPE72_4M WPE72_8M WPE72_16M))
diff --git
a/target/linux/ar71xx/patches-3.3/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
b/target/linux/ar71xx/patches-3.3/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
new file mode 100644
index 0000000..a2b462c
--- /dev/null
+++
b/target/linux/ar71xx/patches-3.3/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
@@ -0,0 +1,68 @@
+Index: linux-3.3.8/arch/mips/ath79/mach-ubnt-xm.c
+===================================================================
+--- linux-3.3.8.orig/arch/mips/ath79/mach-ubnt-xm.c 2012-11-01
19:26:43.649596509 -0400
++++ linux-3.3.8/arch/mips/ath79/mach-ubnt-xm.c 2012-11-01 19:26:46.717535358
-0400
+@@ -170,6 +170,19 @@
+ }
+ };
+
++static struct gpio_led ubnt_unifi_outdoor_leds_gpio[] __initdata = {
++ {
++ .name = "ubnt:orange:front",
++ .gpio = 1,
++ .active_low = 0,
++ }, {
++ .name = "ubnt:green:front",
++ .gpio = 0,
++ .active_low = 0,
++ }
++};
++
++
+ static void __init ubnt_unifi_setup(void)
+ {
+ u8 *mac = (u8 *) KSEG1ADDR(0x1fff0000);
+@@ -194,3 +207,31 @@
+
+ MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI, "UBNT-UF", "Ubiquiti UniFi",
+ ubnt_unifi_setup);
++
++
++#define UBNT_UNIFIOD_PRI_PHYMASK BIT(4)
++#define UBNT_UNIFIOD_2ND_PHYMASK (BIT(0) | BIT(1) | BIT(2) | BIT(3))
++
++static void __init ubnt_unifi_outdoor_setup(void)
++{
++ u8 *mac1 = (u8 *) KSEG1ADDR(0x1fff0000);
++ u8 *mac2 = (u8 *) KSEG1ADDR(0x1fff0000 + ETH_ALEN);
++ u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
++
++ ath79_register_m25p80(NULL);
++
++ ath79_register_mdio(0, ~(UBNT_UNIFIOD_PRI_PHYMASK |
UBNT_UNIFIOD_2ND_PHYMASK));
++
++ ath79_init_mac(ath79_eth0_data.mac_addr, mac1, 0);
++ ath79_init_mac(ath79_eth1_data.mac_addr, mac2, 0);
++ ath79_register_eth(0);
++ ath79_register_eth(1);
++
++ ap91_pci_init(ee, NULL);
++
++ ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_unifi_outdoor_leds_gpio),
++ ubnt_unifi_outdoor_leds_gpio);
++}
++
++MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI_OUTDOOR, "UBNT-U20", "Ubiquiti UniFiAP
Outdoor",
++ ubnt_unifi_outdoor_setup);
+Index: linux-3.3.8/arch/mips/ath79/machtypes.h
+===================================================================
+--- linux-3.3.8.orig/arch/mips/ath79/machtypes.h 2012-11-01
19:26:43.677595951 -0400
++++ linux-3.3.8/arch/mips/ath79/machtypes.h 2012-11-01 19:26:46.717535358
-0400
+@@ -96,6 +96,7 @@
+ ATH79_MACH_UBNT_RSPRO, /* Ubiquiti RouterStation Pro */
+ ATH79_MACH_UBNT_RS, /* Ubiquiti RouterStation */
+ ATH79_MACH_UBNT_UNIFI, /* Ubiquiti Unifi */
++ ATH79_MACH_UBNT_UNIFI_OUTDOOR, /* Ubiquiti UnifiAP Outdoor */
+ ATH79_MACH_UBNT_XM, /* Ubiquiti Networks XM board rev 1.0 */
+ ATH79_MACH_WHR_G301N, /* Buffalo WHR-G301N */
+ ATH79_MACH_WHR_HP_G300N, /* Buffalo WHR-HP-G300N */
diff --git
a/target/linux/ar71xx/patches-3.6/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
b/target/linux/ar71xx/patches-3.6/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
new file mode 100644
index 0000000..a2b462c
--- /dev/null
+++
b/target/linux/ar71xx/patches-3.6/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
@@ -0,0 +1,68 @@
+Index: linux-3.3.8/arch/mips/ath79/mach-ubnt-xm.c
+===================================================================
+--- linux-3.3.8.orig/arch/mips/ath79/mach-ubnt-xm.c 2012-11-01
19:26:43.649596509 -0400
++++ linux-3.3.8/arch/mips/ath79/mach-ubnt-xm.c 2012-11-01 19:26:46.717535358
-0400
+@@ -170,6 +170,19 @@
+ }
+ };
+
++static struct gpio_led ubnt_unifi_outdoor_leds_gpio[] __initdata = {
++ {
++ .name = "ubnt:orange:front",
++ .gpio = 1,
++ .active_low = 0,
++ }, {
++ .name = "ubnt:green:front",
++ .gpio = 0,
++ .active_low = 0,
++ }
++};
++
++
+ static void __init ubnt_unifi_setup(void)
+ {
+ u8 *mac = (u8 *) KSEG1ADDR(0x1fff0000);
+@@ -194,3 +207,31 @@
+
+ MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI, "UBNT-UF", "Ubiquiti UniFi",
+ ubnt_unifi_setup);
++
++
++#define UBNT_UNIFIOD_PRI_PHYMASK BIT(4)
++#define UBNT_UNIFIOD_2ND_PHYMASK (BIT(0) | BIT(1) | BIT(2) | BIT(3))
++
++static void __init ubnt_unifi_outdoor_setup(void)
++{
++ u8 *mac1 = (u8 *) KSEG1ADDR(0x1fff0000);
++ u8 *mac2 = (u8 *) KSEG1ADDR(0x1fff0000 + ETH_ALEN);
++ u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
++
++ ath79_register_m25p80(NULL);
++
++ ath79_register_mdio(0, ~(UBNT_UNIFIOD_PRI_PHYMASK |
UBNT_UNIFIOD_2ND_PHYMASK));
++
++ ath79_init_mac(ath79_eth0_data.mac_addr, mac1, 0);
++ ath79_init_mac(ath79_eth1_data.mac_addr, mac2, 0);
++ ath79_register_eth(0);
++ ath79_register_eth(1);
++
++ ap91_pci_init(ee, NULL);
++
++ ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_unifi_outdoor_leds_gpio),
++ ubnt_unifi_outdoor_leds_gpio);
++}
++
++MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI_OUTDOOR, "UBNT-U20", "Ubiquiti UniFiAP
Outdoor",
++ ubnt_unifi_outdoor_setup);
+Index: linux-3.3.8/arch/mips/ath79/machtypes.h
+===================================================================
+--- linux-3.3.8.orig/arch/mips/ath79/machtypes.h 2012-11-01
19:26:43.677595951 -0400
++++ linux-3.3.8/arch/mips/ath79/machtypes.h 2012-11-01 19:26:46.717535358
-0400
+@@ -96,6 +96,7 @@
+ ATH79_MACH_UBNT_RSPRO, /* Ubiquiti RouterStation Pro */
+ ATH79_MACH_UBNT_RS, /* Ubiquiti RouterStation */
+ ATH79_MACH_UBNT_UNIFI, /* Ubiquiti Unifi */
++ ATH79_MACH_UBNT_UNIFI_OUTDOOR, /* Ubiquiti UnifiAP Outdoor */
+ ATH79_MACH_UBNT_XM, /* Ubiquiti Networks XM board rev 1.0 */
+ ATH79_MACH_WHR_G301N, /* Buffalo WHR-G301N */
+ ATH79_MACH_WHR_HP_G300N, /* Buffalo WHR-HP-G300N */
--
1.7.9.5
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel