git: 52d2067c871c - main - net/wifi-firmware-rtw8[89]-kmod: update firmware files

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Sun, 14 Dec 2025 19:47:15 UTC
The branch main has been updated by bz:

URL: https://cgit.FreeBSD.org/ports/commit/?id=52d2067c871c0bc774b016b298661ce0252d2ae7

commit 52d2067c871c0bc774b016b298661ce0252d2ae7
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-12-13 00:24:45 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2025-12-14 19:44:57 +0000

    net/wifi-firmware-rtw8[89]-kmod: update firmware files
    
    With the removal of the "USE=kmod" and only building packages with
    plain firmware files, our version went backwards.  Updating the
    firmware will fix this.
    
    Change to a script to extract the firmware files from WHENCE to get
    them all.  This also helps us as we no longer have to manually track
    older files as they are already included in the list.
    
    Sponsored by:   The FreeBSD Foundation
    Reviewed by:    jrm
    Differential Revision: https://reviews.freebsd.org/D54202
---
 net/wifi-firmware-rtw88-kmod/Makefile              |  36 ++--
 net/wifi-firmware-rtw88-kmod/distinfo              |  48 ++---
 .../files/extract-fw-list.sh                       | 205 +++++++++++++++++++++
 net/wifi-firmware-rtw88-kmod/pkg-descr             |   6 -
 net/wifi-firmware-rtw89-kmod/Makefile              |  45 ++---
 net/wifi-firmware-rtw89-kmod/distinfo              |  58 +++---
 net/wifi-firmware-rtw89-kmod/pkg-descr             |   9 -
 7 files changed, 315 insertions(+), 92 deletions(-)

diff --git a/net/wifi-firmware-rtw88-kmod/Makefile b/net/wifi-firmware-rtw88-kmod/Makefile
index dfd374718937..c1984c95e274 100644
--- a/net/wifi-firmware-rtw88-kmod/Makefile
+++ b/net/wifi-firmware-rtw88-kmod/Makefile
@@ -6,7 +6,8 @@ FWSUBDIR=	rtw88
 #FWDRV_VERSION=	20230117	# rtw8822c is barfing
 #FWDRV_VERSION=	20220209	# Used for a long time
 #FWDRV_VERSION=	20240513
-FWDRV_VERSION=	20241017
+#FWDRV_VERSION=	20241017
+FWDRV_VERSION=	20251125
 
 LICENSE_FILE=	LICENCE.rtlwifi_firmware.txt
 LICENSE_NAME=	Realtek firmware license (${FWDRV})
@@ -15,40 +16,53 @@ WHENCE_REGEX=	rtw88 -.*
 
 COMPAT_LINUXKPI_SKB_MEM_LIMIT=	1
 
-# The flavor/firmware lists below are generated by a script
-# also helping to generate the fwget(8) definitions.
-# { sys/contrib/dev/rtw88/zzz_fw_ports_fwget.sh }
+# The flavor/firmware lists below are generated by the
+# files/extract-fw-list.sh script. Usage:
+# 1: checkout the correct tag (FWDRV_VERSION) in linux-firmware.git.
+# 2: ./files/extract-fw-list.sh /path/to/linux-firmware.git rtw88
 ### >>>
 
 FWSUBS= \
 	rtw8703b \
 	rtw8723d \
+	rtw8812a \
+	rtw8814a \
+	rtw8821a \
 	rtw8821c \
 	rtw8822b \
 	rtw8822c
 
-DISTFILES_rtw8703b= \
+DISTFILES_rtw8703b+= \
 	${FWSUBDIR}/rtw8703b_fw.bin${DISTURL_SUFFIX} \
 	${FWSUBDIR}/rtw8703b_wow_fw.bin${DISTURL_SUFFIX}
-DISTFILES_rtw8723d= \
+DISTFILES_rtw8723d+= \
 	${FWSUBDIR}/rtw8723d_fw.bin${DISTURL_SUFFIX}
-DISTFILES_rtw8821c= \
+DISTFILES_rtw8812a+= \
+	${FWSUBDIR}/rtw8812a_fw.bin${DISTURL_SUFFIX}
+DISTFILES_rtw8814a+= \
+	${FWSUBDIR}/rtw8814a_fw.bin${DISTURL_SUFFIX}
+DISTFILES_rtw8821a+= \
+	${FWSUBDIR}/rtw8821a_fw.bin${DISTURL_SUFFIX}
+DISTFILES_rtw8821c+= \
 	${FWSUBDIR}/rtw8821c_fw.bin${DISTURL_SUFFIX}
