diff --git a/sys/contrib/dev/mediatek/mt76/zzz_fw_ports_fwget.sh b/sys/contrib/dev/mediatek/mt76/zzz_fw_ports_fwget.sh --- a/sys/contrib/dev/mediatek/mt76/zzz_fw_ports_fwget.sh +++ b/sys/contrib/dev/mediatek/mt76/zzz_fw_ports_fwget.sh @@ -24,6 +24,11 @@ FWSUBDIR=mediatek CHECKFILE=mt792x.h +SYS=../../../.. +LINUXKPI_INCLUDES="-I${SYS}/compat/linuxkpi/common/include \ + -I${SYS}/compat/linuxkpi/dummy/include \ + -include ${SYS}/compat/linuxkpi/common/include/linux/kconfig.h" + ################################################################################ # # Check pre-reqs @@ -56,8 +61,8 @@ case ${d} in mt7615) flav=${d} ;; mt7915) flav=${d} ;; - mt7921) flav=mt792x ;; - mt7925) flav=mt792x ;; + mt7921) flav=${d} ;; + mt7925) flav=${d} ;; mt7996) flav=${d} ;; *) printf "ERROR: unsupported directory/flavor '%s'\n" ${d} >&2 exit 1 @@ -80,19 +85,22 @@ get_firmwares_by_flavor() { - for h in mt7615/mt7615.h mt7915/mt7915.h mt792x.h mt7996/mt7996.h; do + for h in mt7615/mt7615.h mt7915/mt7915.h mt7921/mt7921.h mt7925/mt7925.h mt7996/mt7996.h; do case ${h} in mt7615/mt7615.h) flav=mt7615 ;; mt7915/mt7915.h) flav=mt7915 ;; - mt792x.h) flav=mt792x ;; + mt7921/mt7921.h) flav=mt7921 ;; + mt7925/mt7925.h) flav=mt7925 ;; mt7996/mt7996.h) flav=mt7996 ;; *) printf "ERROR: unsupported header/flavor '%s'\n" ${h} >&2 exit 1 ;; esac - awk -v rege="${FWSUBDIR}/" -v flav=${flav} -F\" '{ if ($0 ~ rege) { printf "%s\t%s\n", tolower(flav), $2; } }' ${h} | \ + # Use preprocessor with a minimal include list to get #defines + cpp ${LINUXKPI_INCLUDES} -dM -M -MG -MF /dev/null ${h} 2> /dev/null | \ + awk -v rege="${FWSUBDIR}/" -v flav=${flav} -F\" '{ if ($0 ~ rege) { printf "%s\t%s\n", tolower(flav), $2; } }' | \ while read flav fwn; do if test ! -e ${LFWDIR}/${fwn}; then #printf "Firmware %s (for %s) does not exist; skipping\n" ${fwn} ${flav} >&2 @@ -253,12 +261,12 @@ # printf "===> did %s flav %s\n" ${did} ${flav} >&2 if test ${n} -eq 1; then - echo "${did} ${flav}" | awk -v drv=${FWSUBDIR} '{ + echo "${did} ${flav}" | awk -v drv=${DRIVER} '{ printf "\t%s)\taddpkg \"wifi-firmware-%s-kmod-%s\"; return 1 ;;\n", tolower($1), drv, tolower($2); }' >> ${fwgetfile} else - echo "${did} ${flav}" | awk -v drv=${FWSUBDIR} '{ + echo "${did} ${flav}" | awk -v drv=${DRIVER} '{ printf "\t%s)\taddpkg \"wifi-firmware-%s-kmod-%s\"\n", tolower($1), drv, tolower($2); }' >> ${fwgetfile} @@ -276,7 +284,7 @@ #printf "===> did %s flav %s\n" ${did} ${flav} >&2 - echo "${did} ${flav}" | awk -v drv=${FWSUBDIR} '{ + echo "${did} ${flav}" | awk -v drv=${DRIVER} '{ printf "\t\taddpkg \"wifi-firmware-%s-kmod-%s\"\n", drv, tolower($2); }' >> ${fwgetfile} @@ -290,5 +298,6 @@ fi printf "INFO: fwget pci_network_mediatek %s template at %s\n" ${DRIVER} ${fwgetfile} >&2 +printf "WARNING: make sure to check for PCI_VENDOR_ID_* other than Mediatek" # end diff --git a/usr.sbin/fwget/pci/pci b/usr.sbin/fwget/pci/pci --- a/usr.sbin/fwget/pci/pci +++ b/usr.sbin/fwget/pci/pci @@ -47,6 +47,7 @@ 0x168c) echo "qca" ;; # Qualcomm Atheros 0x17cb) echo "qca" ;; # Qualcomm Technologies 0x8086) echo "intel" ;; + 0x0b48) echo "ittim" ;; esac } diff --git a/usr.sbin/fwget/pci/pci_network_ittim b/usr.sbin/fwget/pci/pci_network_ittim new file mode 100644 --- /dev/null +++ b/usr.sbin/fwget/pci/pci_network_ittim @@ -0,0 +1,45 @@ +#- +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2026 The FreeBSD Foundation +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# + +pci_network_ittim_mt76() +{ + + case "$1" in + 0x7922) addpkg "wifi-firmware-mt76-kmod-mt7921"; return 1 ;; + esac +} + +pci_network_ittim() +{ + + for _drv in mt76; do + pci_network_ittim_${_drv} "$1" + case $? in + 1) break ;; + esac + done +} diff --git a/usr.sbin/fwget/pci/pci_network_mediatek b/usr.sbin/fwget/pci/pci_network_mediatek --- a/usr.sbin/fwget/pci/pci_network_mediatek +++ b/usr.sbin/fwget/pci/pci_network_mediatek @@ -38,9 +38,9 @@ # { sys/contrib/dev/mediatek/mt76/zzz_fw_ports_fwget.sh } ### >>> - 0x0608) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; - 0x0616) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; - 0x0717) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; + 0x0608) addpkg "wifi-firmware-mt76-kmod-mt7921"; return 1 ;; + 0x0616) addpkg "wifi-firmware-mt76-kmod-mt7921"; return 1 ;; + 0x0717) addpkg "wifi-firmware-mt76-kmod-mt7925"; return 1 ;; 0x7611) addpkg "wifi-firmware-mt76-kmod-mt7615"; return 1 ;; 0x7615) addpkg "wifi-firmware-mt76-kmod-mt7615"; return 1 ;; 0x7663) addpkg "wifi-firmware-mt76-kmod-mt7615"; return 1 ;; @@ -48,10 +48,10 @@ 0x790a) addpkg "wifi-firmware-mt76-kmod-mt7915"; return 1 ;; 0x7915) addpkg "wifi-firmware-mt76-kmod-mt7915"; return 1 ;; 0x7916) addpkg "wifi-firmware-mt76-kmod-mt7915"; return 1 ;; - 0x7920) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; - 0x7922) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; - 0x7925) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; - 0x7961) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; + 0x7920) addpkg "wifi-firmware-mt76-kmod-mt7921"; return 1 ;; + 0x7922) addpkg "wifi-firmware-mt76-kmod-mt7921"; return 1 ;; + 0x7925) addpkg "wifi-firmware-mt76-kmod-mt7925"; return 1 ;; + 0x7961) addpkg "wifi-firmware-mt76-kmod-mt7921"; return 1 ;; 0x7990) addpkg "wifi-firmware-mt76-kmod-mt7996"; return 1 ;; 0x7991) addpkg "wifi-firmware-mt76-kmod-mt7996"; return 1 ;; 0x7992) addpkg "wifi-firmware-mt76-kmod-mt7996"; return 1 ;;