[openwrt/openwrt] ath79: add support for Hak5 LAN Turtle

LEDE Commits lede-commits at lists.infradead.org
Sun Sep 27 19:30:35 EDT 2020


pepe2k pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/a2f3a586073a0d3bc3a3e16fcd67ca099cf00eab

commit a2f3a586073a0d3bc3a3e16fcd67ca099cf00eab
Author: Piotr Dymacz <pepe2k at gmail.com>
AuthorDate: Wed Aug 19 14:20:54 2020 +0200

    ath79: add support for Hak5 LAN Turtle
    
    Hak5 LAN Turtle is an "USB Ethernet Adapter" shaped device dedicated for
    sysadmins and pentesters. This device is based on Atheros AR9331 but it
    lacks WiFi. Support for it was first introduced in 950b278c81 (ar71xx).
    
    Two different versions of this device exist and it's up to the user to
    install required drivers (generic image supports only common features):
    
    - LAN Turtle 3G with Quectel UG96 3G modem
    - LAN Turtle SD with microSD card reader (Alcorlink AU6435R)
    
    Specifications:
    
    - Atheros AR9331
    - 400/400/200 MHz (CPU/DDR/AHB)
    - 64 MB of RAM (DDR2)
    - 16 MB of flash (SPI NOR)
    - 1x RJ45 10/100 Mbps Ethernet (AR9331)
    - 1x USB 2.0 to 10/100 Ethernet bridge (Realtek RTL8152B)
    - 2x LED (power, system), 1x button (inside, on the PCB)
    - USB 2.0 Type-A plug for power and RTL8152B
    
    Flash instruction:
    
    You can use sysupgrade image directly in vendor firmware which is based
    on OpenWrt/LEDE.
    
    Signed-off-by: Piotr Dymacz <pepe2k at gmail.com>
---
 target/linux/ath79/dts/ar9331_hak5_lan-turtle.dts  | 120 +++++++++++++++++++++
 .../ath79/generic/base-files/etc/board.d/01_leds   |   3 +
 .../generic/base-files/etc/board.d/02_network      |   3 +
 target/linux/ath79/image/generic.mk                |  13 +++
 4 files changed, 139 insertions(+)

diff --git a/target/linux/ath79/dts/ar9331_hak5_lan-turtle.dts b/target/linux/ath79/dts/ar9331_hak5_lan-turtle.dts
new file mode 100644
index 0000000000..e6f083482f
--- /dev/null
+++ b/target/linux/ath79/dts/ar9331_hak5_lan-turtle.dts
@@ -0,0 +1,120 @@
+// 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>
+
+/ {
+	model = "Hak5 LAN Turtle";
+	compatible = "hak5,lan-turtle", "qca,ar9331";
+
+	aliases {
+		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 {
+		compatible = "gpio-leds";
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&switch_led_disable_pins>;
+
+		led_system: system {
+			label = "lan-turtle:orange:system";
+			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&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 at 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 at 0 {
+				label = "u-boot";
+				reg = <0x000000 0x020000>;
+				read-only;
+			};
+
+			partition at 20000 {
+				label = "firmware";
+				reg = <0x020000 0xfd0000>;
+				compatible = "tplink,firmware";
+			};
+
+			partition at ff0000 {
+				label = "art";
+				reg = <0xff0000 0x010000>;
+				read-only;
+			};
+		};
+	};
+};
+
+&uart {
+	status = "okay";
+};
+
+&usb {
+	status = "okay";
+};
+
+&usb_phy {
+	status = "okay";
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index e208ac65f4..9f6fd00031 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -205,6 +205,9 @@ glinet,gl-mifi)
 glinet,gl-x750)
 	ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1"
 	;;
+hak5,lan-turtle)
+	ucidef_set_led_netdev "wan" "WAN" "$boardname:orange:system" "eth1"
+	;;
 meraki,mr16)
 	ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0"
 	;;
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 c962170710..3572afa5fd 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
@@ -503,6 +503,9 @@ ath79_setup_macs()
 	enterasys,ws-ap3705i)
 		label_mac=$(mtd_get_mac_ascii u-boot-env0 ethaddr)
 		;;
+	hak5,lan-turtle)
+		label_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
+		;;
 	iodata,etg3-r)
 		lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
 		wan_mac=$(macaddr_add "$lan_mac" -1)
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index b5af99971d..25d0f5b8ba 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -1019,6 +1019,19 @@ define Device/glinet_gl-x750
 endef
 TARGET_DEVICES += glinet_gl-x750
 
+define Device/hak5_lan-turtle
+  $(Device/tplink-16mlzma)
+  SOC := ar9331
+  DEVICE_VENDOR := Hak5
+  DEVICE_MODEL := LAN Turtle
+  TPLINK_HWID := 0x5348334c
+  IMAGES := sysupgrade.bin
+  DEVICE_PACKAGES := kmod-usb-chipidea2 -iwinfo -kmod-ath9k -swconfig \
+	-uboot-envtools -wpad-basic-wolfssl
+  SUPPORTED_DEVICES += lan-turtle
+endef
+TARGET_DEVICES += hak5_lan-turtle
+
 define Device/iodata_etg3-r
   SOC := ar9342
   DEVICE_VENDOR := I-O DATA



More information about the lede-commits mailing list