-DISTFILES_rtw8822b= \
+DISTFILES_rtw8822b+= \
 	${FWSUBDIR}/rtw8822b_fw.bin${DISTURL_SUFFIX}
-DISTFILES_rtw8822c= \
+DISTFILES_rtw8822c+= \
 	${FWSUBDIR}/rtw8822c_fw.bin${DISTURL_SUFFIX} \
 	${FWSUBDIR}/rtw8822c_wow_fw.bin${DISTURL_SUFFIX}
 
 DISTFILES_${FWDRV}= \
 	${DISTFILES_rtw8703b} \
 	${DISTFILES_rtw8723d} \
+	${DISTFILES_rtw8812a} \
+	${DISTFILES_rtw8814a} \
+	${DISTFILES_rtw8821a} \
 	${DISTFILES_rtw8821c} \
 	${DISTFILES_rtw8822b} \
 	${DISTFILES_rtw8822c}
-
-### <<<
 DISTFILES_${FWDRV}_lic= \
 	${FWSUBDIR}/README${DISTURL_SUFFIX}
 
+### <<<
+
 .include "${BASEDIR}/Makefile.inc"
diff --git a/net/wifi-firmware-rtw88-kmod/distinfo b/net/wifi-firmware-rtw88-kmod/distinfo
index 2fa8d535f6f6..745b8cca6787 100644
--- a/net/wifi-firmware-rtw88-kmod/distinfo
+++ b/net/wifi-firmware-rtw88-kmod/distinfo
@@ -1,21 +1,27 @@
-TIMESTAMP = 1730331931
-SHA256 (linux-firmware/rtw88fw/rtw88/rtw8703b_fw.bin?h=20241017) = 5e32bd891c74a0719c871726b74490cf5e1a05cdcefb8fe2414f80fffdeb9f9d
-SIZE (linux-firmware/rtw88fw/rtw88/rtw8703b_fw.bin?h=20241017) = 20290
-SHA256 (linux-firmware/rtw88fw/rtw88/rtw8703b_wow_fw.bin?h=20241017) = 7156b0d2b4580e63d11a3a78258c35ff28e840c7c6428953920ae6a1cd5d05ac
-SIZE (linux-firmware/rtw88fw/rtw88/rtw8703b_wow_fw.bin?h=20241017) = 23074
-SHA256 (linux-firmware/rtw88fw/rtw88/rtw8723d_fw.bin?h=20241017) = 9c64e079815a333a3f7b731be7cc0be65206ebc883891659dc8ff5ed36a5e2f5
-SIZE (linux-firmware/rtw88fw/rtw88/rtw8723d_fw.bin?h=20241017) = 28884
-SHA256 (linux-firmware/rtw88fw/rtw88/rtw8821c_fw.bin?h=20241017) = 2ef409bc418549fcf294061dd0cae1fc22fd9da79b60524950b25de18732f3f0
-SIZE (linux-firmware/rtw88fw/rtw88/rtw8821c_fw.bin?h=20241017) = 139472
-SHA256 (linux-firmware/rtw88fw/rtw88/rtw8822b_fw.bin?h=20241017) = 378ff7b43ae7da18a0311175abc351a1758d25ce553b44f3c5694758efbea84c
-SIZE (linux-firmware/rtw88fw/rtw88/rtw8822b_fw.bin?h=20241017) = 150984
-SHA256 (linux-firmware/rtw88fw/rtw88/rtw8822c_fw.bin?h=20241017) = 3deecb31210986d98cdbfb000391e08d602a6eee4ffc883969faa2b907ab03ba
-SIZE (linux-firmware/rtw88fw/rtw88/rtw8822c_fw.bin?h=20241017) = 202600
-SHA256 (linux-firmware/rtw88fw/rtw88/rtw8822c_wow_fw.bin?h=20241017) = 6717fc6ff426a74571ac4f04cd9698fb2f356012c05c58aa64cf21ceb6b958a2
-SIZE (linux-firmware/rtw88fw/rtw88/rtw8822c_wow_fw.bin?h=20241017) = 145224
-SHA256 (linux-firmware/rtw88fw/rtw88/README?h=20241017) = 39c44c710469c1069305add9889921b42704a83f11b94c6d88b06dc2efe40686
-SIZE (linux-firmware/rtw88fw/rtw88/README?h=20241017) = 1181
-SHA256 (linux-firmware/rtw88fw/LICENCE.rtlwifi_firmware.txt?h=20241017) = a61351665b4f264f6c631364f85b907d8f8f41f8b369533ef4021765f9f3b62e
-SIZE (linux-firmware/rtw88fw/LICENCE.rtlwifi_firmware.txt?h=20241017) = 2115
-SHA256 (linux-firmware/rtw88fw/WHENCE?h=20241017) = 7851ae8e04d71ccfc741fd2df450ef5724c4a172a0a282f69e8a8ce44877ba84
-SIZE (linux-firmware/rtw88fw/WHENCE?h=20241017) = 291838
+TIMESTAMP = 1765584880
+SHA256 (linux-firmware/rtw88fw/rtw88/rtw8703b_fw.bin?h=20251125) = 5e32bd891c74a0719c871726b74490cf5e1a05cdcefb8fe2414f80fffdeb9f9d
+SIZE (linux-firmware/rtw88fw/rtw88/rtw8703b_fw.bin?h=20251125) = 20290
+SHA256 (linux-firmware/rtw88fw/rtw88/rtw8703b_wow_fw.bin?h=20251125) = 7156b0d2b4580e63d11a3a78258c35ff28e840c7c6428953920ae6a1cd5d05ac
+SIZE (linux-firmware/rtw88fw/rtw88/rtw8703b_wow_fw.bin?h=20251125) = 23074
+SHA256 (linux-firmware/rtw88fw/rtw88/rtw8723d_fw.bin?h=20251125) = 9c64e079815a333a3f7b731be7cc0be65206ebc883891659dc8ff5ed36a5e2f5
+SIZE (linux-firmware/rtw88fw/rtw88/rtw8723d_fw.bin?h=20251125) = 28884
+SHA256 (linux-firmware/rtw88fw/rtw88/rtw8812a_fw.bin?h=20251125) = abdcca4e8bf76ebfba23d433de310ffefebd0ff9d01990639d4cd9602b32b71a
+SIZE (linux-firmware/rtw88fw/rtw88/rtw8812a_fw.bin?h=20251125) = 27030
+SHA256 (linux-firmware/rtw88fw/rtw88/rtw8814a_fw.bin?h=20251125) = aa6bf9d62b2d2d8a37254fd6d917ba2839888cdedc21850d4481874cb1d3d7cb
+SIZE (linux-firmware/rtw88fw/rtw88/rtw8814a_fw.bin?h=20251125) = 68320
+SHA256 (linux-firmware/rtw88fw/rtw88/rtw8821a_fw.bin?h=20251125) = 4693ece655044d96f81bd3f3e8db14dc352b493219c4fd0a75788a6fbd9eac3c
+SIZE (linux-firmware/rtw88fw/rtw88/rtw8821a_fw.bin?h=20251125) = 31898
+SHA256 (linux-firmware/rtw88fw/rtw88/rtw8821c_fw.bin?h=20251125) = 2ef409bc418549fcf294061dd0cae1fc22fd9da79b60524950b25de18732f3f0
+SIZE (linux-firmware/rtw88fw/rtw88/rtw8821c_fw.bin?h=20251125) = 139472
+SHA256 (linux-firmware/rtw88fw/rtw88/rtw8822b_fw.bin?h=20251125) = a72da690597bfa99d8eb6fc2ab090d18d8ad92ac2befd35db1c9e3662d8d8418
+SIZE (linux-firmware/rtw88fw/rtw88/rtw8822b_fw.bin?h=20251125) = 161240
+SHA256 (linux-firmware/rtw88fw/rtw88/rtw8822c_fw.bin?h=20251125) = 3deecb31210986d98cdbfb000391e08d602a6eee4ffc883969faa2b907ab03ba
+SIZE (linux-firmware/rtw88fw/rtw88/rtw8822c_fw.bin?h=20251125) = 202600
+SHA256 (linux-firmware/rtw88fw/rtw88/rtw8822c_wow_fw.bin?h=20251125) = 6717fc6ff426a74571ac4f04cd9698fb2f356012c05c58aa64cf21ceb6b958a2
+SIZE (linux-firmware/rtw88fw/rtw88/rtw8822c_wow_fw.bin?h=20251125) = 145224
+SHA256 (linux-firmware/rtw88fw/rtw88/README?h=20251125) = f94c70b012eea68bfb45e0cfeea17bd76b8f0b3e872b6dbf313012f75ffd4ab0
+SIZE (linux-firmware/rtw88fw/rtw88/README?h=20251125) = 1253
+SHA256 (linux-firmware/rtw88fw/LICENCE.rtlwifi_firmware.txt?h=20251125) = a61351665b4f264f6c631364f85b907d8f8f41f8b369533ef4021765f9f3b62e
+SIZE (linux-firmware/rtw88fw/LICENCE.rtlwifi_firmware.txt?h=20251125) = 2115
+SHA256 (linux-firmware/rtw88fw/WHENCE?h=20251125) = 978a5f084a81eec37f7fc146d0f12b21d263dc1afe97a38bd9556d68fa5b421f
+SIZE (linux-firmware/rtw88fw/WHENCE?h=20251125) = 365316
diff --git a/net/wifi-firmware-rtw88-kmod/files/extract-fw-list.sh b/net/wifi-firmware-rtw88-kmod/files/extract-fw-list.sh
new file mode 100644
index 000000000000..fdfeabc60d11
--- /dev/null
+++ b/net/wifi-firmware-rtw88-kmod/files/extract-fw-list.sh
@@ -0,0 +1,205 @@
+#!/bin/sh
+#
+# Copyright (c) 2025 The FreeBSD Foundation
+#
+# This software was developed by Björn Zeeb
+# under sponsorship from the FreeBSD Foundation.
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Generate the firmware flavors and files from the WHENCE file in
+# linux-firmware.git based on the "MAC" names.
+# It is no longer feasible to generate them from the driver as the
+# firmware names are fully dynamic and require at least a register
+# read on each card.  The combinations likely go into the hundreds
+# or thousands.
+# We still check for the firmware file with the highest API version
+# available based on each file name and sort out all the others.
+# We also have to sort out the DVM drier parts which we are not
+# interested in.
+#
+
+FWDIR=${1:-/nonexistent}
+DRVNAME=${2:-NODRVNAMEGIVEN}
+
+if test ! -d ${FWDIR} -o ! -r ${FWDIR}/WHENCE; then
+	printf "Cannot find '%s' or '%s/WHENCE'\n" ${FWDIR} ${FWDIR} >&2
+	printf "USAGE: %s /path/to/linux-firmware.git rtw8[89]\n" $0 >&2
+	exit
+fi
+case "${DRVNAME}" in
+NODRVNAMEGIVEN)
+	printf "USAGE: %s /path/to/linux-firmware.git rtw8[89]\n" $0 >&2
+	exit
+	;;
+esac
+
+sed -e "s@%%XXX%%@"${DRVNAME}" -.*@g" ../wifi-firmware-kmod/files/WHENCE.awk.in > WHENCE.awk
+awk -f WHENCE.awk ${FWDIR}/WHENCE > WHENCE
+awk -v FWDIR="${FWDIR}" -v DRVNAME="${DRVNAME}" '
+function file_exists(fname)
+{
+	xname = FWDIR "/" DRVNAME "/" fname;
+
+	#printf("DEBUG: checking for file %s\n", xname);
+
+	if ((getline _ < xname) >= 0) {
+		return 1;
+	}
+}
+
+function known_in_2arr(arr, idx1, idx2)
+{
+	for (both in arr) {
+		split(both, sep, SUBSEP);
+		if (sep[1] == idx1 && sep[2] == idx2) {
+			return 1;
+		}
+	}
+	return 0;
+}
+
+function get_flavor(name)
+{
+
+	name = tolower(name);
+
+	# Remove the file name if in subdir.
+	gsub("/[^/]*$", "", name);
+
+	# Reduce to one level
+	n = split(name, a, "/")
+	if (n > 1) {
+		name = a[1];
+	}
+	# Reduce to prefix.
+	if (name ~ /^rtw/) {
+		n = split(name, a, "_")
+		if (n > 1) {
+			name = a[1];
+		}
+	}
+
+	# replace special characters
+	gsub("/", "_", name);
+	gsub("\\.", "", name);
+
+	#printf("FLAVNAME >>%s<<\n", name);
+
+	return name;
+}
+
+function is_flavor_known(name, n, flavarr)
+{
+
+	for (f = 1; f <= n ; f++) {
+		if (flavarr[f] == name)
+			return 1;
+	}
+
+	return 0;
+}
+
+BEGIN {
+	if (!FWDIR) {
+		printf "USAGE: -v FWDIR=/path/to/linux-firmware.git\n"
+		exit
+	}
+
+	flavors_n = 0;
+}
+{
+	if (! /^File:/) {
+		next;
+	}
+
+	gsub("^File: " DRVNAME "/", "");
+
+	name=$0
+	if (!file_exists(name)) {
+		print "DEBUG :: file does not exist :: " $0;
+		next;
+	}
+
+	flav = get_flavor($name);
+
+	if (DRVNAME == "rtw88" && flav == "readme") {
+		print "DEBUG :: skipping rtw88 readme :: " $0;
+		next;
+	}
+
+	if (!is_flavor_known(flav, flavors_n, flavors)) {
+		flavors[++flavors_n] = flav;
+	}
+
+	fwn[flav]++;
+	fwname[flav,fwn[flav]] = name;
+}
+END {
+	# Sort flavors
+	for (i = 1; i < length(flavors); i++) {
+		for (j = i + 1; j <= length(flavors); j++) {
+			if (flavors[i] > flavors[j]) {
+				t=flavors[i]
+				flavors[i]=flavors[j]
+				flavors[j]=t
+			}
+		}
+	}
+
+	printf("FWSUBS=");
+	for (f = 1; f <= length(flavors); f++) {
+		if (fwn[flavors[f]] > 0) {
+			printf(" \\\n\t%s", flavors[f]);
+		}
+	}
+	printf("\n\n");
+
+	# Deal with all the firmware flavors:
+	for (f = 1; f <= length(flavors); f++) {
+		flav=flavors[f];
+
+		#
+		# Firmware files.
+		#
+		if (fwn[flav] > 0) {
+			if (f > 1) {
+				printf("\n");
+			}
+			printf("DISTFILES_%s+=", flav);
+		}
+		# Sort
+		for (i = 1; i < fwn[flav]; i++) {
+			for (j = i + 1; j <= fwn[flav]; j++) {
+				if (fwname[flav,i] > fwname[flav,j]) {
+					t=fwname[flav,i]
+					fwname[flav,i]=fwname[flav,j]
+					fwname[flav,j]=t
+				}
+			}
+		}
+		# Print
+		for (i = 1; i <= fwn[flav]; i++) {
+			printf(" \\\n\t\${FWSUBDIR}/%s\${DISTURL_SUFFIX}", fwname[flav,i]);
+		}
+	}
+	printf("\n");
+
+	printf("\n");
+	printf("DISTFILES_\${FWDRV}=");
+	for (f = 1; f <= length(flavors); f++) {
+		if (fwn[flavors[f]] > 0) {
+			printf(" \\\n\t\${DISTFILES_%s}", flavors[f]);
+		}
+	}
+	printf("\n");
+	printf("DISTFILES_\${FWDRV}_lic=");
+	if (DRVNAME == "rtw88") {
+		printf(" \\\n\t\${FWSUBDIR}/%s\${DISTURL_SUFFIX}", "README");
+	}
+	printf("\n");
+}' WHENCE
+
+rm -f WHENCE.awk WHENCE
+
+# end
diff --git a/net/wifi-firmware-rtw88-kmod/pkg-descr b/net/wifi-firmware-rtw88-kmod/pkg-descr
index 7648756cc451..ae438dbbf99d 100644
--- a/net/wifi-firmware-rtw88-kmod/pkg-descr
+++ b/net/wifi-firmware-rtw88-kmod/pkg-descr
@@ -1,7 +1 @@
 Firmware files for Realtek WiFi NICs supported by the rtw88 driver.
