diff --git a/usr.sbin/fwget/pci/pci b/usr.sbin/fwget/pci/pci index de8b7c8bb2b3..0c210cde1b8a 100644 --- a/usr.sbin/fwget/pci/pci +++ b/usr.sbin/fwget/pci/pci @@ -1,113 +1,114 @@ #- # SPDX-License-Identifier: BSD-2-Clause # # Copyright 2023 Beckhoff Automation GmbH & Co. KG # Copyright 2023 Bjoern A. Zeeb # # Redistribution and use in source and binary forms, with or without # modification, are permitted providing 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 ``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 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_get_class() { local hexclass=$(echo $1 | sed 's/.*class=\(0x[0-9a-f]\{2\}\).*/\1/') case "${hexclass}" in 0x00) echo "old" ;; # built before class codes were finalized 0x02) echo "network" ;; 0x03) echo "video" ;; 0xff) echo "misc" ;; # does not fit in other defined classes esac } pci_get_vendor() { local hexvendor=$(echo $1 | sed 's/.*\ vendor=\(0x[0-9a-f]*\).*/\1/') case "${hexvendor}" in 0x1002) echo "amd" ;; 0x10ec) echo "realtek" ;; 0x14c3) echo "mediatek" ;; 0x168c) echo "qca" ;; # Qualcomm Atheros 0x17cb) echo "qca" ;; # Qualcomm Technologies 0x8086) echo "intel" ;; + 0x0b48) echo "ittim" ;; esac } pci_get_device() { local hexdevice=$(echo $1 | sed 's/.*\ device=\(0x[0-9a-f]*\).*/\1/') echo ${hexdevice} } pci_fixup_class() { local _c _v _c=$1 _v=$2 case ${_c} in "old") case ${_v} in "mediatek") echo "network" ;; esac ;; "misc") case ${_v} in "qca") echo "network" ;; esac ;; esac } pci_search_packages() { local IFS oldifs=$IFS IFS=$'\n' for fulldevice in $(pciconf -l); do class=$(pci_get_class "${fulldevice}") if [ -z "${class}" ]; then continue fi vendor=$(pci_get_vendor "${fulldevice}") if [ -z "${vendor}" ]; then continue fi device=$(pci_get_device "${fulldevice}") log_verbose "Trying to match device ${device} in class ${class} and vendor ${vendor} with pci_${class}_${vendor}" if [ ! -f ${LIBEXEC_PATH}/pci_${class}_${vendor} ]; then class=$(pci_fixup_class ${class} ${vendor}) if [ -z "${class}" ]; then continue fi log_verbose "Trying to match device ${device} in fixed up class ${class} and vendor ${vendor} with pci_${class}_${vendor}" if [ ! -f ${LIBEXEC_PATH}/pci_${class}_${vendor} ]; then continue fi fi . ${LIBEXEC_PATH}/pci_${class}_${vendor} pci_${class}_${vendor} ${device} "${fulldevice}" done IFS=${oldifs} } diff --git a/usr.sbin/fwget/pci/pci_network_ittim b/usr.sbin/fwget/pci/pci_network_ittim new file mode 100644 index 000000000000..632803bc1d35 --- /dev/null +++ b/usr.sbin/fwget/pci/pci_network_ittim @@ -0,0 +1,24 @@ +# +# Copyright (c) 2026 The FreeBSD Foundation +# +# SPDX-License-Identifier: BSD-2-Clause +# + +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 index e1e15dcfa2e5..6cc125d0da6a 100644 --- a/usr.sbin/fwget/pci/pci_network_mediatek +++ b/usr.sbin/fwget/pci/pci_network_mediatek @@ -1,73 +1,73 @@ #- # SPDX-License-Identifier: BSD-2-Clause # # Copyright 2023 Bjoern A. Zeeb # Copyright (c) 2024-2025 The FreeBSD Foundation # # Portions of this software were developed by Björn Zeeb # under sponsorship from 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_mediatek_mt76() { case "$1" in # The case pattern table below is generated by a script also helping # to generate the flavor/firmware Makefile definitions for ports. # { 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 ;; 0x7906) addpkg "wifi-firmware-mt76-kmod-mt7915"; return 1 ;; 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 ;; 0x799a) addpkg "wifi-firmware-mt76-kmod-mt7996"; return 1 ;; ### <<< esac } pci_network_mediatek() { for _drv in mt76; do pci_network_mediatek_${_drv} "$1" case $? in 1) break ;; esac done }