From: Alexandru Gagniuc Date: Thu, 24 Apr 2025 00:37:01 +0000 (-0500) Subject: qualcommax: ipq60xx: add TP-Link EAP625-Outdoor HD v1 support X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F18584%2Fhead;p=thirdparty%2Fopenwrt.git 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 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 setenv ipaddr 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 Link: https://github.com/openwrt/openwrt/pull/18584 Signed-off-by: Robert Marko --- diff --git a/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx b/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx index 7a89f78e792..0bfc7e7cf80 100644 --- a/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx +++ b/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx @@ -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) diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index b33e261ef21..8b55b5faba6 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -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)) diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-eap625-outdoor-hd-v1.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-eap625-outdoor-hd-v1.dts new file mode 100644 index 00000000000..bb39aaef0cc --- /dev/null +++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-eap625-outdoor-hd-v1.dts @@ -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"; +}; diff --git a/target/linux/qualcommax/image/ipq60xx.mk b/target/linux/qualcommax/image/ipq60xx.mk index 5c630df3a6e..996a33d8ef1 100644 --- a/target/linux/qualcommax/image/ipq60xx.mk +++ b/target/linux/qualcommax/image/ipq60xx.mk @@ -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) diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network index a3a86490de9..11ed74bda59 100644 --- a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network +++ b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network @@ -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 ;; diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata b/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata index 8102524e301..b78a846372a 100644 --- a/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata +++ b/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata @@ -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 diff --git a/target/linux/qualcommax/ipq60xx/base-files/lib/preinit/09_mount_factory_data b/target/linux/qualcommax/ipq60xx/base-files/lib/preinit/09_mount_factory_data index 488267a01b1..a37050f4079 100644 --- a/target/linux/qualcommax/ipq60xx/base-files/lib/preinit/09_mount_factory_data +++ b/target/linux/qualcommax/ipq60xx/base-files/lib/preinit/09_mount_factory_data @@ -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 diff --git a/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh index 45886884050..58bd08deb1b 100644 --- a/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh @@ -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)