-
-Currently supported chipsets:
-- RTL8822BE
-- RTL8821CE
-- RTL8822CE
-- RTL8723DE
diff --git a/net/wifi-firmware-rtw89-kmod/Makefile b/net/wifi-firmware-rtw89-kmod/Makefile
index abe723dfd687..7eaf79ad53c8 100644
--- a/net/wifi-firmware-rtw89-kmod/Makefile
+++ b/net/wifi-firmware-rtw89-kmod/Makefile
@@ -3,7 +3,8 @@ BASEDIR=	${.CURDIR}/../wifi-firmware-kmod
 FWDRV=		rtw89
 FWSUBDIR=	rtw89
 #FWDRV_VERSION=	20240513
-FWDRV_VERSION=	20241017
+#FWDRV_VERSION=	20241017
+FWDRV_VERSION=	20251125
 
 LICENSE_FILE=	LICENCE.rtlwifi_firmware.txt
 LICENSE_NAME=	Realtek firmware license (${FWDRV})
@@ -13,48 +14,48 @@ WHENCE_REGEX=	rtw89 -.*
 COMPAT_LINUXKPI_SKB_MEM_LIMIT=	1
 
 # The flavor/firmware lists below are generated by a script
-# also helping to generate the fwget(8) definitions.
-# { sys/contrib/dev/rtw89/zzz_fw_ports_fwget.sh }
-#
-# Note: we manually added (kept) some -<n> versions (outside
-# the generated template) to be able to support all branches.
-#
+# found with the wifi-firmware-rtw88-kmod port.
 ### >>>
 
 FWSUBS= \
 	rtw8851b \
 	rtw8852a \
 	rtw8852b \
