diff options
Diffstat (limited to 'net/wifi-firmware-rtw88-kmod')
| -rw-r--r-- | net/wifi-firmware-rtw88-kmod/Makefile | 36 | ||||
| -rw-r--r-- | net/wifi-firmware-rtw88-kmod/distinfo | 48 | ||||
| -rw-r--r-- | net/wifi-firmware-rtw88-kmod/files/extract-fw-list.sh | 205 | ||||
| -rw-r--r-- | net/wifi-firmware-rtw88-kmod/pkg-descr | 6 |
4 files changed, 257 insertions, 38 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 |
