Page MenuHomeFreeBSD

D40072.diff
No OneTemporary

D40072.diff

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
@@ -2,6 +2,7 @@
# 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
@@ -26,11 +27,12 @@
pci_get_class()
{
- local hexclass=$(echo $1 | sed 's/.*class=\(0x[0-9a-z]*\).*/\1/')
+ local hexclass=$(echo $1 | sed 's/.*class=\(0x[0-9a-z]\{2\}\).*/\1/')
case "${hexclass}" in
- 0x030000)
- echo "video"
- ;;
+ 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
}
@@ -39,12 +41,12 @@
local hexvendor=$(echo $1 | sed 's/.*\ vendor=\(0x[0-9a-z]*\).*/\1/')
case "${hexvendor}" in
- 0x8086)
- echo "intel"
- ;;
- 0x1002)
- echo "amd"
- ;;
+ 0x1002) echo "amd" ;;
+ 0x10ec) echo "realtek" ;;
+ 0x14c3) echo "mediatek" ;;
+ 0x168c) echo "qca" ;; # Qualcomm Atheros
+ 0x17cb) echo "qca" ;; # Qualcomm Technologies
+ 0x8086) echo "intel" ;;
esac
}
@@ -55,6 +57,26 @@
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
@@ -74,7 +96,14 @@
log_verbose "Trying to match device ${device} in class ${class} and vendor ${vendor} with pci_${class}_${vendor}" 1>&3
if [ ! -f ${LIBEXEC_PATH}/pci_${class}_${vendor} ]; then
- continue
+ 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}" 1>&3
+ if [ ! -f ${LIBEXEC_PATH}/pci_${class}_${vendor} ]; then
+ continue
+ fi
fi
. ${LIBEXEC_PATH}/pci_${class}_${vendor}

File Metadata

Mime Type
text/plain
Expires
Thu, Oct 1, 6:03 PM (13 m, 42 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40029862
Default Alt Text
D40072.diff (2 KB)

Event Timeline