From patchwork Mon Jan 4 17:27:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Fertser X-Patchwork-Id: 1422196 X-Patchwork-Delegate: daniel@makrotopia.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=UthX2llL; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=ARUqSG2G; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4D8jM809Fmz9sSs for ; Tue, 5 Jan 2021 04:30:28 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=HgJZ34fLPl5rxvTs3Gj850FJTIZBHOyssVsRE6eSwqA=; b=UthX2llLheKj3HoBEAtD/jL1h1 VP0VmrgSM0uKISXHfIxBakdSC02IhDIeccMDGV2lg4bY7hDvStWjZ537Hu1e/o4qZP27TsF0U0dNt PYoLBzi3pIyGraz++7vFU0sPB6ySSoIK7PNFnEYhMWujMuGf7cIUAEfa5Ol80eD18cCrC7WZ4W7dt QaNQ2EqGpRvVRIHtrKnn6k1z4+G5ytVYBITgxveVEvMvFuyLNFH0kM4+S3D49fEBmB+BMjWjbMD0v UX0IzghRFJQozdm+tMPS8A+r+Ri04McK+rM6mmnMEhSVLsA1NgWHconRCgihVmqlJxKeNqXdb06m/ qQJ698Xg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kwTea-0002fw-OO; Mon, 04 Jan 2021 17:28:24 +0000 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kwTeW-0002fP-Ce for openwrt-devel@lists.openwrt.org; Mon, 04 Jan 2021 17:28:21 +0000 Received: by mail-lf1-x131.google.com with SMTP id y19so65996876lfa.13 for ; Mon, 04 Jan 2021 09:28:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=vouYZIWh7GjNVyGeu5IwYX59n9NaTKC6pVhzZebzf+k=; b=ARUqSG2GPIuVZMuGvZzqoBNE00axg2vynfDTGTQIElGZO8X9o8VdIAL4iv16TynTTL hbzAJW5If480RzAxaxURzNexD0I0KbDGNCz6JueTDtCN+qKyxBRfe6/jon1GnQgy8OcO j4H2NE/kjza7S8iXl/59XJ8i/SRezNua4yfLFFXwhKTLIvTZofTM8So9M1tmwlwdFC2R 02wqidYlWP9UjkLiDnLQWUbmZItYPsY8B9IqSqcDsIr0rPXq2bLmjF/1cRscg5cuds1N cquc09La4xszl7KN8pEwseQZdGZrY1Q914Xa5indl7YNUrEvABBWNFhimQI3masiWQK2 DMzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=vouYZIWh7GjNVyGeu5IwYX59n9NaTKC6pVhzZebzf+k=; b=lw5h7Se9xLTUkfwh/SuqDz69ivWUdSMAHA8q/1YogurJOKeqWJ6u3txiaAjsRpN2BT og9xfiGo9lJtvr3pqS4Z+eXYnXA4BXqHR7rDF7fOjAUPlaty77rKR3nIQu01ExNLVJqy aJqc75MSPx9ZoJtI1F3yyBv6S8DXqSpo6r5YLOPjcrVCY69hykjKRkqHfGbDAMi7Kxeb PemoXn6rOnwSbCU9lVNyWLcMXqOz7U3vbQKEpJmjWbzpo/JNcKFAbNYa/gPo+qmOqISe k1Uo8lCGbgd8YVj0WnIeRCTWy1uIv/y9UNnt+Up+5eqVoarWWHbnNilOGKR3oRYv7ozg VR9Q== X-Gm-Message-State: AOAM532fOYuXBbJ7Oi/xJ2+oE86f2QgYEgFUwnrD38APuBh/r8PJiIYL Z5MsePJfRvrgTzlCneSBJ1U2eSGbJ2s= X-Google-Smtp-Source: ABdhPJz2UDGm2DAUAGN+TWnUjkpOOFZgVLMtCCTdHMAwazh5DKab1HI0rIxXtN7Hw5LnQ9dsTco1Vw== X-Received: by 2002:a05:651c:124c:: with SMTP id h12mr37730574ljh.294.1609781296317; Mon, 04 Jan 2021 09:28:16 -0800 (PST) Received: from home.paul.comp (paulfertser.info. [2001:470:26:54b:226:9eff:fe70:80c2]) by smtp.gmail.com with ESMTPSA id p4sm7350248lfh.17.2021.01.04.09.28.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Jan 2021 09:28:15 -0800 (PST) Received: from home.paul.comp (home.paul.comp [IPv6:0:0:0:0:0:0:0:1]) by home.paul.comp (8.15.2/8.15.2/Debian-14~deb10u1) with ESMTP id 104HSCbA031366; Mon, 4 Jan 2021 20:28:13 +0300 Received: (from paul@localhost) by home.paul.comp (8.15.2/8.15.2/Submit) id 104HSCeo031365; Mon, 4 Jan 2021 20:28:12 +0300 From: Paul Fertser To: openwrt-devel@lists.openwrt.org Subject: [PATCH v2 1/2] mac80211: add 802.11ad-support Date: Mon, 4 Jan 2021 20:27:49 +0300 Message-Id: <20210104172750.31325-1-fercerpav@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210104_122820_448137_62E0EC9C X-CRM114-Status: GOOD ( 11.62 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:131 listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [fercerpav[at]gmail.com] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Gary Cooper Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org From: Gary Cooper This adds some logic to properly populate defaults in /etc/config/wireless and support for WPA*-GCMP. TP-Link AD7200, Mikrotik WAP60g, LHGG-60ad, etc Signed-off-by: Gary Cooper --- package/base-files/files/sbin/wifi | 1 + package/kernel/mac80211/files/lib/wifi/mac80211.sh | 6 ++++++ package/network/services/hostapd/files/hostapd.sh | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/package/base-files/files/sbin/wifi b/package/base-files/files/sbin/wifi index a8b4451c60..75759b94f3 100755 --- a/package/base-files/files/sbin/wifi +++ b/package/base-files/files/sbin/wifi @@ -79,6 +79,7 @@ wifi_fixup_hwmode() { case "$hwmode" in 11bg) hwmode=bg;; 11a) hwmode=a;; + 11ad) hwmode=ad;; 11b) hwmode=b;; 11g) hwmode=g;; 11n*) diff --git a/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/package/kernel/mac80211/files/lib/wifi/mac80211.sh index c0fbfbe5a8..3e99f06693 100644 --- a/package/kernel/mac80211/files/lib/wifi/mac80211.sh +++ b/package/kernel/mac80211/files/lib/wifi/mac80211.sh @@ -88,6 +88,12 @@ detect_mac80211() { iw phy "$dev" info | grep -q 'VHT Capabilities' && htmode="VHT80" } + iw phy "$dev" info | grep -q '\* 5.... MHz \[' && { + mode_band="ad" + channel=$(iw phy "$dev" info | grep '\* 5.... MHz \[' | grep '(disabled)' -v -m 1 | sed 's/[^[]*\[\|\|\].*//g') + iw phy "$dev" info | grep -q 'Capabilities:' && htmode="HT20" + } + [ -n "$htmode" ] && ht_capab="set wireless.radio${devidx}.htmode=$htmode" path="$(mac80211_phy_to_path "$dev")" diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh index 80e1f7cedf..883b7e0e05 100644 --- a/package/network/services/hostapd/files/hostapd.sh +++ b/package/network/services/hostapd/files/hostapd.sh @@ -1312,6 +1312,14 @@ wpa_supplicant_add_network() { ;; esac + case "$wpa_cipher" in + GCMP) + append network_data "pairwise=GCMP" "$N$T" + append network_data "group=GCMP" "$N$T" + ;; + *) ;; + esac + [ "$mode" = mesh ] || { case "$wpa" in 1) From patchwork Mon Jan 4 17:27:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Fertser X-Patchwork-Id: 1422195 X-Patchwork-Delegate: daniel@makrotopia.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=HEKxeCx2; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=MlfglEM+; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4D8jLz2swsz9sSs for ; Tue, 5 Jan 2021 04:30:19 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Xg3ZOkad7ffZgDhPyfs5kAfwkL1WPt3tO6U62fvmIdk=; b=HEKxeCx2qJgoXM1292lPatCqN 4BzwfNNLOZ4CCUKK1bh0o7GPcOxcoQa37icpKiyVQH0h1q5tN6BWa3mO7IW8Dv4cDcom3wYYFUV08 zFzYqHszjon9YMurY+3mRGPXE+O3al30FOHW3pfuCpZ4UoMN2uAhCA0rRY5XAgLUekLPJMAnhqZY3 /a/lyuAjXfPHDujv95s5UHdUr/bzffZ+vhAI6ScxDng5axx8mpI7L0ZAKXoG9VojBQmE/LnanpZRG HX46LQVhOZT4w0zqhhKRYOpKKahc908jdQOTvDyz0AN+p19SeViOskwnLISNmZu7xcIsPSL0ftTyV 3rGOB139w==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kwTee-0002gj-Mj; Mon, 04 Jan 2021 17:28:28 +0000 Received: from mail-lf1-x12f.google.com ([2a00:1450:4864:20::12f]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kwTeZ-0002fx-Vy for openwrt-devel@lists.openwrt.org; Mon, 04 Jan 2021 17:28:25 +0000 Received: by mail-lf1-x12f.google.com with SMTP id o19so66242295lfo.1 for ; Mon, 04 Jan 2021 09:28:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RR/W6laiKPyRO2eGxkqy+0PM5IVSPLoJrNqxPGNKF3Y=; b=MlfglEM+CnST+0nFrlSWrSXdYp7LiqAclQLOMUFLVJdyddbx47jDjk3YrwbIlWL3lZ ZadgdNY4yPXpMui4j8mDiz1g36VA2XV4ONmgphgfA5c+hCHOT9De1/4fGyaHhbGXA3dE r5ixzyvmd+2VsMmBMEXgMtGNK7FBY4Qgdh2WCpGS8Zfw2J+Ore8s81kpfAGfNrkxvv2p tFvIultob9WZaMv7SfMUX1alIEZzfYCBUn3M72UzyNwfBPyaZ3R8xsjAhLmAK4O5Z+pw FqVP5U0u9rOJK79Fj6eWCATzJaz9a0qyTTfY371C8JCllYm+bMnqTV3yQiqeZ6B04jfU Z+TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RR/W6laiKPyRO2eGxkqy+0PM5IVSPLoJrNqxPGNKF3Y=; b=dSsQ382JcH6Kbxnqwv96C/O61932dgCk1J0z+rpzDQpTcEOdwb/wa2QQ+jJSy02gzD LtsUbqzDrC83wTulgl3xHwguBs7DynS7k09vdO4ZIFpU3j0mNYUQBlhlitcumaZDi0f5 2P7pYn7WlZ7+Bcbtjuu9EpTUJxdWDRz2JcT7s4tU/Vz6rZg1LZidJHG7FdA2hxCP3dQy 20KqggkMop8trF5hakq3HaJCU7QdrNwcukwIwIYLS5vRGwWNWlI0bXe75mkGTgiGlnOn ma27CLIdZGonlg8UCW04x7pVgPn1TiW+rkHPo42UFaFwr0oIZRqCMAdMrOsjeCtW4k8G Rdvw== X-Gm-Message-State: AOAM531IVgFH/4H4yqV1Z8aR6t6KhEhm3kNa+1SeD/1QGxFEsTroY1AQ Gs1ST2ci4wEWPBVE2Z9K11949tCrxo0= X-Google-Smtp-Source: ABdhPJzNYIM8goCVvpQBb8F5EzA4Zp1QSSZPFSY/lyZcj2V9EOAK6P8ETrbGZOY4q8GWi3jTJTLjKw== X-Received: by 2002:a05:6512:2f7:: with SMTP id m23mr24038110lfq.517.1609781302020; Mon, 04 Jan 2021 09:28:22 -0800 (PST) Received: from home.paul.comp (paulfertser.info. [2001:470:26:54b:226:9eff:fe70:80c2]) by smtp.gmail.com with ESMTPSA id z26sm7364634lfi.54.2021.01.04.09.28.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Jan 2021 09:28:21 -0800 (PST) Received: from home.paul.comp (home.paul.comp [IPv6:0:0:0:0:0:0:0:1]) by home.paul.comp (8.15.2/8.15.2/Debian-14~deb10u1) with ESMTP id 104HSIXD031370; Mon, 4 Jan 2021 20:28:19 +0300 Received: (from paul@localhost) by home.paul.comp (8.15.2/8.15.2/Submit) id 104HSIR5031369; Mon, 4 Jan 2021 20:28:18 +0300 From: Paul Fertser To: openwrt-devel@lists.openwrt.org Subject: [PATCH v2 2/2] ipq806x: add support for TP-Link Talon AD7200 Date: Mon, 4 Jan 2021 20:27:50 +0300 Message-Id: <20210104172750.31325-2-fercerpav@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210104172750.31325-1-fercerpav@gmail.com> References: <20210104172750.31325-1-fercerpav@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210104_122824_069148_68FDEE21 X-CRM114-Status: GOOD ( 17.52 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:12f listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [fercerpav[at]gmail.com] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Gary Cooper Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org From: Gary Cooper Device hardware: https://deviwiki.com/wiki/TP-LINK_AD7200_(Talon) The Talon AD7200 is basically an Archer C2600 with a third PCIe lane and an 802.11ad radio. It looks like the Archers C2600/5400 but the housing is slightly larger. Specifications -------------- - IPQ8064 dual-core 1400MHz - QCA9988 2.4GHz WiFi - QCA9990 5GHz WiFi - QCA9500 60GHz WiFi - 32MB SPI Flash - 512MiB RAM - 5 GBit Ports (QCA8337) Installation ------------ Installation is possible from the OEM web interface. Sysupgrade is possible. TFTP recovery is possible. - Image: AD7200_1.0_tp_recovery.bin Notes - This will be the first 802.11ad device supported by mainline. Signed-off-by: Gary Cooper --- package/firmware/linux-firmware/qca.mk | 8 + package/kernel/mac80211/ath.mk | 13 +- .../ipq806x/base-files/etc/board.d/01_leds | 9 + .../ipq806x/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 2 + .../base-files/lib/upgrade/platform.sh | 1 + .../arch/arm/boot/dts/qcom-ipq8064-ad7200.dts | 440 ++++++++++++++++++ target/linux/ipq806x/image/Makefile | 15 + tools/firmware-utils/src/tplink-safeloader.c | 44 ++ 9 files changed, 532 insertions(+), 1 deletion(-) create mode 100644 target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ad7200.dts diff --git a/package/firmware/linux-firmware/qca.mk b/package/firmware/linux-firmware/qca.mk index 23fcc0905a..71b484d5c7 100644 --- a/package/firmware/linux-firmware/qca.mk +++ b/package/firmware/linux-firmware/qca.mk @@ -37,3 +37,11 @@ define Package/carl9170-firmware/install $(INSTALL_DATA) $(PKG_BUILD_DIR)/carl9170-1.fw $(1)/lib/firmware endef $(eval $(call BuildPackage,carl9170-firmware)) + +Package/wil6210-firmware = $(call Package/firmware-default,wil6210 firmware) +define Package/wil6210-firmware/install + $(INSTALL_DIR) $(1)/lib/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/wil6210.fw $(1)/lib/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/wil6210.brd $(1)/lib/firmware +endef +$(eval $(call BuildPackage,wil6210-firmware)) diff --git a/package/kernel/mac80211/ath.mk b/package/kernel/mac80211/ath.mk index 957c9da939..f8245e24e1 100644 --- a/package/kernel/mac80211/ath.mk +++ b/package/kernel/mac80211/ath.mk @@ -1,6 +1,6 @@ PKG_DRIVERS += \ ath ath5k ath6kl ath6kl-sdio ath6kl-usb ath9k ath9k-common ath9k-htc ath10k \ - carl9170 owl-loader ar5523 + carl9170 wil6210 owl-loader ar5523 PKG_CONFIG_DEPENDS += \ CONFIG_PACKAGE_ATH_DEBUG \ @@ -20,6 +20,7 @@ ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS ATH9K_HTC_DEBUGFS \ ATH10K_DEBUGFS \ CARL9170_DEBUGFS \ + WIL6210_DEBUGFS \ ATH5K_DEBUG \ ATH6KL_DEBUG endif @@ -29,6 +30,7 @@ ifdef CONFIG_PACKAGE_MAC80211_TRACING ATH10K_TRACING \ ATH6KL_TRACING \ ATH_TRACEPOINTS \ + WIL6210_TRACING \ ATH5K_TRACER endif @@ -66,6 +68,7 @@ config-$(call config_package,ath6kl-sdio) += ATH6KL_SDIO config-$(call config_package,ath6kl-usb) += ATH6KL_USB config-$(call config_package,carl9170) += CARL9170 +config-$(call config_package,wil6210) += WIL6210 config-$(call config_package,ar5523) += AR5523 define KernelPackage/ath/config @@ -285,6 +288,14 @@ define KernelPackage/carl9170 AUTOLOAD:=$(call AutoProbe,carl9170) endef +define KernelPackage/wil6210 + $(call KernelPackage/mac80211/Default) + TITLE:=QCA/Wilocity 60g WiFi card wil6210 support + DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +wil6210-firmware + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/wil6210/wil6210.ko + AUTOLOAD:=$(call AutoProbe,wil6210) +endef + define KernelPackage/owl-loader $(call KernelPackage/mac80211/Default) TITLE:=Owl loader for initializing Atheros PCI(e) Wifi chips diff --git a/target/linux/ipq806x/base-files/etc/board.d/01_leds b/target/linux/ipq806x/base-files/etc/board.d/01_leds index fed821663a..a03a056d83 100755 --- a/target/linux/ipq806x/base-files/etc/board.d/01_leds +++ b/target/linux/ipq806x/base-files/etc/board.d/01_leds @@ -39,6 +39,15 @@ netgear,r7800) ucidef_set_led_switch "wan" "WAN" "white:wan" "switch0" "0x20" ucidef_set_led_ide "esata" "eSATA" "white:esata" ;; +tplink,ad7200) + ucidef_set_led_usbport "usb1" "USB 1" "blue:usb_1" "usb1-port1" "usb2-port1" + ucidef_set_led_usbport "usb2" "USB 2" "blue:usb_3" "usb3-port1" "usb4-port1" + ucidef_set_led_switch "wan" "wan" "blue:wan" "switch0" "0x02" + ucidef_set_led_switch "lan" "lan" "blue:lan" "switch0" "0x3c" + ucidef_set_led_wlan "wlan2g" "wlan2g" "blue:wlan2g" "phy2tpt" + ucidef_set_led_wlan "wlan5g" "wlan5g" "blue:wlan5g" "phy1tpt" + ucidef_set_led_netdev "wlan60g" "wlan60g" "blue:wlan60g" "wlan0" + ;; tplink,c2600) ucidef_set_led_usbport "usb1" "USB 1" "white:usb_2" "usb1-port1" "usb2-port1" ucidef_set_led_usbport "usb2" "USB 2" "white:usb_4" "usb3-port1" "usb4-port1" diff --git a/target/linux/ipq806x/base-files/etc/board.d/02_network b/target/linux/ipq806x/base-files/etc/board.d/02_network index 10b2ec0148..fbf56c5e0c 100755 --- a/target/linux/ipq806x/base-files/etc/board.d/02_network +++ b/target/linux/ipq806x/base-files/etc/board.d/02_network @@ -51,6 +51,7 @@ nec,wg2600hp3) "2:lan" "3:lan" "4:lan" "5:lan" "0@eth1" "1:wan" "6@eth0" ;; netgear,r7800 |\ +tplink,ad7200 |\ tplink,c2600) ucidef_add_switch "switch0" \ "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "6@eth1" "5:wan" "0@eth0" diff --git a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 8788fc92f6..3befc40630 100644 --- a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -35,6 +35,7 @@ case "$FIRMWARE" in caldata_extract "art" 0x1000 0x2f20 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x6) +1) ;; + tplink,ad7200 |\ tplink,c2600) caldata_extract "radio" 0x1000 0x2f20 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary default-mac 0x8) -1) @@ -74,6 +75,7 @@ case "$FIRMWARE" in caldata_extract "art" 0x5000 0x2f20 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x6) +2) ;; + tplink,ad7200 |\ tplink,c2600) caldata_extract "radio" 0x5000 0x2f20 ath10k_patch_mac $(mtd_get_mac_binary default-mac 0x8) diff --git a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh index f5d6c5d55d..4dc612492c 100644 --- a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh @@ -43,6 +43,7 @@ platform_do_upgrade() { linksys,ea8500) platform_do_upgrade_linksys "$1" ;; + tplink,ad7200 |\ tplink,c2600) PART_NAME="os-image:rootfs" MTD_CONFIG_ARGS="-s 0x200000" diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ad7200.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ad7200.dts new file mode 100644 index 0000000000..e5bdc32114 --- /dev/null +++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ad7200.dts @@ -0,0 +1,440 @@ +//SPDX-License-Identifier: GPL-2.0-or-later OR MIT +#include "qcom-ipq8064-v2.0.dtsi" + +#include + +/ { + model = "TP-Link Talon AD7200"; + compatible = "tplink,ad7200", "qcom,ipq8064"; + + memory@0 { + reg = <0x42000000 0x1e000000>; + device_type = "memory"; + }; + + aliases { + mdio-gpio0 = &mdio0; + + led-boot = &power; + led-failsafe = &power; + led-running = &power; + led-upgrade = &power; + label-mac-device = &gmac2; + }; + + keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + wifi { + label = "wifi"; + gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + reset { + label = "reset"; + gpios = <&qcom_pinmux 7 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + wps { + label = "wps"; + gpios = <&qcom_pinmux 67 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + ledgeneral { + label = "ledswitch"; + gpios = <&qcom_pinmux 53 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; + + lan { + label = "blue:lan"; + gpios = <&qcom_pinmux 2 GPIO_ACTIVE_HIGH>; + }; + + usb1 { + label = "blue:usb_1"; + gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>; + }; + + usb3 { + label = "blue:usb_3"; + gpios = <&qcom_pinmux 16 GPIO_ACTIVE_HIGH>; + }; + + wps { + label = "blue:wps"; + gpios = <&qcom_pinmux 55 GPIO_ACTIVE_HIGH>; + }; + + wan_orange { + label = "orange:wan"; + gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>; + }; + + wan_blue { + label = "blue:wan"; + gpios = <&qcom_pinmux 33 GPIO_ACTIVE_LOW>; + }; + + power: status { + label = "blue:status"; + gpios = <&qcom_pinmux 66 GPIO_ACTIVE_HIGH>; + }; + + wlan2g { + label = "blue:wlan2g"; + gpios = <&qcom_pinmux 17 GPIO_ACTIVE_HIGH>; + + }; + + wlan5g { + label = "blue:wlan5g"; + gpios = <&qcom_pinmux 15 GPIO_ACTIVE_HIGH>; + + }; + + wlan60g { + label = "blue:wlan60g"; + gpios = <&qcom_pinmux 56 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&qcom_pinmux { + button_pins: button_pins { + mux { + pins = "gpio53", "gpio54", "gpio67"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + led_pins: led_pins { + mux { + pins = "gpio2", "gpio8", "gpio15", "gpio16", "gpio17", "gpio26", + "gpio33", "gpio55", "gpio56", "gpio66"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + spi_pins: spi_pins { + mux { + pins = "gpio18", "gpio19", "gpio21"; + function = "gsbi5"; + bias-pull-down; + }; + + data { + pins = "gpio18", "gpio19"; + drive-strength = <10>; + }; + + cs { + pins = "gpio20"; + function = "gpio"; + drive-strength = <10>; + bias-pull-up; + }; + + clk { + pins = "gpio21"; + drive-strength = <12>; + }; + }; + + usb0_pwr_en_pin: usb0_pwr_en_pin { + mux { + pins = "gpio25"; + function = "gpio"; + drive-strength = <10>; + bias-pull-up; + output-high; + }; + }; + + usb1_pwr_en_pin: usb1_pwr_en_pin { + mux { + pins = "gpio23"; + function = "gpio"; + drive-strength = <10>; + bias-pull-up; + output-high; + }; + }; +}; + +&gsbi5 { + qcom,mode = ; + status = "okay"; + + spi4: spi@1a280000 { + status = "okay"; + + pinctrl-0 = <&spi_pins>; + pinctrl-names = "default"; + + cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>; + + m25p80@0 { + compatible = "jedec,spi-nor"; + #address-cells = <1>; + #size-cells = <1>; + spi-max-frequency = <50000000>; + reg = <0>; + + SBL1@0 { + label = "SBL1"; + reg = <0x0 0x20000>; + read-only; + }; + + MIBIB@20000 { + label = "MIBIB"; + reg = <0x20000 0x20000>; + read-only; + }; + + SBL2@40000 { + label = "SBL2"; + reg = <0x40000 0x20000>; + read-only; + }; + + SBL3@60000 { + label = "SBL3"; + reg = <0x60000 0x30000>; + read-only; + }; + + DDRCONFIG@90000 { + label = "DDRCONFIG"; + reg = <0x90000 0x10000>; + read-only; + }; + + SSD@a0000 { + label = "SSD"; + reg = <0xa0000 0x10000>; + read-only; + }; + + TZ@b0000 { + label = "TZ"; + reg = <0xb0000 0x30000>; + read-only; + }; + + RPM@e0000 { + label = "RPM"; + reg = <0xe0000 0x20000>; + read-only; + }; + + fs-uboot@100000 { + label = "fs-uboot"; + reg = <0x100000 0x70000>; + read-only; + }; + + uboot-env@170000 { + label = "uboot-env"; + reg = <0x170000 0x40000>; + read-only; + }; + + radio@1b0000 { + label = "radio"; + reg = <0x1b0000 0x40000>; + read-only; + }; + + os-image@1f0000 { + label = "os-image"; + reg = <0x1f0000 0x400000>; + }; + + rootfs@5f0000 { + label = "rootfs"; + reg = <0x5f0000 0x1900000>; + }; + + defaultmac: default-mac@1ef0000 { + label = "default-mac"; + reg = <0x1ef0000 0x00200>; + read-only; + }; + + pin@1ef0200 { + label = "pin"; + reg = <0x1ef0200 0x00200>; + read-only; + }; + + device-id@1ef0400 { + label = "device-id"; + reg = <0x1ef0400 0x00200>; + read-only; + }; + + product-info@1ef0600 { + label = "product-info"; + reg = <0x1ef0600 0x0fa00>; + read-only; + }; + + partition-table@1f00000 { + label = "partition-table"; + reg = <0x1f00000 0x10000>; + read-only; + }; + + soft-version@1f10000 { + label = "soft-version"; + reg = <0x1f10000 0x10000>; + read-only; + }; + + support-list@1f20000 { + label = "support-list"; + reg = <0x1f20000 0x10000>; + read-only; + }; + + profile@1f30000 { + label = "profile"; + reg = <0x1f30000 0x10000>; + read-only; + }; + + default-config@1f40000 { + label = "default-config"; + reg = <0x1f40000 0x10000>; + read-only; + }; + + user-config@1f50000 { + label = "user-config"; + reg = <0x1f50000 0x40000>; + read-only; + }; + + qos-db@1f90000 { + label = "qos-db"; + reg = <0x1f90000 0x40000>; + read-only; + }; + + usb-config@1fd0000 { + label = "usb-config"; + reg = <0x1fd0000 0x10000>; + read-only; + }; + + log@1fe0000 { + label = "log"; + reg = <0x1fe0000 0x20000>; + read-only; + }; + }; + }; +}; + +&usb3_0 { + status = "okay"; + + pinctrl-0 = <&usb0_pwr_en_pin>; + pinctrl-names = "default"; +}; + +&usb3_1 { + status = "okay"; + + pinctrl-0 = <&usb1_pwr_en_pin>; + pinctrl-names = "default"; +}; + +&pcie0 { + status = "okay"; +}; + +&pcie1 { + status = "okay"; + max-link-speed = <1>; +}; + +&pcie2 { + status = "okay"; + max-link-speed = <1>; +}; + +&mdio0 { + status = "okay"; + + pinctrl-0 = <&mdio0_pins>; + pinctrl-names = "default"; + + phy0: ethernet-phy@0 { + reg = <0>; + qca,ar8327-initvals = < + 0x00004 0x7600000 /* PAD0_MODE */ + 0x00008 0x1000000 /* PAD5_MODE */ + 0x0000c 0x80 /* PAD6_MODE */ + 0x000e4 0x6a545 /* MAC_POWER_SEL */ + 0x000e0 0xc74164de /* SGMII_CTRL */ + 0x0007c 0x4e /* PORT0_STATUS */ + 0x00094 0x4e /* PORT6_STATUS */ + >; + }; + + phy4: ethernet-phy@4 { + reg = <4>; + }; +}; + +&gmac1 { + status = "okay"; + phy-mode = "rgmii"; + qcom,id = <1>; + + pinctrl-0 = <&rgmii2_pins>; + pinctrl-names = "default"; + + mtd-mac-address = <&defaultmac 0x8>; + mtd-mac-address-increment = <1>; + + fixed-link { + speed = <1000>; + full-duplex; + }; +}; + +&gmac2 { + status = "okay"; + phy-mode = "sgmii"; + qcom,id = <2>; + + mtd-mac-address = <&defaultmac 0x8>; + + fixed-link { + speed = <1000>; + full-duplex; + }; +}; + +&adm_dma { + status = "okay"; +}; diff --git a/target/linux/ipq806x/image/Makefile b/target/linux/ipq806x/image/Makefile index 80bfec5ad9..876f337bba 100644 --- a/target/linux/ipq806x/image/Makefile +++ b/target/linux/ipq806x/image/Makefile @@ -333,6 +333,21 @@ define Device/qcom_ipq8064-db149 endef TARGET_DEVICES += qcom_ipq8064-db149 +define Device/tplink_ad7200 + $(call Device/TpSafeImage) + DEVICE_VENDOR := TP-Link + DEVICE_MODEL := Talon AD7200 + DEVICE_VARIANT := v1 + SOC := qcom-ipq8064 + BLOCKSIZE := 128k + PAGESIZE := 2048 + BOARD_NAME := ad7200 + SUPPORTED_DEVICES += ad7200 + TPLINK_BOARD_ID := AD7200 + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct kmod-wil6210 +endef +TARGET_DEVICES += tplink_ad7200 + define Device/tplink_c2600 $(call Device/TpSafeImage) DEVICE_VENDOR := TP-Link diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c index deba84c6d1..785ff39642 100644 --- a/tools/firmware-utils/src/tplink-safeloader.c +++ b/tools/firmware-utils/src/tplink-safeloader.c @@ -668,6 +668,50 @@ static struct device_info boards[] = { .last_sysupgrade_partition = "support-list", }, + /** Firmware layout for the AD7200 */ + { + .id = "AD7200", + .vendor = "", + .support_list = + "SupportList:\r\n" + "{product_name:Talon AD7200,product_ver:1.0.0,special_id:00000000}\r\n", + .part_trail = 0x00, + .soft_ver = NULL, + + .partitions = { + {"SBL1", 0x00000, 0x20000}, + {"MIBIB", 0x20000, 0x20000}, + {"SBL2", 0x40000, 0x20000}, + {"SBL3", 0x60000, 0x30000}, + {"DDRCONFIG", 0x90000, 0x10000}, + {"SSD", 0xa0000, 0x10000}, + {"TZ", 0xb0000, 0x30000}, + {"RPM", 0xe0000, 0x20000}, + {"fs-uboot", 0x100000, 0x70000}, + {"uboot-env", 0x170000, 0x40000}, + {"radio", 0x1b0000, 0x40000}, + {"os-image", 0x1f0000, 0x400000}, + {"file-system", 0x5f0000, 0x1900000}, + {"default-mac", 0x1ef0000, 0x00200}, + {"pin", 0x1ef0200, 0x00200}, + {"device-id", 0x1ef0400, 0x00200}, + {"product-info", 0x1ef0600, 0x0fa00}, + {"partition-table", 0x1f00000, 0x10000}, + {"soft-version", 0x1f10000, 0x10000}, + {"support-list", 0x1f20000, 0x10000}, + {"profile", 0x1f30000, 0x10000}, + {"default-config", 0x1f40000, 0x10000}, + {"user-config", 0x1f50000, 0x40000}, + {"qos-db", 0x1f90000, 0x40000}, + {"usb-config", 0x1fd0000, 0x10000}, + {"log", 0x1fe0000, 0x20000}, + {NULL, 0, 0} + }, + + .first_sysupgrade_partition = "os-image", + .last_sysupgrade_partition = "file-system" + }, + /** Firmware layout for the C2600 */ { .id = "C2600",