qualcommax: ipq60xx: add TP-Link EAP625-Outdoor HD v1 support

TP-Link EAP625-Outdoor HD is a 802.11ax AP claiming AX1800 support.
It is wall or pole mountable, and rated for outdoor use. It can only
be powered via PoE.

Hardware-wise, it is very similar to the older EAP610-Outdoor model.
Software-wise, I couldn't find a difference other than the board
data files, and device name. For this reason, the majority of the
devicetree from the EAP610-Outdoor is reused.

This device currently comes in a "v1", and "v1.6" version. The
"support-list" of the vendor firmware does not have a distinction
between these versions. This commit was tested on a 'V1.6" device.

Specifications:
---------------
* CPU: Qualcomm IPQ6018 Quad core Cortex-A53
* RAM: 512 MB
* Storage: 128MB NAND
* Ethernet:
  * Gigabit RJ45 port with PoE input
* WLAN:
  * 2.4GHz/5GHz
* LEDs:
  * Multi-color System LED (Green/Amber)
* Buttons:
  * 1x Reset
* UART: 4-pin unpopulated header
  * 1.8 V level, Pinout 1 - TX, 2 - RX, 3 - GND, 4 - 1.8V

Installation:
=============

Web UI method
-------------

Set up the device using the vendor's web UI. After that go to
Management->SSH and enable the "SSH Login" checkbox. Select "Save".
The connect to the machine via SSH:

ssh -o hostkeyalgorithms=ssh-rsa <ip_of_device>

Disable signature verification:

cliclientd stopcs

Rename the "-web-ui-factory" image to something less than 63
characters, maintaining the ".bin" suffix.
 * Go to System -> Firmware Update.
 * Under "New Firmware File", click "Browse" and select the image
 * Select "Update" and confirm by clicking "OK".

If the update fails, the web UI should show an error message.
Otherwise, the device should reboot into OpenWRT.

NOTE: If ssh continues to complain that "no matching host key type
found. Their offer: ssh-rsa,ssh-dss" it likely means that yor distro
has completely disabled deprecated siphers in ssh. In that case, run
the ssh command from a docker container of an older distro.

TFTP method
-----------

To flash via tftp, first place the initramfs image on the TFTP server.

setenv serverip <ip of tftp server>
setenv ipaddr <ip in same subnet as tftp server>
tftpboot tplink_eap625-outdoor-hd-v1-initramfs-uImage.itb
bootm

This should boot OpenWRT. Once booted, flash the sysupgrade.bin image
using either luci or the commandline.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18584
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
Alexandru Gagniuc 2025-04-23 19:37:01 -05:00 committed by Robert Marko
parent c75223338f
commit 51c1ea08d0
8 changed files with 51 additions and 9 deletions

View file

@ -29,7 +29,8 @@ netgear,wax214|\
netgear,wax610|\
netgear,wax610y|\
tplink,eap610-outdoor|\
tplink,eap623od-hd-v1)
tplink,eap623od-hd-v1|\
tplink,eap625-outdoor-hd-v1)
ubootenv_add_mtd "0:appsblenv" "0x0" "0x40000" "0x20000"
;;
yuncore,fap650)

View file

@ -6,9 +6,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git
PKG_SOURCE_DATE:=2025-04-22
PKG_SOURCE_VERSION:=acf37292d2c1c27930b4d9ba58276b599706910d
PKG_MIRROR_HASH:=1068b8ea938bfb0cd72bd48ef329e885a283e91f2ae864bfba9171c729e3d308
PKG_SOURCE_DATE:=2025-05-13
PKG_SOURCE_VERSION:=dae5a57ea2c28eea409c51cdcb1b57ecbb366a26
PKG_MIRROR_HASH:=9a9a63cc41a8d992658149bf6a6dd2287d022cd8829a4c4a62a4a4449c88f31a
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/package.mk
@ -72,6 +72,7 @@ ALLWIFIBOARDS:= \
tplink_eap610-outdoor \
tplink_eap620hd-v1 \
tplink_eap623od-hd-v1 \
tplink_eap625-outdoor-hd-v1 \
tplink_eap660hd-v1 \
wallys_dr40x9 \
xiaomi_ax3600 \
@ -224,6 +225,7 @@ $(eval $(call generate-ipq-wifi-package,tplink_deco-x80-5g,TP-Link Deco X80-5G))
$(eval $(call generate-ipq-wifi-package,tplink_eap610-outdoor,TPLink EAP610-Outdoor))
$(eval $(call generate-ipq-wifi-package,tplink_eap620hd-v1,TP-Link EAP620 HD v1))
$(eval $(call generate-ipq-wifi-package,tplink_eap623od-hd-v1,TP-Link EAP623-Outdoor HD v1))
$(eval $(call generate-ipq-wifi-package,tplink_eap625-outdoor-hd-v1,TP-Link EAP625-Outdoor HD v1))
$(eval $(call generate-ipq-wifi-package,tplink_eap660hd-v1,TP-Link EAP660 HD v1))
$(eval $(call generate-ipq-wifi-package,wallys_dr40x9,Wallys DR40X9))
$(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600))

