ath79: add support for Hak5 Packet Squirrel
authorPiotr Dymacz <pepe2k@gmail.com>
Wed, 19 Aug 2020 13:10:04 +0000 (15:10 +0200)
committerPiotr Dymacz <pepe2k@gmail.com>
Sun, 27 Sep 2020 23:28:37 +0000 (01:28 +0200)
Hak5 Packet Squirrel is a pocket-sized device dedicated for pentesters
(MITM attacks). This device is based on Atheros AR9331 but it lacks
WiFi. Support for it was first introduced in 950b278c81 (ar71xx).

Specifications:

- Atheros AR9331
- 400/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2x RJ45 10/100 Mbps Ethernet (AR9331)
- 1x USB 2.0
- 1x RGB LED, 1x button, 1x 4-way mechanical switch
- 1x Micro USB Type-B for main power input

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on OpenWrt/LEDE.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
target/linux/ath79/dts/ar9331_hak5_lan-turtle.dts
target/linux/ath79/dts/ar9331_hak5_lan-turtle.dtsi [new file with mode: 0644]
target/linux/ath79/dts/ar9331_hak5_packet-squirrel.dts [new file with mode: 0644]
target/linux/ath79/generic/base-files/etc/board.d/02_network
target/linux/ath79/image/generic.mk

index e6f083482f28d8489b087c768176050949ae7d8b..8b9ece07ef1608edb389bda6c481e7cf2180d148 100644 (file)
@@ -1,9 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
-#include "ar9331.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
+#include "ar9331_hak5_lan-turtle.dtsi"
 
 / {
        model = "Hak5 LAN Turtle";
                led-boot = &led_system;
                led-failsafe = &led_system;
                led-upgrade = &led_system;
-               serial0 = &uart;
-       };
-
-       keys {
-               compatible = "gpio-keys";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&enable_gpio11>;
-
-               reset {
-                       label = "reset";
-                       linux,code = <KEY_RESTART>;
-                       gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
-                       debounce-interval = <60>;
-               };
        };
 
        leds {
                };
        };
 };