+	rtw8852bt \
 	rtw8852c \
 	rtw8922a
 
-DISTFILES_rtw8851b= \
+DISTFILES_rtw8851b+= \
 	${FWSUBDIR}/rtw8851b_fw.bin${DISTURL_SUFFIX}
-DISTFILES_rtw8852a= \
+DISTFILES_rtw8852a+= \
 	${FWSUBDIR}/rtw8852a_fw.bin${DISTURL_SUFFIX}
-DISTFILES_rtw8852b= \
-	${FWSUBDIR}/rtw8852b_fw-1.bin${DISTURL_SUFFIX}
-DISTFILES_rtw8852c= \
+DISTFILES_rtw8852b+= \
+	${FWSUBDIR}/rtw8852b_fw-1.bin${DISTURL_SUFFIX} \
+	${FWSUBDIR}/rtw8852b_fw-2.bin${DISTURL_SUFFIX} \
+	${FWSUBDIR}/rtw8852b_fw.bin${DISTURL_SUFFIX}
+DISTFILES_rtw8852bt+= \
+	${FWSUBDIR}/rtw8852bt_fw-1.bin${DISTURL_SUFFIX} \
+	${FWSUBDIR}/rtw8852bt_fw.bin${DISTURL_SUFFIX}
+DISTFILES_rtw8852c+= \
+	${FWSUBDIR}/rtw8852c_fw-1.bin${DISTURL_SUFFIX} \
+	${FWSUBDIR}/rtw8852c_fw-2.bin${DISTURL_SUFFIX} \
 	${FWSUBDIR}/rtw8852c_fw.bin${DISTURL_SUFFIX}