View file

@ -0,0 +1,14 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ipq6018-tplink-eap6xx-outdoor.dtsi"
/ {
model = "TP-Link EAP625-Outdoor HD v1";
compatible = "tplink,eap625-outdoor-hd-v1", "qcom,ipq6018";
};
&wifi {
qcom,ath11k-calibration-variant = "TP-Link-EAP625-Outdoor-HD-v1";
};

View file

@ -183,6 +183,26 @@ define Device/tplink_eap623od-hd-v1
endef
TARGET_DEVICES += tplink_eap623od-hd-v1
define Device/tplink_eap625-outdoor-hd-v1
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := TP-Link
DEVICE_MODEL := EAP625-Outdoor HD v1 and v1.6
BLOCKSIZE := 128k
PAGESIZE := 2048
SOC := ipq6018
DEVICE_PACKAGES := ipq-wifi-tplink_eap625-outdoor
IMAGES += web-ui-factory.bin
IMAGE/web-ui-factory.bin := append-ubi | tplink-image-2022
TPLINK_SUPPORT_STRING := SupportList:\r\n \
EAP625-Outdoor HD(TP-Link|UN|AX1800-D):1.0\r\n \
EAP625-Outdoor HD(TP-Link|CA|AX1800-D):1.0\r\n \
EAP625-Outdoor HD(TP-Link|AU|AX1800-D):1.0\r\n \
EAP625-Outdoor HD(TP-Link|KR|AX1800-D):1.0
endef
TARGET_DEVICES += tplink_eap625-outdoor-hd-v1
define Device/yuncore_fap650
$(call Device/FitImage)
$(call Device/UbiFit)

View file

@ -33,7 +33,8 @@ ipq60xx_setup_interfaces()
netgear,wax610|\
netgear,wax610y|\
tplink,eap610-outdoor|\
tplink,eap623od-hd-v1)
tplink,eap623od-hd-v1|\
tplink,eap625-outdoor-hd-v1)
ucidef_set_interface_lan "lan" "dhcp"
;;
*)
@ -56,7 +57,8 @@ ipq60xx_setup_macs()
label_mac=$lan_mac
;;
tplink,eap610-outdoor|\
tplink,eap623od-hd-v1)
tplink,eap623od-hd-v1|\
tplink,eap625-outdoor-hd-v1)
label_mac=$(get_mac_binary /tmp/factory_data/default-mac 0)
lan_mac=$label_mac
;;

View file

@ -51,7 +51,8 @@ case "$FIRMWARE" in
ath11k_set_macflag
;;
tplink,eap610-outdoor|\
tplink,eap623od-hd-v1)
tplink,eap623od-hd-v1|\
tplink,eap625-outdoor-hd-v1)
caldata_from_file "/tmp/factory_data/radio" 0 0x10000
label_mac=$(get_mac_binary /tmp/factory_data/default-mac 0)
ath11k_patch_mac $label_mac 1

View file

@ -8,7 +8,8 @@ preinit_mount_factory_data() {
case $(board_name) in
tplink,eap610-outdoor|\
tplink,eap623od-hd-v1)
tplink,eap623od-hd-v1|\
tplink,eap625-outdoor-hd-v1)
mtd_path=$(find_mtd_chardev "factory_data")
ubiattach --dev-path="$mtd_path" --devn=1
mkdir /tmp/factory_data

View file

@ -134,7 +134,8 @@ platform_do_upgrade() {
nand_do_upgrade "$1"
;;
tplink,eap610-outdoor|\
tplink,eap623od-hd-v1)
tplink,eap623od-hd-v1|\
tplink,eap625-outdoor-hd-v1)
tplink_do_upgrade "$1"
;;
yuncore,fap650)