[OpenWrt-Devel] [PATCH] ar71xx: add support for the UniFi AP Outdoor Plus

Matthias Schiffer mschiffer at universe-factory.net
Wed Mar 11 06:46:04 EDT 2015


No, unfortunately, the WLAN problem still exists.

My patch made OpenWrt generate images which can be flashed the usual way
from the stock firmware. In addition, it added support to the OpenWrt
kernel and userspace, so that
- the device is identified correctly in /proc/cpuinfo and /tmp/sysinfo
- LEDs work correctly
- sysupgrade works

I can't really say much about the WLAN problem. I have a test device
here, but I currently don't have much spare time for extensive
experiments (and if it is a WLAN driver issue, I probably can't help much).

Regards,
Matthias


On 03/11/2015 09:54 AM, Shvedov Yury wrote:
> Hi,
> 
> does your patch fix this problem:
> https://lists.openwrt.org/pipermail/openwrt-devel/2014-September/028103.html
> ?
> As I checked, it doesn't, so what exactly your patch do? Does it only
> make the leds to work properly?
> 
> Kind regards
> Yury Shvedov
> 
> On 12/30/2014 06:01 AM, Matthias Schiffer wrote:
>> Signed-off-by: Matthias Schiffer <mschiffer at universe-factory.net>
>> ---
>>   target/linux/ar71xx/base-files/etc/diag.sh         |  3 ++
>>   target/linux/ar71xx/base-files/lib/ar71xx.sh       |  3 ++
>>   .../ar71xx/base-files/lib/upgrade/platform.sh      |  2 +
>>   target/linux/ar71xx/image/Makefile                 |  3 +-
>>   .../610-MIPS-ath79-openwrt-machines.patch          |  3 +-
>>   .../patches-3.14/616-MIPS-ath79-ubnt-xw.patch      | 61
>> +++++++++++++++++++++-
>>   6 files changed, 72 insertions(+), 3 deletions(-)
>>
>> diff --git a/target/linux/ar71xx/base-files/etc/diag.sh
>> b/target/linux/ar71xx/base-files/etc/diag.sh
>> index 06b96a3..30e4aeb 100755
>> --- a/target/linux/ar71xx/base-files/etc/diag.sh
>> +++ b/target/linux/ar71xx/base-files/etc/diag.sh
>> @@ -254,6 +254,9 @@ get_status_led() {
>>       uap-pro)
>>           status_led="ubnt:white:dome"
>>           ;;
>> +    unifi-outdoor-plus)
>> +        status_led="ubnt:white:front"
>> +        ;;
>>       airgateway)
>>           status_led="ubnt:white:status"
>>           ;;
>> diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh
>> b/target/linux/ar71xx/base-files/lib/ar71xx.sh
>> index 9b056e9..a12101a 100755
>> --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
>> +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
>> @@ -732,6 +732,9 @@ ar71xx_board_detect() {
>>       *"UniFiAP Outdoor")
>>           name="unifi-outdoor"
>>           ;;
>> +    *"UniFiAP Outdoor+")
>> +        name="unifi-outdoor-plus"
>> +        ;;
>>       *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 6dabf4e..2752729 100755
>> --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
>> +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
>> @@ -368,6 +368,7 @@ platform_check_image() {
>>           return 1
>>           ;;
>>   +    unifi-outdoor-plus | \
>>       uap-pro)
>>           [ "$magic_long" != "19852003" ] && {
>>               echo "Invalid image type."
>> @@ -483,6 +484,7 @@ platform_do_upgrade() {
>>       om5p)
>>           platform_do_upgrade_openmesh "$ARGV"
>>           ;;
>> +    unifi-outdoor-plus | \
>>       uap-pro)
>>           MTD_CONFIG_ARGS="-s 0x180000"
>>           default_do_upgrade "$ARGV"
>> diff --git a/target/linux/ar71xx/image/Makefile
>> b/target/linux/ar71xx/image/Makefile
>> index 18c9637..3eb2f07 100644
>> --- a/target/linux/ar71xx/image/Makefile
>> +++ b/target/linux/ar71xx/image/Makefile
>> @@ -1333,6 +1333,7 @@ $(eval $(call
>> SingleProfile,TPLINK-LZMA,64kraw,SMART-300,smart-300,SMART-300,tty
>>   $(eval $(call
>> SingleProfile,TPLINK-LZMA,64kraw,OOLITE,oolite,GS-OOLITE,ttyATH0,115200,0x3C000101,1,16Mlzma))
>>
>>     $(eval $(call
>> SingleProfile,UAPPRO,64k,UAPPRO,ubnt-uap-pro,UAP-PRO,ttyS0,115200,BZ,BZ,ar934x))
>>
>> +$(eval $(call
>> SingleProfile,UAPPRO,64k,UBNTUNIFIOUTDOORPLUS,ubnt-unifi-outdoor-plus,UBNT-UOP,ttyS0,115200,BZ,BZ,ar7240))
>>
>>     $(eval $(call
>> SingleProfile,UBDEV,64kraw,UBDEV01,ubdev01,UBNT-UF,ttyS0,115200,XM,XM,ar7240))
>>
>>   @@ -1396,7 +1397,7 @@ $(eval $(call MultiProfile,TLWR941,TLWR941NV2
>> TLWR941NV3 TLWR941NV4 TLWR941NV6))
>>   $(eval $(call MultiProfile,TLWR1043,TLWR1043V1 TLWR1043V2))
>>   $(eval $(call MultiProfile,TLWDR4300,TLWDR3500V1 TLWDR3600V1
>> TLWDR4300V1 TLWDR4300V1IL TLWDR4310V1 MW4530RV1))
>>   $(eval $(call MultiProfile,TUBE2H,TUBE2H8M TUBE2H16M))
>> -$(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO
>> UBNTLSSR71 UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTNANOMXW UBNTLOCOXW
>> UBNTUNIFI UBNTUNIFIOUTDOOR UAPPRO UBNTAIRGW))
>> +$(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO
>> UBNTLSSR71 UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTNANOMXW UBNTLOCOXW
>> UBNTUNIFI UBNTUNIFIOUTDOOR UBNTUNIFIOUTDOORPLUS UAPPRO UBNTAIRGW))
>>   $(eval $(call MultiProfile,WNDR3700,WNDR3700V1 WNDR3700V2 WNDR3800
>> WNDR3800CH WNDRMAC WNDRMACV2))
>>   $(eval $(call MultiProfile,WNR612V2,REALWNR612V2 N150R))
>>   $(eval $(call MultiProfile,WP543,WP543_2M WP543_4M WP543_8M WP543_16M))
>> diff --git
>> a/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch
>> b/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch
>> index 4ce9268..b01c5de 100644
>> ---
>> a/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch
>> +++
>> b/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch
>> @@ -1,6 +1,6 @@
>>   --- a/arch/mips/ath79/machtypes.h
>>   +++ b/arch/mips/ath79/machtypes.h
>> -@@ -16,22 +16,145 @@
>> +@@ -16,22 +16,146 @@
>>       enum ath79_mach_type {
>>        ATH79_MACH_GENERIC = 0,
>> @@ -119,6 +119,7 @@
>>        ATH79_MACH_UBNT_UAP_PRO,    /* Ubiquiti UniFi AP Pro */
>>        ATH79_MACH_UBNT_UNIFI,         /* Ubiquiti Unifi */
>>        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 */
>>   +    ATH79_MACH_WHR_G301N,        /* Buffalo WHR-G301N */
>>   +    ATH79_MACH_WHR_HP_G300N,    /* Buffalo WHR-HP-G300N */
>> diff --git
>> a/target/linux/ar71xx/patches-3.14/616-MIPS-ath79-ubnt-xw.patch
>> b/target/linux/ar71xx/patches-3.14/616-MIPS-ath79-ubnt-xw.patch
>> index 3675518..8e16697 100644
>> --- a/target/linux/ar71xx/patches-3.14/616-MIPS-ath79-ubnt-xw.patch
>> +++ b/target/linux/ar71xx/patches-3.14/616-MIPS-ath79-ubnt-xw.patch
>> @@ -1,6 +1,65 @@
>>   --- a/arch/mips/ath79/mach-ubnt-xm.c
>>   +++ b/arch/mips/ath79/mach-ubnt-xm.c
>> -@@ -332,3 +332,78 @@ static void __init ubnt_uap_pro_setup(vo
>> +@@ -186,6 +186,19 @@ static struct gpio_led ubnt_unifi_outdoo
>> +     }
>> + };
>> +
>> ++static struct gpio_led ubnt_unifi_outdoor_plus_leds_gpio[]
>> __initdata = {
>> ++    {
>> ++        .name        = "ubnt:white:front",
>> ++        .gpio        = 1,
>> ++        .active_low    = 0,
>> ++    }, {
>> ++        .name        = "ubnt:blue:front",
>> ++        .gpio        = 0,
>> ++        .active_low    = 0,
>> ++    }
>> ++};
>> ++
>> ++
>> + static void __init ubnt_unifi_setup(void)
>> + {
>> +     u8 *mac = (u8 *) KSEG1ADDR(0x1fff0000);
>> +@@ -245,6 +258,38 @@ MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI_OUTDO
>> +          "Ubiquiti UniFiAP Outdoor",
>> +          ubnt_unifi_outdoor_setup);
>> +
>> ++
>> ++static void __init ubnt_unifi_outdoor_plus_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_plus_leds_gpio),
>> ++                 ubnt_unifi_outdoor_plus_leds_gpio);
>> ++
>> ++    ath79_register_gpio_keys_polled(-1, UBNT_XM_KEYS_POLL_INTERVAL,
>> ++                                        ARRAY_SIZE(ubnt_xm_gpio_keys),
>> ++                                        ubnt_xm_gpio_keys);
>> ++}
>> ++
>> ++MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS, "UBNT-UOP",
>> ++         "Ubiquiti UniFiAP Outdoor+",
>> ++         ubnt_unifi_outdoor_plus_setup);
>> ++
>> ++
>> + static struct gpio_led ubnt_uap_pro_gpio_leds[] __initdata = {
>> +     {
>> +         .name        = "ubnt:white:dome",
>> +@@ -332,3 +377,78 @@ static void __init ubnt_uap_pro_setup(vo
>>    MIPS_MACHINE(ATH79_MACH_UBNT_UAP_PRO, "UAP-PRO", "Ubiquiti UniFi AP
>> Pro",
>>             ubnt_uap_pro_setup);
>>    
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20150311/93de7136/attachment.sig>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list