-DISTFILES_rtw8922a= \
+DISTFILES_rtw8922a+= \
+	${FWSUBDIR}/rtw8922a_fw-1.bin${DISTURL_SUFFIX} \
+	${FWSUBDIR}/rtw8922a_fw-2.bin${DISTURL_SUFFIX} \
+	${FWSUBDIR}/rtw8922a_fw-3.bin${DISTURL_SUFFIX} \
+	${FWSUBDIR}/rtw8922a_fw-4.bin${DISTURL_SUFFIX} \
 	${FWSUBDIR}/rtw8922a_fw.bin${DISTURL_SUFFIX}
 
 DISTFILES_${FWDRV}= \
 	${DISTFILES_rtw8851b} \
 	${DISTFILES_rtw8852a} \
 	${DISTFILES_rtw8852b} \
+	${DISTFILES_rtw8852bt} \
 	${DISTFILES_rtw8852c} \
 	${DISTFILES_rtw8922a}
+DISTFILES_${FWDRV}_lic=
 
 ### <<<<
-DISTFILES_rtw8852a+= \
-	${FWSUBDIR}/rtw8852b_fw.bin${DISTURL_SUFFIX}
-DISTFILES_rtw8852c+= \
-	${FWSUBDIR}/rtw8852c_fw-1.bin${DISTURL_SUFFIX}
-DISTFILES_rtw8922a+= \
-	${FWSUBDIR}/rtw8922a_fw-1.bin${DISTURL_SUFFIX} \
-	${FWSUBDIR}/rtw8922a_fw-2.bin${DISTURL_SUFFIX}
-
-DISTFILES_${FWDRV}_lic=
 
 .include "${BASEDIR}/Makefile.inc"
