From e9263123f9f65814b8858efb5b79d58fe05ca732 Mon Sep 17 00:00:00 2001 From: Piotr Dymacz Date: Wed, 19 Aug 2020 16:01:25 +0200 Subject: [PATCH] ath79: add support for Hak5 WiFi Pineapple NANO Hak5 WiFi Pineapple NANO is an "USB dongle" device dedicated for Wi-Fi pentesters. This device is based on Atheros AR9331 and AR9271. Support for it was first introduced in 950b278c81 (ar71xx). FCC ID: 2AB87-NANO. Specifications: - Atheros AR9331 - 400/400/200 MHz (CPU/DDR/AHB) - 64 MB of RAM (DDR1) - 16 MB of flash (SPI NOR) - 1T1R 2.4 GHz Wi-Fi (AR9331) - 1T1R 2.4 GHz Wi-Fi (AR9271L), with ext. PA and LNA (Qorvo RFFM4203) - 2x RP-SMA antenna connectors - 1x USB 2.0 to 10/100 Ethernet bridge (ASIX AX88772A) - integrated 4-port USB 2.0 HUB: Alcor Micro AU6259: - 1x USB 2.0 - 1x microSD card reader (Genesys Logic GL834L) - Atheros AR9271L - 1x LED, 1x button - UART (4-pin, 2 mm pitch) header on PCB - USB 2.0 Type-A plug for power and AX88772A Flash instruction: You can use sysupgrade image directly in vendor firmware which is based on OpenWrt/LEDE. Signed-off-by: Piotr Dymacz --- .../dts/ar9331_hak5_wifi-pineapple-nano.dts | 128 ++++++++++++++++++ .../generic/base-files/etc/board.d/02_network | 1 + target/linux/ath79/image/generic.mk | 13 ++ 3 files changed, 142 insertions(+) create mode 100644 target/linux/ath79/dts/ar9331_hak5_wifi-pineapple-nano.dts diff --git a/target/linux/ath79/dts/ar9331_hak5_wifi-pineapple-nano.dts b/target/linux/ath79/dts/ar9331_hak5_wifi-pineapple-nano.dts new file mode 100644 index 000000000000..0a9cf9566f69 --- /dev/null +++ b/target/linux/ath79/dts/ar9331_hak5_wifi-pineapple-nano.dts @@ -0,0 +1,128 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "ar9331.dtsi" + +#include +#include + +/ { + model = "Hak5 WiFi Pineapple NANO"; + compatible = "hak5,wifi-pineapple-nano", "qca,ar9331"; + + aliases { + label-mac-device = &wmac; + led-boot = &led_system; + led-failsafe = &led_system; + led-upgrade = &led_system; + serial0 = &uart; + }; + + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + microsd-detect { + gpio-export,name = "microsd-detect"; + gpios = <&gpio 19 GPIO_ACTIVE_LOW>; + }; + + usb-alarm { + gpio-export,name = "usb-alarm"; + gpios = <&gpio 20 GPIO_ACTIVE_LOW>; + }; + + usb-power { + gpio-export,name = "usb-power"; + gpio-export,output = <0>; + gpios = <&gpio 23 GPIO_ACTIVE_LOW>; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_system: system { + label = "wifi-pineapple-nano:blue:system"; + gpios = <&gpio 18 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + }; +}; + +ð0 { + status = "okay"; + + mtd-mac-address = <&art 0x6>; +}; + +ð1 { + status = "okay"; + + compatible = "syscon", "simple-mfd"; +}; + +&spi { + status = "okay"; + + num-cs = <1>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <50000000>; + m25p,fast-read; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x000000 0x020000>; + read-only; + }; + + partition@20000 { + label = "firmware"; + reg = <0x020000 0xfd0000>; + compatible = "tplink,firmware"; + }; + + art: partition@ff0000 { + label = "art"; + reg = <0xff0000 0x010000>; + read-only; + }; + }; + }; +}; + +&uart { + status = "okay"; +}; + +&usb { + status = "okay"; +}; + +&usb_phy { + status = "okay"; +}; + +&wmac { + status = "okay"; + + mtd-cal-data = <&art 0x1000>; +}; diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network index 89795031e08e..5d23e0589ea3 100755 --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network @@ -30,6 +30,7 @@ ath79_setup_interfaces() engenius,ecb1750|\ enterasys,ws-ap3705i|\ glinet,gl-ar300m-lite|\ + hak5,wifi-pineapple-nano|\ meraki,mr16|\ netgear,ex6400|\ netgear,ex7300|\ diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index a5f282be9bf0..c0aacd7ff91d 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -1045,6 +1045,19 @@ define Device/hak5_packet-squirrel endef TARGET_DEVICES += hak5_packet-squirrel +define Device/hak5_wifi-pineapple-nano + $(Device/tplink-16mlzma) + SOC := ar9331 + DEVICE_VENDOR := Hak5 + DEVICE_MODEL := WiFi Pineapple NANO + TPLINK_HWID := 0x4e414e4f + IMAGES := sysupgrade.bin + DEVICE_PACKAGES := kmod-ath9k-htc kmod-usb-chipidea2 kmod-usb-storage \ + -swconfig -uboot-envtools + SUPPORTED_DEVICES += wifi-pineapple-nano +endef +TARGET_DEVICES += hak5_wifi-pineapple-nano + define Device/iodata_etg3-r SOC := ar9342 DEVICE_VENDOR := I-O DATA -- 2.30.2