-
-&eth0 {
-       status = "okay";
-
-       mtd-mac-address = <&uboot 0x1fc00>;
-       mtd-mac-address-increment = <(-1)>;
-
-       gmac-config {
-               device = <&gmac>;
-
-               switch-phy-addr-swap = <1>;
-               switch-phy-swap = <1>;
-       };
-};
-
-&eth1 {
-       status = "okay";
-
-       mtd-mac-address = <&uboot 0x1fc00>;
-       mtd-mac-address-increment = <1>;
-};
-
-&pinmux {
-       enable_gpio11: pinmux_enable_gpio11 {
-               pinctrl-single,bits = <0x0 0x0 0x4>;
-       };
-};
-
-&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>;
-
-                       uboot: partition@0 {
-                               label = "u-boot";
-                               reg = <0x000000 0x020000>;
-                               read-only;
-                       };
-
-                       partition@20000 {
-                               label = "firmware";
-                               reg = <0x020000 0xfd0000>;
-                               compatible = "tplink,firmware";
-                       };
-
-                       partition@ff0000 {
-                               label = "art";
-                               reg = <0xff0000 0x010000>;
-                               read-only;
-                       };
-               };
-       };
-};
-
-&uart {
-       status = "okay";
-};
-
-&usb {
-       status = "okay";
-};
-
-&usb_phy {
-       status = "okay";
-};
diff --git a/target/linux/ath79/dts/ar9331_hak5_lan-turtle.dtsi b/target/linux/ath79/dts/ar9331_hak5_lan-turtle.dtsi
new file mode 100644 (file)
index 0000000..c5770a7
--- /dev/null
@@ -0,0 +1,102 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9331.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       aliases {
+               serial0 = &uart;
+       };
+
+       keys: keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&enable_gpio11>;
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       mtd-mac-address = <&uboot 0x1fc00>;
+       mtd-mac-address-increment = <(-1)>;
+
+       gmac-config {
+               device = <&gmac>;
+
+               switch-phy-addr-swap = <1>;
+               switch-phy-swap = <1>;
+       };
+};
+
+&eth1 {
+       status = "okay";
+
+       mtd-mac-address = <&uboot 0x1fc00>;
+       mtd-mac-address-increment = <1>;
+};
+
+&pinmux {
+       enable_gpio11: pinmux_enable_gpio11 {
+               pinctrl-single,bits = <0x0 0x0 0x4>;
+       };
+};
+
+&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>;
+
+                       uboot: partition@0 {
+                               label = "u-boot";
+                               reg = <0x000000 0x020000>;
+                               read-only;
+                       };
+
+                       partition@20000 {
+                               label = "firmware";
+                               reg = <0x020000 0xfd0000>;
+                               compatible = "tplink,firmware";
+                       };
+
+                       partition@ff0000 {
+                               label = "art";
+                               reg = <0xff0000 0x010000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&uart {
+       status = "okay";
+};
+
+&usb {
+       status = "okay";
+};
+
+&usb_phy {
+       status = "okay";
+};
diff --git a/target/linux/ath79/dts/ar9331_hak5_packet-squirrel.dts b/target/linux/ath79/dts/ar9331_hak5_packet-squirrel.dts
new file mode 100644 (file)
index 0000000..d19214d
--- /dev/null
@@ -0,0 +1,64 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9331_hak5_lan-turtle.dtsi"
+
+/ {
+       model = "Hak5 Packet Squirrel";
+       compatible = "hak5,packet-squirrel", "qca,ar9331";
+
+       aliases {
+               led-boot = &led_system_green;
+               led-failsafe = &led_system_green;
+               led-running = &led_system_green;
+               led-upgrade = &led_system_green;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_system_green: system-green {
+                       label = "packet-squirrel:green:system";
+                       gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+               };
+
+               system-blue {
+                       label = "packet-squirrel:blue:system";
+                       gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
+               };
+
+               system-red {
+                       label = "packet-squirrel:red:system";
+                       gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&keys {
+       sw1 {
+               label = "sw1";
+               linux,code = <BTN_0>;
+               gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+               debounce-interval = <60>;
+       };
+
+       sw2 {
+               label = "sw2";
+               linux,code = <BTN_1>;
+               gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+               debounce-interval = <60>;
+       };
+
+       sw3 {
+               label = "sw3";
+               linux,code = <BTN_2>;
+               gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
+               debounce-interval = <60>;
+       };
+
+       sw4 {
+               label = "sw4";
+               linux,code = <BTN_3>;
+               gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
+               debounce-interval = <60>;
+       };
+};
index 3572afa5fdc2ede185701cbd9901ba2b56b8277d..89795031e08e695eb7f21758ffaa16c391a312ed 100755 (executable)
@@ -503,7 +503,8 @@ ath79_setup_macs()
        enterasys,ws-ap3705i)
                label_mac=$(mtd_get_mac_ascii u-boot-env0 ethaddr)
                ;;
-       hak5,lan-turtle)
+       hak5,lan-turtle|\
+       hak5,packet-squirrel)
                label_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
                ;;
        iodata,etg3-r)
index 25d0f5b8bad74dc34e6ad5be9b84da5c10d96854..a5f282be9bf0a906946627ba5deae1fb78f662d3 100644 (file)
@@ -1032,6 +1032,19 @@ define Device/hak5_lan-turtle
 endef
 TARGET_DEVICES += hak5_lan-turtle
 
+define Device/hak5_packet-squirrel
+  $(Device/tplink-16mlzma)
+  SOC := ar9331
+  DEVICE_VENDOR := Hak5
+  DEVICE_MODEL := Packet Squirrel
+  TPLINK_HWID := 0x5351524c
+  IMAGES := sysupgrade.bin
+  DEVICE_PACKAGES := kmod-usb-chipidea2 -iwinfo -kmod-ath9k -swconfig \
+       -uboot-envtools -wpad-basic-wolfssl
+  SUPPORTED_DEVICES += packet-squirrel
+endef
+TARGET_DEVICES += hak5_packet-squirrel
+
 define Device/iodata_etg3-r
   SOC := ar9342
   DEVICE_VENDOR := I-O DATA