diff --git a/net/wifi-firmware-rtw89-kmod/distinfo b/net/wifi-firmware-rtw89-kmod/distinfo
index de181c59be7e..ce7b63e10315 100644
--- a/net/wifi-firmware-rtw89-kmod/distinfo
+++ b/net/wifi-firmware-rtw89-kmod/distinfo
@@ -1,23 +1,35 @@
-TIMESTAMP = 1730332180
-SHA256 (linux-firmware/rtw89fw/rtw89/rtw8851b_fw.bin?h=20241017) = f0980b436211f08682666777161db844f020c7c01f4d5864792f9ad8ee2ffd0a
-SIZE (linux-firmware/rtw89fw/rtw89/rtw8851b_fw.bin?h=20241017) = 1162024
-SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852a_fw.bin?h=20241017) = c3dc625eefc631280e3e3359514a71ecb99c5c6a3bc768f127e8e00d8f26db85
-SIZE (linux-firmware/rtw89fw/rtw89/rtw8852a_fw.bin?h=20241017) = 1423232
-SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852b_fw.bin?h=20241017) = 5b9c224ae014e0aeade8701412d820e213c8880e08615b3905dba89659f21baf
-SIZE (linux-firmware/rtw89fw/rtw89/rtw8852b_fw.bin?h=20241017) = 1035232
-SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852b_fw-1.bin?h=20241017) = 2dc9f2fb587219ddace6120c4bf0543e4918ee0396b60ee8d0a6dcd690fb4b12
-SIZE (linux-firmware/rtw89fw/rtw89/rtw8852b_fw-1.bin?h=20241017) = 1242808
-SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852c_fw.bin?h=20241017) = e05e704911ec5d6523e2951416290cc2189444d48a0420e637de6acf5bf21228
-SIZE (linux-firmware/rtw89fw/rtw89/rtw8852c_fw.bin?h=20241017) = 1532656
-SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852c_fw-1.bin?h=20241017) = 3b7a3f2781ade68997756d3278b2656e454f1230e02620871e97fbf8071d1b7d
-SIZE (linux-firmware/rtw89fw/rtw89/rtw8852c_fw-1.bin?h=20241017) = 2180616
-SHA256 (linux-firmware/rtw89fw/rtw89/rtw8922a_fw.bin?h=20241017) = 84458f2fa7c9a730fae242d858a82814141421d66a1f672a10121982513daf6d
-SIZE (linux-firmware/rtw89fw/rtw89/rtw8922a_fw.bin?h=20241017) = 1537690
-SHA256 (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-1.bin?h=20241017) = 4340bc322912f30f1793bb57a1747c23b15e40db2df628d6687d1ddf722f2828
-SIZE (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-1.bin?h=20241017) = 1583434
-SHA256 (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-2.bin?h=20241017) = 9ca08cd3098b954cc0d44edd5c0b079877e5dd9b98d55cfec1c302b41475d88c
-SIZE (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-2.bin?h=20241017) = 1586954
-SHA256 (linux-firmware/rtw89fw/LICENCE.rtlwifi_firmware.txt?h=20241017) = a61351665b4f264f6c631364f85b907d8f8f41f8b369533ef4021765f9f3b62e
-SIZE (linux-firmware/rtw89fw/LICENCE.rtlwifi_firmware.txt?h=20241017) = 2115
-SHA256 (linux-firmware/rtw89fw/WHENCE?h=20241017) = 7851ae8e04d71ccfc741fd2df450ef5724c4a172a0a282f69e8a8ce44877ba84
-SIZE (linux-firmware/rtw89fw/WHENCE?h=20241017) = 291838
+TIMESTAMP = 1765585357
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8851b_fw.bin?h=20251125) = 945c854d7cf69dd97bf1da0181b011787d9b3c5d59c47e8b9dbea4eb4eee170b
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8851b_fw.bin?h=20251125) = 1164440
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852a_fw.bin?h=20251125) = 7eb1fe457f5a704b7a4f05a66c67cfa6af2f1142566b640c8e402445d04b0159
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8852a_fw.bin?h=20251125) = 1428272
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852b_fw-1.bin?h=20251125) = 369710ee7cbcc809ea55d2d1b8dff31f91b1102d817d4bc12cea834bdd88ce3e
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8852b_fw-1.bin?h=20251125) = 1242472
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852b_fw-2.bin?h=20251125) = 95076d6d128695b29830e8a0e5efbd0af60a5590ad37bbd8591a0281952a61de
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8852b_fw-2.bin?h=20251125) = 1290952
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852b_fw.bin?h=20251125) = 5b9c224ae014e0aeade8701412d820e213c8880e08615b3905dba89659f21baf
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8852b_fw.bin?h=20251125) = 1035232
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852bt_fw-1.bin?h=20251125) = 164e5e2243b1241a23d5e77876aa11be003fb09f5aa7794dc7bbf80957c8c254
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8852bt_fw-1.bin?h=20251125) = 937688
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852bt_fw.bin?h=20251125) = 1b10beb5710eb7ec8e1ca3a44fcdf1272f2c735a414bc19d70a729558ce0a97d
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8852bt_fw.bin?h=20251125) = 918776
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852c_fw-1.bin?h=20251125) = 95e4226f7a4c2a506a5ea2bb8b6247842dd12fc312639750881c5bfdec7bbec5
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8852c_fw-1.bin?h=20251125) = 2375560
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852c_fw-2.bin?h=20251125) = f6118a78d4cf42d8c7c25d8ece7e71f0177e40990a58ab9b3da546c182b9844d
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8852c_fw-2.bin?h=20251125) = 2466994
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8852c_fw.bin?h=20251125) = e05e704911ec5d6523e2951416290cc2189444d48a0420e637de6acf5bf21228
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8852c_fw.bin?h=20251125) = 1532656
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-1.bin?h=20251125) = 4340bc322912f30f1793bb57a1747c23b15e40db2df628d6687d1ddf722f2828
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-1.bin?h=20251125) = 1583434
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-2.bin?h=20251125) = 9ca08cd3098b954cc0d44edd5c0b079877e5dd9b98d55cfec1c302b41475d88c
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-2.bin?h=20251125) = 1586954
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-3.bin?h=20251125) = 484f496bc149706b92c7352925fef4155fecb60bc61ec0f5c55a3b651ed915f4
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-3.bin?h=20251125) = 1238542
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-4.bin?h=20251125) = 8683bcdd923f79e92feb21e461dab4c288dffee81b5ee1bee572d374febae439
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8922a_fw-4.bin?h=20251125) = 1263938
+SHA256 (linux-firmware/rtw89fw/rtw89/rtw8922a_fw.bin?h=20251125) = 84458f2fa7c9a730fae242d858a82814141421d66a1f672a10121982513daf6d
+SIZE (linux-firmware/rtw89fw/rtw89/rtw8922a_fw.bin?h=20251125) = 1537690
+SHA256 (linux-firmware/rtw89fw/LICENCE.rtlwifi_firmware.txt?h=20251125) = a61351665b4f264f6c631364f85b907d8f8f41f8b369533ef4021765f9f3b62e
+SIZE (linux-firmware/rtw89fw/LICENCE.rtlwifi_firmware.txt?h=20251125) = 2115
+SHA256 (linux-firmware/rtw89fw/WHENCE?h=20251125) = 978a5f084a81eec37f7fc146d0f12b21d263dc1afe97a38bd9556d68fa5b421f
+SIZE (linux-firmware/rtw89fw/WHENCE?h=20251125) = 365316
diff --git a/net/wifi-firmware-rtw89-kmod/pkg-descr b/net/wifi-firmware-rtw89-kmod/pkg-descr
index f40df29cd1c5..3a17977a33b7 100644
--- a/net/wifi-firmware-rtw89-kmod/pkg-descr
+++ b/net/wifi-firmware-rtw89-kmod/pkg-descr
@@ -1,10 +1 @@
 Firmware files for Realtek WiFi NICs supported by the rtw89 driver.
-
-Currently 11ax supported chipsets:
-- RTL8851B
-- RTL8852A
-- RTL8852B
-- RTL8852C
-
-Currently 11be supported chipsets:
-- RTL8922A