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@gmail.com>
This commit is contained in:
Piotr Dymacz 2020-08-19 14:20:54 +02:00
parent b4e9e81002
commit a2f3a58607
4 changed files with 139 additions and 0 deletions

View File

@ -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@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";
};

View File

@ -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"
;;

View File

@ -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)

View File

@ -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