Page MenuHomeFreeBSD

D52325.diff
No OneTemporary

D52325.diff

diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -51,6 +51,15 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20250831: fwget changes to lua and input files
+OLD_FILES+=usr/libexec/fwget/pci
+OLD_FILES+=usr/libexec/fwget/pci_network_intel
+OLD_FILES+=usr/libexec/fwget/pci_network_mediatek
+OLD_FILES+=usr/libexec/fwget/pci_network_qca
+OLD_FILES+=usr/libexec/fwget/pci_network_realtek
+OLD_FILES+=usr/libexec/fwget/usb
+OLD_FILES+=usr/libexec/fwget/usb_ralink
+
# 20250826: Remove a misspelled manual
OLD_FILES+=usr/share/man/man3/sysdecode_syscallnames.3.gz
diff --git a/usr.sbin/fwget/Makefile b/usr.sbin/fwget/Makefile
--- a/usr.sbin/fwget/Makefile
+++ b/usr.sbin/fwget/Makefile
@@ -1,7 +1,8 @@
PACKAGE= fwget
-SCRIPTS= fwget
+SCRIPTS= fwget.lua
MAN= fwget.8
+
SUBDIR= pci usb
.include <bsd.prog.mk>
diff --git a/usr.sbin/fwget/fwget.8 b/usr.sbin/fwget/fwget.8
--- a/usr.sbin/fwget/fwget.8
+++ b/usr.sbin/fwget/fwget.8
@@ -2,6 +2,7 @@
.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.\" Copyright (c) 2023 Beckhoff Automation GmbH & Co. KG
+.\" Copyright (c) 2025 Bjoern A. Zeeb
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -23,7 +24,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd July 7, 2025
+.Dd September 1, 2025
.Dt FWGET 8
.Os
.Sh NAME
@@ -31,8 +32,11 @@
.Nd install firmware packages for the running system
.Sh SYNOPSIS
.Nm
+.Op Fl D Ar /path/to/tables
+.Op Fl d
.Op Fl n
.Op Fl v
+.Op Fl q
.Op Ar subsystem
.Sh DESCRIPTION
The
@@ -42,10 +46,17 @@
.Pp
The options are as follows:
.Bl -tag -width Fl
+.It Fl D Ar /pat/to/tables
+Try to load firmware tables from alternate directory
+.It Fl d
+Debug mode showing extra warnings, e.g., overlapping/duplicate firmware table
+entries, missing primary key, invalid line formats, duplicate selectors.
.It Fl n
Dry run, only show needed packages
.It Fl v
Be more verbose
+.It Fl q
+Quiet mode
.It Ar subsystem
Hardware subsystem(s), default is all supported subsystems.
Space separated hardware subsystems, accepts
@@ -62,11 +73,13 @@
.Fx 14.0 .
.Sh AUTHORS
.An -nosplit
-The
+The original
.Nm
-utility and this manual page were written by
+shell version and this manual page were written by
.An Emmanuel Vadot Aq Mt manu@FreeBSD.org
for Beckhoff Automation GmbH & Co\. KG.
+.An Bjoern A. Zeeb
+later rewrote it in lua.
.Sh CAVEATS
This utility currently only supports the
.Xr pci 4
diff --git a/usr.sbin/fwget/fwget.lua b/usr.sbin/fwget/fwget.lua
new file mode 100755
--- /dev/null
+++ b/usr.sbin/fwget/fwget.lua
@@ -0,0 +1,646 @@
+#!/usr/libexec/flua
+--
+-- Copyright 2023 Beckhoff Automation GmbH & Co. KG
+-- Copyright 2023-2025 Bjoern A. Zeeb
+--
+-- SPDX-License-Identifier: BSD-2-Clause
+--
+-- This lua version is based on a previous shell version.
+--
+
+--
+-- This is my first own lua script ever. Be gentle with me.
+-- I wish there was "continue".
+-- I wish there was ()? regex matching not just for characters.
+-- I wish there was getopt() and I did not have to do parts myself.
+--
+
+--
+-- -----------------------------------------------------------------------------
+-- Logging helpers
+-- -----------------------------------------------------------------------------
+--
+local do_quiet = false
+local do_verbose = false
+local do_debug = false
+
+-- Logging function taking -q into account
+--
+local function qlog(msg)
+ if not do_quiet then
+ print(msg)
+ end
+end
+
+-- Logging function taking -v into account
+--
+local function vlog(msg)
+ if do_verbose then
+ print(msg)
+ end
+end
+
+-- Logging function taking -d into account
+--
+local function dlog(msg)
+ if do_debug then
+ print(msg)
+ end
+end
+
+--
+-- -----------------------------------------------------------------------------
+-- Functions reading in hardware information and firmware table
+-- -----------------------------------------------------------------------------
+--
+local function read_hw(cmd, cmd_prefix, selectors)
+ local handle = assert(io.popen(cmd))
+ local devs = {}
+ for line in handle:lines() do
+ -- XXX-BZ TODO USB specific; need to fix usbconfig
+ if string.match(line, "No device match or lack of permissions.") then
+ dlog("ERROR: " .. line .. " Run as super user.")
+ -- silently ignore to match previous shell version behaviour
+ return devs
+ end
+
+ local a, b = string.find(line, cmd_prefix, 1, false)
+ if a and b then
+ local e = {}
+ local selok = true
+ local p = nil;
+
+ e["selectors"] = {}
+ for k, v in string.gmatch(string.sub(line, b, -1), "(%w+)=(0[Xx0]%x+)") do
+ if not selectors[k] then
+ selok = false
+ else
+ e["selectors"][k] = string.format(selectors[k]["fmt"], v)
+ if selectors[k]["primary"] then
+ p = k
+ end
+ end
+ end
+ if selok then
+ if not p or not e["selectors"][p] then
+ dlog("WARNING: skipping invalid '" .. cmd .. "' input line: " .. line .. " :: No primary key found")
+ elseif (tonumber(e["selectors"][p], 16) == 0) then
+ dlog("WARNING: skipping invalid '" .. cmd .. "' input line: " .. line .. " :: Primary key all-zero")
+ else
+ e["line"] = line
+ table.insert(devs, e)
+ end
+ else
+ dlog("WARNING: skipping invalid '" .. cmd .. "' line: " .. line .. " :: invalid selector found")
+ end
+ else
+ dlog("WARNING: skipping '" .. cmd .. "' line: " .. line .. " :: prefix not found")
+ end
+
+ end
+ handle:close()
+ return devs
+end
+
+-- Helper function to sort by the number of selectors (more first)
+--
+local function lselectors(t)
+ local a = {}
+ local k, v
+ for k, v in pairs(t) do
+ a[#a + 1] = k
+ end
+ table.sort(a, function(va, vb)
+ -- We want more selecotrs first
+ return t[va]["selnum"] > t[vb]["selnum"]
+ end)
+ local i = 0
+ local iter = function()
+ i = i + 1
+ if a[i] == nil then
+ return nil
+ else
+ return a[i], t[a[i]]
+ end
+ end
+ return iter
+end
+
+-- Check for duplicate entries in fimrware table.
+local function check_for_duplicate_in_firmware_table(fwtable, e)
+ local i = 0
+ for _, f in lselectors(fwtable) do
+ match = true
+ local k, v
+ for k, _ in pairs(f["selectors"]) do
+ -- See if the selector is avail on both entries
+ if not e["selectors"][k] or not f["selectors"][k] then
+ -- This would be a non-match but could also be a more specific.
+ -- Given we want to catch sub-set matches as well by a more
+ -- general entry, ignore this case.
+
+ -- Match with mask
+ elseif f["selectors"][k]["mask"] then
+ local m = tonumber(f["selectors"][k]["mask"], 16)
+ local ve = tonumber(e["selectors"][k]["val"], 16) & m
+ local vf = tonumber(f["selectors"][k]["val"], 16) & m
+ if ve ~= vf then
+ match = false
+ break
+ end
+
+ -- Otherwise plain match
+ elseif not (e["selectors"][k]["val"] == f["selectors"][k]["val"]) then
+ match = false
+ break
+ end
+ end
+ -- If we have a hit it is only valid if firmware matches.
+ -- If we have a more specific with different firmware, that is fine.
+ if match and (f["firmware"] ~= e["firmware"]) then
+ match = false
+ end
+ if match then
+ i = i + 1
+ dlog("DUPLICATE/MORE SPECIFIC FWT entry [" .. i .. "]:\n" ..
+ "\tOLD: " .. f["line"] .. "\n" ..
+ "\tNEW: " .. e["line"])
+ -- do not break, we want to catch all
+ end
+ end
+end
+
+local function read_firmware_table(tablefile, selectors)
+ local handle = assert(io.open(tablefile, "r"))
+ local fwtable = {}
+ for line in handle:lines() do
+ -- Skip comments or blank lines.
+ if not (string.match(line, "^#") or string.match(line, "^%S*$")) then
+ local e = {}
+ local selok = true
+ local dup = false
+ local selnum = 0
+ local k, v, m
+ local p = nil;
+
+ e["selectors"] = {}
+
+ -- First look for matches with mask; then without
+ for k, v, m in string.gmatch(line, "(%w+)=(0[Xx0]%x+)/(0[Xx0]%x+)") do
+ if not selectors[k] then
+ selok = false
+ elseif (e["selectors"][k]) then -- check for duplicates
+ dup = true
+ else
+ e["selectors"][k] = {}
+ e["selectors"][k]["val"] = string.format(selectors[k]["fmt"], v)
+ e["selectors"][k]["mask"] = string.format(selectors[k]["fmt"], m)
+ if selectors[k]["primary"] then
+ p = k
+ end
+ selnum = selnum + 1
+ end
+ end
+ for k, v in string.gmatch(line, "(%w+)=(0[Xx0]%x+)") do
+ if not selectors[k] then
+ selok = false
+ elseif e["selectors"][k] then -- check for duplicates
+ -- Only log a duplicate if we do not already have an entry with mask
+ if not e["selectors"][k]["mask"] then
+ dup = true
+ else
+ end
+ else
+ e["selectors"][k] = {}
+ e["selectors"][k]["val"] = string.format(selectors[k]["fmt"], v)
+ if selectors[k]["primary"] then
+ p = k
+ end
+ selnum = selnum + 1
+ end
+ end
+ -- Grab firmware(s); MUST always comes last!
+ e["firmware"] = string.match(line, "firmware='([^']+)'")
+ if not e["firmware"] then
+ dlog("WARNING: no firmware given on line: " .. line)
+ elseif not selok or dup then
+ dlog("WARNING: skipping invalid fwtab line: " .. line .. " :: " .. string.format("invalid(%s)/duplicate(%s) ", not selok, dup) .. "selector found")
+ -- We require vendor, and at least one more selector, and firmware as a minimum.
+ elseif not p or not e["selectors"][p] or not e["selectors"][p]["val"] or selnum < 2 then
+ dlog("WARNING: skipping incomplete/invalid fwtab line: " .. line .. " :: " .. string.format("%s, %s, %d, %s", p, e["selectors"][p]["val"], selnum, e["firmware"]))
+ else
+ e["selnum"] = selnum
+ e["line"] = line
+ if do_debug then
+ -- increases runtime noticably
+ check_for_duplicate_in_firmware_table(fwtable, e)
+ end
+ table.insert(fwtable, e)
+ end
+ end
+ end
+ handle:close()
+ return fwtable
+end
+
+--
+-- -----------------------------------------------------------------------------
+-- main
+-- -----------------------------------------------------------------------------
+--
+
+local usb_selectors = {
+ ["bcdUSB"] = { ["fmt"] = "%04X", ["primary"] = false, },
+ ["bDeviceClass"] = { ["fmt"] = "%04X", ["primary"] = false, },
+ ["bDeviceSubClass"] = { ["fmt"] = "%04X", ["primary"] = false, },
+ ["bDeviceProtocol"] = { ["fmt"] = "%04X", ["primary"] = false, },
+ ["idVendor"] = { ["fmt"] = "%04X", ["primary"] = true, },
+ ["idProduct"] = { ["fmt"] = "%04X", ["primary"] = false, },
+ ["bcdDevice"] = { ["fmt"] = "%04X", ["primary"] = false, },
+ ["iManufacturer"] = { ["fmt"] = "%04X", ["primary"] = false, },
+ ["iProduct"] = { ["fmt"] = "%04X", ["primary"] = false, },
+ ["iSerialNumber"] = { ["fmt"] = "%04X", ["primary"] = false, },
+ ["bNumConfigurations"] ={ ["fmt"] = "%04X", ["primary"] = false, },
+}
+
+local pci_selectors = {
+ ["class"] = { ["fmt"] = "%06X", ["primary"] = false, },
+ ["rev"] = { ["fmt"] = "%02X", ["primary"] = false, },
+ ["hdr"] = { ["fmt"] = "%02X", ["primary"] = false, },
+ ["vendor"] = { ["fmt"] = "%04X", ["primary"] = true, },
+ ["device"] = { ["fmt"] = "%04X", ["primary"] = false, },
+ ["subvendor"] = { ["fmt"] = "%04X", ["primary"] = false, },
+ ["subdevice"] = { ["fmt"] = "%04X", ["primary"] = false, },
+}
+
+local subsystems = {
+ ["pci"] = {
+ ["name"] = "pci",
+ ["selectors"] = pci_selectors,
+ ["readhw"] = read_hw,
+ ["cmd"] = "pciconf -l",
+ ["cmd_prefix"] = "^%w+@pci%d+:%d+:%d+:%d+:%S*",
+ ["readfw"] = read_firmware_table,
+ ["fwfile"] = "pcidevs",
+ },
+ ["usb"] = {
+ ["name"] = "usb",
+ ["selectors"] = usb_selectors,
+ ["readhw"] = read_hw,
+ ["cmd"] = "usbconfig -l dump_device_desc",
+ ["cmd_prefix"] = "^ugen%d.%d: ",
+ ["readfw"] = read_firmware_table,
+ ["fwfile"] = "usbdevs",
+ },
+}
+
+-- Give a sorted pair of a table
+--
+local function sorted_table_pairs(t, comp)
+ local a = {}
+ local k, v
+ for k, v in pairs(t) do
+ a[#a + 1] = k
+ end
+ table.sort(a, comp)
+ local i = 0
+ local iter = function()
+ i = i + 1
+ if a[i] == nil then
+ return nil
+ else
+ return a[i], t[a[i]]
+ end
+ end
+ return iter
+end
+
+-- Give a sorted pair of a table by value
+--
+local function sorted_table_pairs_v(t)
+ local a = {}
+ local k, v
+ for k, v in pairs(t) do
+ a[#a + 1] = k
+ end
+ table.sort(a, function(va, vb)
+ return t[va] < t[vb]
+ end)
+ local i = 0
+ local iter = function()
+ i = i + 1
+ if a[i] == nil then
+ return nil
+ else
+ return a[i], t[a[i]]
+ end
+ end
+ return iter
+end
+
+-- Give a sorted pair of subsystems
+--
+local function lsubsystems()
+ return sorted_table_pairs(subsystems)
+end
+
+-- Concat two strings with space
+--
+local function strconcat(a, b)
+ if #a > 0 then
+ a = a .. " " .. b
+ else
+ a = b
+ end
+ return a
+end
+
+-- Usage
+--
+local function usage(usage_err)
+ local script_name = arg[0]:match("([^/]+)$")
+ local subsys = ""
+
+ local k, v
+ for k, v in lsubsystems() do
+ -- only if subsystem is enabled (supported)
+ if v then
+ subsys = strconcat(subsys, k)
+ end
+ end
+
+ if string.len(usage_err) > 0 then
+ print("ERROR: " .. usage_err)
+ print()
+ end
+ print("Usage:")
+ print(script_name .. " [-nqv] [-D /path/to/tables] [" .. subsys .. "]")
+ print()
+ print("Options:")
+ print(" -D -- Try to load firmware tables from alternate directory")
+ print(" -d -- Debug mode. Print debug logging")
+ print(" -n -- Do not install packages, only print the results")
+ print(" -q -- Quiet mode. If used with -n only prints a package a line")
+ print(" -v -- More verbose")
+ print()
+end
+
+-- Check if file is readable.
+--
+local function file_is_readbale(fname)
+ local handle = io.open(fname, "r");
+ if handle then
+ handle:close()
+ return true
+ else
+ return false
+ end
+end
+
+-- Check paths for firmware table file.
+--
+local function find_table_source_file(tdir, fwtfile)
+ local fn
+
+ if not fwtfile then
+ return nil
+ end
+
+ if tdir then
+ fn = tdir .. '/' .. fwtfile
+ if file_is_readbale(fn) then
+ return fn
+ end
+ end
+
+ fn = "/usr/libexec/fwget/" .. fwtfile
+ if file_is_readbale(fn) then
+ return fn
+ end
+
+ return nil
+end
+
+-- For each device try and see if we can find a firmware entry.
+--
+local function find_firmware(devs, fwtable, fwnames)
+
+ -- Hash to check for duplicates.
+ local hash = {}
+ for _, v in ipairs(fwnames) do
+ if not hash[v] then
+ hash[v] = true
+ end
+ end
+
+ -- XXX-BZ improve algorithm?
+ -- - hash by a "idVendor/vendor" primary to reduce lookups?
+ -- - switch fwtable and devs order to only run once through the long list?
+ for i = 1, #devs do
+ local match = false
+ local e = devs[i]
+ vlog("Trying to match '" .. e["line"] .. "'")
+ -- Match all selectors (ordered by most selectors first)
+ for _, f in lselectors(fwtable) do
+ match = true
+ local k, v
+ for k, _ in pairs(f["selectors"]) do
+ -- Match with mask
+ if f["selectors"][k]["mask"] then
+ local m = tonumber(f["selectors"][k]["mask"], 16)
+ local ve = tonumber(e["selectors"][k], 16) & m
+ local vf = tonumber(f["selectors"][k]["val"], 16) & m
+ if ve ~= vf then
+ match = false
+ break
+ end
+
+ -- Otherwise plain match
+ elseif not (e["selectors"][k] == f["selectors"][k]["val"]) then
+ match = false
+ break
+ end
+ end
+ -- If we have a hit, add the firmware if not on the list already.
+ if match then
+ -- possibly split multiple firmware packages
+ for fw in string.gmatch(f["firmware"], "%S+") do
+ if not hash[fw] then
+ table.insert(fwnames, fw)
+ hash [fw] = true
+ end
+ end
+ break
+ end
+ end
+ if not match then
+ vlog("No package found for: '" .. e["line"] .. "'")
+ end
+ end
+end
+
+-- Handle combined arguments splitting them up.
+-- E.g., -nqv becomes -n -q -v.
+--
+local function split_args(args)
+ local nargs = {}
+ local na = 1
+ local i = 1
+
+ nargs[0] = args[0]
+ while i <= #args do
+ local opt = args[i]
+ if string.match(opt, "^-") then
+ local n
+ for n = 2, #opt do
+ local c = opt:sub(n,n)
+ nargs[na] = "-" .. c
+ na = na + 1
+ end
+ else
+ nargs[na] = opt
+ na = na + 1
+ end
+ i = i + 1
+ end
+
+ return nargs
+end
+
+-- Main function
+local function main()
+ -- Backward compat: check if LIBEXEC_PATH was given in environment.
+ local tdir = os.getenv("LIBEXEC_PATH")
+
+ -- Our firmware name (table)
+ local fwnames = {}
+ local fwnt
+
+ -- Handle command line arguments.
+ local do_dryrun = false
+ local do_usage = false
+ local usage_err = ""
+ local subsys = {}
+ local i = 1
+
+ -- Handle combinaed arguments such as -nvq.
+ -- This should be enough to get around the lack of getopt.
+ arg = split_args(arg)
+
+ -- Parse command line options.
+ while i <= #arg and arg[i] do
+ local opt = arg[i]
+ -- we leave -d in case we and a "debug" option in the future.
+ if opt == "-D" then
+ tdir = arg[i + 1]
+ i = i + 1
+ elseif opt == "-d" then
+ do_debug = true
+ elseif opt == "-n" then
+ do_dryrun = true
+ elseif opt == "-q" then
+ do_quiet = true
+ elseif opt == "-v" then
+ do_verbose = true
+ else
+ break
+ end
+ i = i + 1
+ end
+
+ -- Any subsystem(s) given?
+ while arg[i] do
+ local k, v
+ local found = false
+ for k, v in lsubsystems() do
+ -- only if sussystem is enabled (supported)
+ if arg[i] == k and v then
+ table.insert(subsys, v)
+ found = true
+ end
+ end
+ if not found then
+ do_usage = true
+ if string.match(arg[i], "^-") then
+ usage_err = strconcat(usage_err, "Invalid option " .. arg[i] .. ".")
+ else
+ usage_err = strconcat(usage_err, "Invalid subsystem " .. arg[i] .. ".")
+ end
+ end
+ i = i + 1
+ end
+
+ -- Any unexpected command line arguments?
+ if arg[i] then
+ do_usage = true
+ usage_err = strconcat(usage_err, "Unsupported command line argument " .. arg[i] .. ".")
+ end
+
+ -- Something went wrong, tell the user and goodbye &
+ if do_usage then
+ usage(usage_err)
+ os.exit(64)
+ end
+
+ -- No subsystem given, insert all we support.
+ if #subsys == 0 then
+ for k, v in lsubsystems() do
+ -- only if sussystem is enabled (supported)
+ if v then
+ table.insert(subsys, v)
+ end
+ end
+ end
+
+ -- Print list of susbsystems we are going to use.
+ local subsysstr = ""
+ for _, fwnt in pairs(subsys) do
+ -- only if sussystem is enabled (supported)
+ if fwnt and fwnt["name"] then
+ subsysstr = strconcat(subsysstr, fwnt["name"])
+ end
+ end
+ dlog("Running for subsystems: " .. subsysstr)
+
+ -- Call into each enabled subsystem and gather firmware package names.
+ for _, fwnt in pairs(subsys) do
+ if fwnt and fwnt["readhw"] and fwnt["readfw"] and fwnt["fwfile"] and
+ fwnt["cmd"] and fwnt["cmd_prefix"] and fwnt["selectors"] then
+ local fwfile = find_table_source_file(tdir, fwnt["fwfile"])
+
+ if fwfile then
+ local devs = fwnt["readhw"](fwnt["cmd"], fwnt["cmd_prefix"], fwnt["selectors"])
+ local fwtab = fwnt["readfw"](fwfile, fwnt["selectors"])
+ find_firmware(devs, fwtab, fwnames)
+ else
+ qlog("WARNING: cannot find " .. fwnt["fwfile"])
+ end
+ end
+ end
+
+ -- Print firmware packages found.
+ local packages = ""
+ if fwnames then
+ local fwn
+ for _, fwn in sorted_table_pairs_v(fwnames) do
+ if do_dryrun and do_quiet then
+ print(fwn)
+ end
+ packages = strconcat(packages, fwn)
+ end
+ end
+ if #packages == 0 then
+ qlog("No firmware packages to install.")
+ os.exit(0)
+ end
+ qlog("Needed firmware packages: " .. packages)
+ if do_dryrun then
+ os.exit(0)
+ end
+
+ assert(os.execute("pkg install -qy " .. packages))
+end
+
+main()
+
+-- end
diff --git a/usr.sbin/fwget/fwget.sh b/usr.sbin/fwget/fwget.sh
deleted file mode 100755
--- a/usr.sbin/fwget/fwget.sh
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/bin/sh
-
-#-
-# 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.
-
-: ${LIBEXEC_PATH:="/usr/libexec/fwget"}
-
-usage()
-{
- cat <<EOF
-Usage: $(basename "$0") [options] [subsystem]
-
-Supported subsystems
- pci, usb
-
-Options:
- -n -- Do not install packages, only print the results
- -q -- Quiet mode. If used with -n only prints a package a line
- -v -- More verbose
-EOF
- exit 1
-}
-
-log()
-{
- if [ "${QUIET}" != "y" ]; then
- echo "$@"
- fi
-}
-
-log_verbose()
-{
- if [ "${VERBOSE}" = "n" ]; then
- return
- fi
-
- echo "$@"
-}
-
-addpkg()
-{
- local _p
-
- _p=$1
-
- case "${packages}" in
- "") packages="${_p}" ;;
- *) # Avoid duplicates.
- case " ${packages} " in
- *\ ${_p}\ *) ;; # duplicate
- *) packages="${packages} ${_p}" ;;
- esac
- esac
-}
-
-DRY_RUN=n
-QUIET=n
-VERBOSE=n
-
-while getopts ":nqv" _arg; do
- case ${_arg} in
- n)
- DRY_RUN=y
- ;;
- q)
- QUIET=y
- ;;
- v)
- VERBOSE=y
- ;;
- ?)
- usage
- ;;
- esac
-done
-shift $(($OPTIND - 1))
-subsystems="$@"
-
-# Default searching PCI and USB subsystem
-if [ -z "${subsystems}" ]; then
- subsystems="pci usb"
-fi
-
-# Fail early on unsupported subsystem
-for subsystem in ${subsystems}; do
- if [ ! -f "${LIBEXEC_PATH}"/"${subsystem}" ]; then
- usage
- fi
- . "${LIBEXEC_PATH}"/"${subsystem}"
-done
-
-packages=""
-for subsystem in ${subsystems}; do
- "${subsystem}"_search_packages
-done
-
-case "${packages}" in
-""|^[[:space:]]*$)
- log "No firmware packages to install."
- exit 0
- ;;
-esac
-
-log "Needed firmware packages: '${packages}'"
-if [ "${DRY_RUN}" = "y" ]; then
- if [ "${QUIET}" = "y" ]; then
- for pkg in ${packages}; do
- case "${pkg}" in
- ""|^[[:space:]]*$) continue ;;
- esac
- echo "${pkg}"
- done
- fi
- exit 0
-fi
-
-pkg install -qy ${packages}
diff --git a/usr.sbin/fwget/pci/Makefile b/usr.sbin/fwget/pci/Makefile
--- a/usr.sbin/fwget/pci/Makefile
+++ b/usr.sbin/fwget/pci/Makefile
@@ -1,15 +1,27 @@
PACKAGE= fwget
-SCRIPTS=pci \
- pci_network_intel \
- pci_network_mediatek \
- pci_network_qca \
- pci_network_realtek \
- pci_video_amd \
- pci_video_intel
+PCIDEVS=
-BINDIR= ${LIBEXECDIR}/fwget
+# 02 Networking
+PCIDEVS+= pci_wireless_header
+PCIDEVS+= pci_wireless_intel
+PCIDEVS+= pci_wireless_mediatek
+PCIDEVS+= pci_wireless_qca
+PCIDEVS+= pci_wireless_realtek
+
+# 03 Display Controllers
+PCIDEVS+= pci_video_header
+PCIDEVS+= pci_video_amd
+PCIDEVS+= pci_video_intel
+
+SCRIPTS= pcidevs
+SCRIPTSDIR= ${LIBEXECDIR}/fwget
MAN=
+CLEANFILES= pcidevs
+
+pcidevs: ${PCIDEVS}
+ cat ${.ALLSRC} > ${.TARGET}
+
.include <bsd.prog.mk>
diff --git a/usr.sbin/fwget/pci/Makefile.depend b/usr.sbin/fwget/pci/Makefile.depend
deleted file mode 100644
--- a/usr.sbin/fwget/pci/Makefile.depend
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated - do NOT edit!
-
-DIRDEPS = \
-
-
-.include <dirdeps.mk>
-
-.if ${DEP_RELDIR} == ${_DEP_RELDIR}
-# local dependencies - needed for -jN in clean tree
-.endif
diff --git a/usr.sbin/fwget/pci/pci b/usr.sbin/fwget/pci/pci
deleted file mode 100644
--- a/usr.sbin/fwget/pci/pci
+++ /dev/null
@@ -1,113 +0,0 @@
-#-
-# 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" ;;
- 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_intel b/usr.sbin/fwget/pci/pci_network_intel
deleted file mode 100644
--- a/usr.sbin/fwget/pci/pci_network_intel
+++ /dev/null
@@ -1,468 +0,0 @@
-#-
-# SPDX-License-Identifier: BSD-2-Clause
-#
-# Copyright (c) 2024 The FreeBSD Foundation
-#
-# This software was developed by Björn Zeeb
-# under sponsorship from the FreeBSD Foundation.
-#
-
-# Some iwlwifi chipsets are detected by other means and we cannot replicate
-# the full logic here.
-# Currently we also filter out all those which do have a wildcard device ID
-# as well as all for those which exists no firmware (yet).
-
-# iwlwifi (dynamic)
-pci_network_intel_iwlwifi()
-{
-
- local idstr=$(echo $2 | sed 's,.*\ device=\(0x[0-9a-z]*\) subvendor=\(0x[0-9a-z]*\) subdevice=\(0x[0-9a-z]*\),\1/\2/\3,')
-
- case "${idstr}" 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/iwlwifi/zzz_fw_ports_fwget.sh }
- ### >>>
-
- # 7000
- 0x08b1/*/0x4a6c) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4a6e) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4a70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4c60) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4c70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x402a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x406a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x446a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x486e) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4020) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4060) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4062) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4072) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4160) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4162) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4170) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4420) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4460) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4462) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4470) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4472) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4560) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4570) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x4870) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x5070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x5072) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x5170) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0x5770) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc02a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc06a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc020) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc060) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc062) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc072) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc160) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc162) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc170) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc360) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc420) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc460) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc462) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc470) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc472) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc560) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc570) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc760) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xc770) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xcc60) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b1/*/0xcc70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0x426a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0x4220) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0x4260) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0x4262) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0x4270) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0x4272) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0x4360) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0x4370) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0xc26a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0xc220) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0xc260) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0xc262) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0xc270) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0xc272) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b2/*/0xc370) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x0060) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x0062) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x0072) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x0170) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x0172) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x0470) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x0472) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x1070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x1170) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x8060) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x8062) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x8070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x8072) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x8170) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x8172) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x8470) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b3/*/0x8570) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b4/*/0x0270) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b4/*/0x0272) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b4/*/0x0370) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b4/*/0x8270) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b4/*/0x8272) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x08b4/*/0x8370) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x24fb/*/0x0000) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x24fb/*/0x2010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x24fb/*/0x2050) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x24fb/*/0x2110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x24fb/*/0x2150) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5c10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5f10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x9e10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x500a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x502a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x900a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x1010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5000) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5002) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5012) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5020) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5090) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5100) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5102) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5190) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5400) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5410) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5412) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5420) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5490) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5510) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x5590) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x9000) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x9010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x9012) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x9110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x9112) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x9400) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x9410) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095a/*/0x9510) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095b/*/0x520a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095b/*/0x5200) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095b/*/0x5202) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095b/*/0x5210) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095b/*/0x5212) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095b/*/0x5290) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095b/*/0x5302) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095b/*/0x5310) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095b/*/0x9200) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095b/*/0x9210) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x095b/*/0x9310) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x3165/*/0x4010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x3165/*/0x4012) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x3165/*/0x4110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x3165/*/0x4410) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x3165/*/0x4510) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x3165/*/0x8010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x3165/*/0x8110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x3166/*/0x4210) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x3166/*/0x4212) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
- 0x3166/*/0x4310) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;;
-
- # 8000
- 0x24f3/*/0x0000) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x01f0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0004) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x10b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0044) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0132) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0150) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0250) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0810) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0850) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0910) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0930) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x0950) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x1010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x1012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x1050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x1110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x1130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x1132) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x1150) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x4010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x8010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x8050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x8110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x8130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x8132) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x8150) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x9010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x9050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x9110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x9130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x9132) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0x9150) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0xb0b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0xc010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0xc050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0xc110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0xd0b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0xd010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f3/*/0xd050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f4/*/0x0030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f4/*/0x1030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f4/*/0x8030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f4/*/0x9030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f4/*/0xc030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f4/*/0xd030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f5/*/0x0010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24f6/*/0x0030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x3e01) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x3e02) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x10d0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0014) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0150) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0810) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0850) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0910) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0930) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x0950) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x1010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x1012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x1014) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x1110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x1130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x8010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x8050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x8110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x8130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x9010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x9074) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
- 0x24fd/*/0x9110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;;
-
- # 9000
- 0x9df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;;
- 0x30dc/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;;
- 0x31dc/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;;
- 0x271b/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;;
- 0x271c/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;;
- 0x2526/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;;
- 0xa370/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;;
-
- # 22000
- 0x02f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x02f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x02f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x02f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x02f0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x02f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x02f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x02f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x02f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x02f0/*/0x6074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x02f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x3df0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x3df0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x3df0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x3df0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x3df0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x3df0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x3df0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x3df0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x3df0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x3df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x4df0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x4df0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x4df0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x4df0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x4df0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x4df0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x4df0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x4df0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x4df0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x4df0/*/0x6074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x4df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x06f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x06f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x06f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x06f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x06f0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x06f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x06f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x06f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x06f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x06f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x34f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x34f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x34f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x34f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x34f0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x34f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x34f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x34f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x34f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x34f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x43f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x43f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x43f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x43f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x43f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x43f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x43f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x43f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x43f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x2723/*/0x1653) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x2723/*/0x1654) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0x2723/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0xa0f0/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0xa0f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0xa0f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0xa0f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0xa0f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0xa0f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0xa0f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0xa0f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0xa0f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0xa0f0/*/0x6074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
- 0xa0f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;;
-
- # ax210
- 0x7a70/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7a70/*/0x00b0) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7a70/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7a70/*/0x0098) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7a70/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7a70/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7a70/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7a70/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7a70/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7a70/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7a70/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7af0/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7af0/*/0x00b0) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7af0/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7af0/*/0x0098) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7af0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7af0/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7af0/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7af0/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7af0/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7af0/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7af0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7e40/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7e40/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7e40/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7e40/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7e40/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7f70/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7f70/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x7f70/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x51f0/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x51f0/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x51f0/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x51f0/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x51f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x51f1/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x51f1/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x51f1/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x51f1/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x54f0/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x54f0/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x54f0/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x54f0/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x54f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x0020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x0024) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x1673) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x1674) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x2020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x4020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x6020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0x6024) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0xe020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/0xe024) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2725/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2726/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2726/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
- 0x2729/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;;
-
- # bz
- 0x4d40/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0x272b/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0x272d/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0x2727/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0x7740/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0000) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x00c0) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x00c4) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x00e0) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x00e4) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x00e8) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x00ec) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x009c) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x011c) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x40c4) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x40e0) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0094) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0098) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0100) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0110) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0114) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0118) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0314) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x1771) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x1772) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x1791) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x1792) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x4090) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x4110) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
- 0xa840/*/0x4314) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;;
-
- # sc
- 0x6e70/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;;
- 0xd340/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;;
- 0xe340/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;;
- 0xe440/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;;
-
- ### <<<
-
- esac
-}
-
-pci_network_intel()
-{
-
- for _drv in iwlwifi; do
- pci_network_intel_${_drv} "$1" "$2"
- case $? in
- 1) break ;;
- esac
- done
-}
diff --git a/usr.sbin/fwget/pci/pci_network_mediatek b/usr.sbin/fwget/pci/pci_network_mediatek
deleted file mode 100644
--- a/usr.sbin/fwget/pci/pci_network_mediatek
+++ /dev/null
@@ -1,73 +0,0 @@
-#-
-# 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-mediatek-kmod-mt792x"; return 1 ;;
- 0x0616) addpkg "wifi-firmware-mediatek-kmod-mt792x"; return 1 ;;
- 0x0717) addpkg "wifi-firmware-mediatek-kmod-mt792x"; return 1 ;;
- 0x7611) addpkg "wifi-firmware-mediatek-kmod-mt7615"; return 1 ;;
- 0x7615) addpkg "wifi-firmware-mediatek-kmod-mt7615"; return 1 ;;
- 0x7663) addpkg "wifi-firmware-mediatek-kmod-mt7615"; return 1 ;;
- 0x7906) addpkg "wifi-firmware-mediatek-kmod-mt7915"; return 1 ;;
- 0x790a) addpkg "wifi-firmware-mediatek-kmod-mt7915"; return 1 ;;
- 0x7915) addpkg "wifi-firmware-mediatek-kmod-mt7915"; return 1 ;;
- 0x7916) addpkg "wifi-firmware-mediatek-kmod-mt7915"; return 1 ;;
- 0x7920) addpkg "wifi-firmware-mediatek-kmod-mt792x"; return 1 ;;
- 0x7922) addpkg "wifi-firmware-mediatek-kmod-mt792x"; return 1 ;;
- 0x7925) addpkg "wifi-firmware-mediatek-kmod-mt792x"; return 1 ;;
- 0x7961) addpkg "wifi-firmware-mediatek-kmod-mt792x"; return 1 ;;
- 0x7990) addpkg "wifi-firmware-mediatek-kmod-mt7996"; return 1 ;;
- 0x7991) addpkg "wifi-firmware-mediatek-kmod-mt7996"; return 1 ;;
- 0x7992) addpkg "wifi-firmware-mediatek-kmod-mt7996"; return 1 ;;
- 0x799a) addpkg "wifi-firmware-mediatek-kmod-mt7996"; return 1 ;;
-
- ### <<<
- esac
-}
-
-pci_network_mediatek()
-{
-
- for _drv in mt76; do
- pci_network_mediatek_${_drv} "$1"
- case $? in
- 1) break ;;
- esac
- done
-}
diff --git a/usr.sbin/fwget/pci/pci_network_qca b/usr.sbin/fwget/pci/pci_network_qca
deleted file mode 100644
--- a/usr.sbin/fwget/pci/pci_network_qca
+++ /dev/null
@@ -1,101 +0,0 @@
-#-
-# SPDX-License-Identifier: BSD-2-Clause
-#
-# Copyright 2023 Bjoern A. Zeeb
-#
-# 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.
-#
-
-# ath10k
-pci_network_qca_ath10k()
-{
-
- 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/athk/ath10k/zzz_fw_ports_fwget.sh }
- ### >>>
-
- 0x003c) addpkg "wifi-firmware-ath10k-kmod-qca988x_hw20"; return 1 ;;
- 0x003e) addpkg "wifi-firmware-ath10k-kmod-qca6174_hw21"
- addpkg "wifi-firmware-ath10k-kmod-qca6174_hw30"
- return 1 ;;
- 0x0040) addpkg "wifi-firmware-ath10k-kmod-qca99x0_hw20"; return 1 ;;
- 0x0041) addpkg "wifi-firmware-ath10k-kmod-qca6174_hw21"; return 1 ;;
- 0x0042) addpkg "wifi-firmware-ath10k-kmod-qca6174_hw30"
- addpkg "wifi-firmware-ath10k-kmod-qca9377_hw10"
- return 1 ;;
- 0x0046) addpkg "wifi-firmware-ath10k-kmod-qca9984_hw10"; return 1 ;;
- 0x0050) addpkg "wifi-firmware-ath10k-kmod-qca9887_hw10"; return 1 ;;
- 0x0056) addpkg "wifi-firmware-ath10k-kmod-qca9888_hw20"; return 1 ;;
-
- ### <<<
- esac
-}
-
-# ath11k
-pci_network_qca_ath11k()
-{
-
- 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/athk/ath11k/zzz_fw_ports_fwget.sh }
- ### >>>
-
- 0x1101) addpkg "wifi-firmware-ath11k-kmod-qca6390_hw20"; return 1 ;;
- 0x1103) addpkg "wifi-firmware-ath11k-kmod-wcn6855_hw20"; return 1 ;;
- 0x1104) addpkg "wifi-firmware-ath11k-kmod-qcn9074_hw10"; return 1 ;;
-
- ### <<<
- esac
-}
-
-# ath12k
-pci_network_qca_ath12k()
-{
-
- 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/athk/ath12k/zzz_fw_ports_fwget.sh }
- ### >>>
-
- 0x1107) addpkg "wifi-firmware-ath12k-kmod-wcn7850_hw20"; return 1 ;;
-
- ### <<<
- esac
-}
-
-pci_network_qca()
-{
-
- for _drv in ath10k ath11k ath12k; do
- pci_network_qca_${_drv} "$1"
- case $? in
- 1) break ;;
- esac
- done
-}
diff --git a/usr.sbin/fwget/pci/pci_network_realtek b/usr.sbin/fwget/pci/pci_network_realtek
deleted file mode 100644
--- a/usr.sbin/fwget/pci/pci_network_realtek
+++ /dev/null
@@ -1,87 +0,0 @@
-#-
-# SPDX-License-Identifier: BSD-2-Clause
-#
-# Copyright 2023 Bjoern A. Zeeb
-# Copyright (c) 2024 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.
-#
-
-# rtw88
-pci_network_realtek_rtw88()
-{
-
- 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/rtw88/zzz_fw_ports_fwget.sh }
- ### >>>
-
- 0xd723) addpkg "wifi-firmware-rtw88-kmod-rtw8723d"; return 1 ;;
- 0xb821) addpkg "wifi-firmware-rtw88-kmod-rtw8821c"; return 1 ;;
- 0xc821) addpkg "wifi-firmware-rtw88-kmod-rtw8821c"; return 1 ;;
- 0xb822) addpkg "wifi-firmware-rtw88-kmod-rtw8822b"; return 1 ;;
- 0xc822) addpkg "wifi-firmware-rtw88-kmod-rtw8822c"; return 1 ;;
- 0xc82f) addpkg "wifi-firmware-rtw88-kmod-rtw8822c"; return 1 ;;
-
- ### <<<
- esac
-}
-
-# rtw89
-pci_network_realtek_rtw89()
-{
-
- 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/rtw89/zzz_fw_ports_fwget.sh }
- ### >>>
-
- 0xb851) addpkg "wifi-firmware-rtw89-kmod-rtw8851b"; return 1 ;;
- 0x8852) addpkg "wifi-firmware-rtw89-kmod-rtw8852a"; return 1 ;;
- 0xa85a) addpkg "wifi-firmware-rtw89-kmod-rtw8852a"; return 1 ;;
- 0xb852) addpkg "wifi-firmware-rtw89-kmod-rtw8852b"; return 1 ;;
- 0xb85b) addpkg "wifi-firmware-rtw89-kmod-rtw8852b"; return 1 ;;
- 0xc852) addpkg "wifi-firmware-rtw89-kmod-rtw8852c"; return 1 ;;
- 0x8922) addpkg "wifi-firmware-rtw89-kmod-rtw8922a"; return 1 ;;
-
- ### <<<
- esac
-}
-
-
-pci_network_realtek()
-{
-
- for _drv in rtw88 rtw89; do
- pci_network_realtek_${_drv} "$1"
- case $? in
- 1) break ;;
- esac
- done
-}
diff --git a/usr.sbin/fwget/pci/pci_video_amd b/usr.sbin/fwget/pci/pci_video_amd
--- a/usr.sbin/fwget/pci/pci_video_amd
+++ b/usr.sbin/fwget/pci/pci_video_amd
@@ -1,177 +1,465 @@
-#-
-# SPDX-License-Identifier: BSD-2-Clause
-#
# Copyright 2023 Beckhoff Automation GmbH & Co. KG
+# Copyright 2025 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.
+# SPDX-License-Identifier: BSD-2-Clause
#
-# 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_video_amd()
-{
- # A table listing the required firmware versions for each GPU series
- # is available at https://docs.kernel.org/gpu/amdgpu/driver-misc.html
+#
+# AMD Video (drm-kmod/amdgpu) (drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c)
+#
+# (device/mask as entries based on the old pci_video_amd shell implementation;
+# the more detailed ones are extracted from the driver)
+#
+# 0x678*|0x679*) addpkg "gpu-firmware-amd-kmod-tahiti" ;;
+vendor=0x1002 device=0x6780/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x6780 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x6784 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x6788 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x678A class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x6790/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x6790 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x6791 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x6792 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x6798 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x6799 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x679A class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x679B class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x679E class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+vendor=0x1002 device=0x679F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tahiti'
+# 0x680*|0x681*) addpkg "gpu-firmware-amd-kmod-pitcairn" ;;
+vendor=0x1002 device=0x6800/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6800 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6801 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6802 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6806 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6808 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6809 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6810/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6810 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6811 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6816 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6817 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6818 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+vendor=0x1002 device=0x6819 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-pitcairn'
+# 0x660*|0x661*|0x662*|0x663*) addpkg "gpu-firmware-amd-kmod-oland" ;;
+vendor=0x1002 device=0x6600/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6600 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6601 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6602 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6603 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6604 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6605 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6606 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6607 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6608 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6610/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6610 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6611 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6613 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6617 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6620/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6620 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6621 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6623 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6630/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+vendor=0x1002 device=0x6631 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-oland'
+# 0x682*|0x683*) addpkg "gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58" ;;
+vendor=0x1002 device=0x6820/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6820 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6821 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6822 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6823 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6824 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6825 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6826 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6827 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6828 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6829 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x682A class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x682B class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x682C class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x682D class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x682F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6830/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6830 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6831 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6835 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6837 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6838 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x6839 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x683B class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x683D class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+vendor=0x1002 device=0x683F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58'
+# 0x666*) addpkg "gpu-firmware-amd-kmod-hainan" ;;
+vendor=0x1002 device=0x6660/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hainan'
+vendor=0x1002 device=0x6660 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hainan'
+vendor=0x1002 device=0x6663 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hainan'
+vendor=0x1002 device=0x6664 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hainan'
+vendor=0x1002 device=0x6665 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hainan'
+vendor=0x1002 device=0x6667 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hainan'
+vendor=0x1002 device=0x666F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hainan'
+# Kaveri
+# 0x13*) addpkg "gpu-firmware-amd-kmod-kaveri" ;;
+vendor=0x1002 device=0x1300/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1304 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1305 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1306 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1307 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1309 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x130A class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x130B class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x130C class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x130D class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x130E class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x130F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1310 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1311 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1312 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1313 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1315 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1316 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1317 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x1318 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x131B class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x131C class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+vendor=0x1002 device=0x131D class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kaveri'
+# Bonaire
+# 0x664*|0x665*) addpkg "gpu-firmware-amd-kmod-bonaire" ;;
+vendor=0x1002 device=0x6640/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x6640 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x6641 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x6646 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x6647 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x6649 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x6650/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x6650 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x6651 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x6658 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x665c class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x665d class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+vendor=0x1002 device=0x665f class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-bonaire'
+# Hawaii
+# 0x67a*|0x67b*) addpkg "gpu-firmware-amd-kmod-hawaii" ;;
+vendor=0x1002 device=0x67A0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67A0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67A1 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67A2 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67A8 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67A9 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67AA class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67B0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67B0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67B1 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67B8 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67B9 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67BA class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+vendor=0x1002 device=0x67BE class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-hawaii'
+# Kabini
+# 0x983*) addpkg "gpu-firmware-amd-kmod-kabini" ;;
+vendor=0x1002 device=0x9830/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x9830 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x9831 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x9832 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x9833 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x9834 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x9835 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x9836 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x9837 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x9838 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x9839 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x983a class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x983b class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x983c class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x983d class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x983e class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+vendor=0x1002 device=0x983f class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-kabini'
+# mullins
+# 0x985*) addpkg "gpu-firmware-amd-kmod-mullins" ;;
+vendor=0x1002 device=0x9850/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x9850 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x9851 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x9852 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x9853 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x9854 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x9855 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x9856 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x9857 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x9858 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x9859 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x985A class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x985B class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x985C class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x985D class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x985E class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+vendor=0x1002 device=0x985F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-mullins'
+# topaz
+# 0x690*) addpkg "gpu-firmware-amd-kmod-topaz" ;;
+vendor=0x1002 device=0x6900/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-topaz'
+vendor=0x1002 device=0x6900 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-topaz'
+vendor=0x1002 device=0x6901 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-topaz'
+vendor=0x1002 device=0x6902 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-topaz'
+vendor=0x1002 device=0x6903 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-topaz'
+vendor=0x1002 device=0x6907 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-topaz'
+# tonga
+# 0x692*|0x693*) addpkg "gpu-firmware-amd-kmod-tonga" ;;
+vendor=0x1002 device=0x6920/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tonga'
+vendor=0x1002 device=0x6920 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tonga'
+vendor=0x1002 device=0x6921 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tonga'
+vendor=0x1002 device=0x6928 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tonga'
+vendor=0x1002 device=0x6929 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tonga'
+vendor=0x1002 device=0x692B class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tonga'
+vendor=0x1002 device=0x692F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tonga'
+vendor=0x1002 device=0x6930/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tonga'
+vendor=0x1002 device=0x6930 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tonga'
+vendor=0x1002 device=0x6938 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tonga'
+vendor=0x1002 device=0x6939 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-tonga'
+# fiji
+# 0x730*) addpkg "gpu-firmware-amd-kmod-fiji" ;;
+vendor=0x1002 device=0x7300/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-fiji'
+vendor=0x1002 device=0x7300 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-fiji'
+vendor=0x1002 device=0x730F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-fiji'
+# carrizo
+# 0x987*) addpkg "gpu-firmware-amd-kmod-carrizo" ;;
+vendor=0x1002 device=0x9870/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-carrizo'
+vendor=0x1002 device=0x9870 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-carrizo'
+vendor=0x1002 device=0x9874 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-carrizo'
+vendor=0x1002 device=0x9875 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-carrizo'
+vendor=0x1002 device=0x9876 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-carrizo'
+vendor=0x1002 device=0x9877 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-carrizo'
+# stoney
+# 0x98e4) addpkg "gpu-firmware-amd-kmod-stoney" ;;
+vendor=0x1002 device=0x98E4 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-stoney'
+# Polaris11
+# 0x67e*|0x67ff) addpkg "gpu-firmware-amd-kmod-polaris11" ;;
+vendor=0x1002 device=0x67E0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67E3 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67E8 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67EB class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67EF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67FF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67E1 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67E7 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67E9 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67ff/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris11'
+# asic_type_quirks (this contradicts the shell version; add both for now)
+vendor=0x1002 device=0x67ff class=0x030000/0xff0000 rev=0xe3 firmware='gpu-firmware-amd-kmod-polaris10 gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67ff class=0x030000/0xff0000 rev=0xe7 firmware='gpu-firmware-amd-kmod-polaris10 gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67ff class=0x030000/0xff0000 rev=0xf3 firmware='gpu-firmware-amd-kmod-polaris10 gpu-firmware-amd-kmod-polaris11'
+vendor=0x1002 device=0x67ff class=0x030000/0xff0000 rev=0xf7 firmware='gpu-firmware-amd-kmod-polaris10 gpu-firmware-amd-kmod-polaris11'
+# Polaris10
+# 0x67c*|0x67d*|0x6fdf) addpkg "gpu-firmware-amd-kmod-polaris10" ;;
+vendor=0x1002 device=0x67C0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67C0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67C1 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67C2 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67C4 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67C7 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67D0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67D0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67DF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67C8 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67C9 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67CA class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67CC class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x67CF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x6FDF/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+vendor=0x1002 device=0x6FDF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris10'
+# Polaris12
+# 0x698*|0x699*) addpkg "gpu-firmware-amd-kmod-polaris12" ;;
+vendor=0x1002 device=0x6980/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris12'
+vendor=0x1002 device=0x6980 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris12'
+vendor=0x1002 device=0x6981 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris12'
+vendor=0x1002 device=0x6985 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris12'
+vendor=0x1002 device=0x6986 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris12'
+vendor=0x1002 device=0x6987 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris12'
+vendor=0x1002 device=0x6990/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris12'
+vendor=0x1002 device=0x6995 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris12'
+vendor=0x1002 device=0x6997 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris12'
+vendor=0x1002 device=0x699F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-polaris12'
+# VEGAM
+# 0x694*) addpkg "gpu-firmware-amd-kmod-vegam" ;;
+vendor=0x1002 device=0x6940/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vegam'
+vendor=0x1002 device=0x694C class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vegam'
+vendor=0x1002 device=0x694E class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vegam'
+vendor=0x1002 device=0x694F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vegam'
+# Vega 10
+# 0x686*|0x687*) addpkg "gpu-firmware-amd-kmod-vega10" ;;
+vendor=0x1002 device=0x6860/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x6860 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x6861 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x6862 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x6863 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x6864 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x6867 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x6868 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x6869 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x686a class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x686b class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x686c class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x686d class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x686e class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x686f class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x6870/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+vendor=0x1002 device=0x687f class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega10'
+# Vega 12
+# 0x69a*) addpkg "gpu-firmware-amd-kmod-vega12" ;;
+vendor=0x1002 device=0x69A0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega12'
+vendor=0x1002 device=0x69A0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega12'
+vendor=0x1002 device=0x69A1 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega12'
+vendor=0x1002 device=0x69A2 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega12'
+vendor=0x1002 device=0x69A3 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega12'
+vendor=0x1002 device=0x69AF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega12'
+# Vega 20
+# 0x66a*) addpkg "gpu-firmware-amd-kmod-vega20" ;;
+vendor=0x1002 device=0x66A0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega20'
+vendor=0x1002 device=0x66A0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega20'
+vendor=0x1002 device=0x66A1 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega20'
+vendor=0x1002 device=0x66A2 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega20'
+vendor=0x1002 device=0x66A3 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega20'
+vendor=0x1002 device=0x66A4 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega20'
+vendor=0x1002 device=0x66A7 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega20'
+vendor=0x1002 device=0x66AF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vega20'
+# 0x15d8) addpkg "gpu-firmware-amd-kmod-picasso" ;;
+vendor=0x1002 device=0x15d8/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-picasso'
+# Raven
+# 0x15d*) addpkg "gpu-firmware-amd-kmod-raven" ;;
+vendor=0x1002 device=0x15d0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-raven'
+vendor=0x1002 device=0x15dd class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-raven'
+# (not Raven: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c)
+vendor=0x1002 device=0x15d8 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-raven gpu-firmware-amd-kmod-picasso'
+# Arcturus
+# 0x738*|0x739*) addpkg "gpu-firmware-amd-kmod-arcturus" ;;
+vendor=0x1002 device=0x7380/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-arcturus'
+vendor=0x1002 device=0x738C class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-arcturus'
+vendor=0x1002 device=0x7388 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-arcturus'
+vendor=0x1002 device=0x738E class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-arcturus'
+vendor=0x1002 device=0x7390/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-arcturus'
+vendor=0x1002 device=0x7390 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-arcturus'
+# Navi10
+# 0x731*) addpkg "gpu-firmware-amd-kmod-navi10" ;;
+vendor=0x1002 device=0x7310/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi10'
+vendor=0x1002 device=0x7310 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi10'
+vendor=0x1002 device=0x7312 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi10'
+vendor=0x1002 device=0x7318 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi10'
+vendor=0x1002 device=0x7319 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi10'
+vendor=0x1002 device=0x731A class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi10'
+vendor=0x1002 device=0x731B class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi10'
+vendor=0x1002 device=0x731E class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi10'
+vendor=0x1002 device=0x731F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi10'
+# Navi14
+# 0x734*) addpkg "gpu-firmware-amd-kmod-navi14" ;;
+vendor=0x1002 device=0x7340/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi14'
+vendor=0x1002 device=0x7340 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi14'
+vendor=0x1002 device=0x7341 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi14'
+vendor=0x1002 device=0x7347 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi14'
+vendor=0x1002 device=0x734F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi14'
+# Renoir
+# (Renoir: 0x1636, 0x164c; others add Green Sardine: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c)
+# 0x15e7|0x1638) addpkg "gpu-firmware-amd-kmod-renoir gpu-firmware-amd-kmod-green-sardine" ;;
+vendor=0x1002 device=0x15E7/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-renoir gpu-firmware-amd-kmod-green-sardine'
+vendor=0x1002 device=0x15E7 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-renoir gpu-firmware-amd-kmod-green-sardine'
+vendor=0x1002 device=0x1638/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-renoir gpu-firmware-amd-kmod-green-sardine'
+vendor=0x1002 device=0x1638 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-renoir gpu-firmware-amd-kmod-green-sardine'
+# 0x1636|0x164c) addpkg "gpu-firmware-amd-kmod-renoir" ;;
+vendor=0x1002 device=0x1636/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-renoir'
+vendor=0x1002 device=0x1636 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-renoir'
+vendor=0x1002 device=0x164C/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-renoir'
+vendor=0x1002 device=0x164C class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-renoir'
+# Navi12
+# 0x736*) addpkg "gpu-firmware-amd-kmod-navi12" ;;
+vendor=0x1002 device=0x7360/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi12'
+vendor=0x1002 device=0x7360 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi12'
+vendor=0x1002 device=0x7362 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navi12'
+# Sienna_Cichlid
+# 0x73a*|0x73b*) addpkg "gpu-firmware-amd-kmod-sienna-cichlid" ;;
+vendor=0x1002 device=0x73A0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73A0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73A1 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73A2 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73A3 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73A5 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73A8 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73A9 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73AB class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73AC class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73AD class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73AE class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73AF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73B0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+vendor=0x1002 device=0x73BF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-sienna-cichlid'
+# 0x163f) addpkg "gpu-firmware-amd-kmod-vangogh" ;;
+vendor=0x1002 device=0x163f/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-vangogh'
+# Yellow Carp
+# 0x164d|0x1681) addpkg "gpu-firmware-amd-kmod-yellow-carp" ;;
+vendor=0x1002 device=0x164D/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-yellow-carp'
+vendor=0x1002 device=0x164D class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-yellow-carp'
+vendor=0x1002 device=0x1681/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-yellow-carp'
+vendor=0x1002 device=0x1681 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-yellow-carp'
+# Navy_Flounder
+# 0x73c*|0x73d*) addpkg "gpu-firmware-amd-kmod-navy-flounder" ;;
+vendor=0x1002 device=0x73C0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navy-flounder'
+vendor=0x1002 device=0x73C0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navy-flounder'
+vendor=0x1002 device=0x73C1 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navy-flounder'
+vendor=0x1002 device=0x73C3 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navy-flounder'
+vendor=0x1002 device=0x73D0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navy-flounder'
+vendor=0x1002 device=0x73DA class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navy-flounder'
+vendor=0x1002 device=0x73DB class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navy-flounder'
+vendor=0x1002 device=0x73DC class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navy-flounder'
+vendor=0x1002 device=0x73DD class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navy-flounder'
+vendor=0x1002 device=0x73DE class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navy-flounder'
+vendor=0x1002 device=0x73DF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-navy-flounder'
+# DIMGREY_CAVEFISH
+# 0x73e*|0x73f*) addpkg "gpu-firmware-amd-kmod-dimgrey-cavefish" ;;
+vendor=0x1002 device=0x73E0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73E0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73E1 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73E2 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73E3 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73E8 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73E9 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73EA class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73EB class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73EC class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73ED class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73EF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73F0/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+vendor=0x1002 device=0x73FF class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dimgrey-cavefish'
+# Aldebaran
+# 0x740*|0x741*) addpkg "gpu-firmware-amd-kmod-aldebaran" ;;
+vendor=0x1002 device=0x7400/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-aldebaran'
+vendor=0x1002 device=0x7408 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-aldebaran'
+vendor=0x1002 device=0x740C class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-aldebaran'
+vendor=0x1002 device=0x740F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-aldebaran'
+vendor=0x1002 device=0x7410/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-aldebaran'
+vendor=0x1002 device=0x7410 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-aldebaran'
+# CYAN_SKILLFISH
+# 0x13fe|0x143f) addpkg "gpu-firmware-amd-kmod-cyan-skillfish2" ;;
+# (cyan-skillfish2: 0x13FE, 0x143F; drivers/gpu/drm/amd/amdgpu/amdgpu_device.c)
+vendor=0x1002 device=0x13FE/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-cyan-skillfish2'
+vendor=0x1002 device=0x13FE class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-cyan-skillfish2'
+vendor=0x1002 device=0x143F/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-cyan-skillfish2'
+vendor=0x1002 device=0x143F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-cyan-skillfish2'
+# BEIGE_GOBY
+# 0x742*|0x743*) addpkg "gpu-firmware-amd-kmod-beige-goby" ;;
+vendor=0x1002 device=0x7420/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-beige-goby'
+vendor=0x1002 device=0x7420 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-beige-goby'
+vendor=0x1002 device=0x7421 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-beige-goby'
+vendor=0x1002 device=0x7422 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-beige-goby'
+vendor=0x1002 device=0x7423 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-beige-goby'
+vendor=0x1002 device=0x7424 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-beige-goby'
+vendor=0x1002 device=0x7430/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-beige-goby'
+vendor=0x1002 device=0x743F class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-beige-goby'
+# Discovery: catchall entries we cannot help much with for firmware.
+# vendor=0x1002 class=0x030000/0xffffff firmware=''
+# vendor=0x1002 class=0x038000/0xffffff firmware=''
+# vendor=0x1002 class=0x120000/0xffffff firmware=''
+# Individuals from the shell script still:
+# 0x744c) addpkg "gpu-firmware-amd-kmod-dcn-3-2-0" addpkg "gpu-firmware-amd-kmod-gc-11-0-0" addpkg "gpu-firmware-amd-kmod-psp-13-0-0" addpkg "gpu-firmware-amd-kmod-sdma-6-0-0" addpkg "gpu-firmware-amd-kmod-smu-13-0-0" addpkg "gpu-firmware-amd-kmod-vcn-4-0-0" ;;
+vendor=0x1002 device=0x744c/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dcn-3-2-0 gpu-firmware-amd-kmod-gc-11-0-0 gpu-firmware-amd-kmod-psp-13-0-0 gpu-firmware-amd-kmod-sdma-6-0-0 gpu-firmware-amd-kmod-smu-13-0-0 gpu-firmware-amd-kmod-vcn-4-0-0'
+# 0x15bf) addpkg "gpu-firmware-amd-kmod-gc-11-0-1" addpkg "gpu-firmware-amd-kmod-psp-13-0-4" addpkg "gpu-firmware-amd-kmod-dcn-3-1-4" addpkg "gpu-firmware-amd-kmod-sdma-6-0-1" addpkg "gpu-firmware-amd-kmod-vcn-4-0-2" ;;
+vendor=0x1002 device=0x15bf/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-gc-11-0-1 gpu-firmware-amd-kmod-psp-13-0-4 gpu-firmware-amd-kmod-dcn-3-1-4 gpu-firmware-amd-kmod-sdma-6-0-1 gpu-firmware-amd-kmod-vcn-4-0-2'
+# 0x15c8) addpkg "gpu-firmware-amd-kmod-dcn-3-1-4" addpkg "gpu-firmware-amd-kmod-gc-11-0-4" addpkg "gpu-firmware-amd-kmod-psp-13-0-11" addpkg "gpu-firmware-amd-kmod-sdma-6-0-1" addpkg "gpu-firmware-amd-kmod-vcn-4-0-2" ;;
+vendor=0x1002 device=0x15c8/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-dcn-3-1-4 gpu-firmware-amd-kmod-gc-11-0-4 gpu-firmware-amd-kmod-psp-13-0-11 gpu-firmware-amd-kmod-sdma-6-0-1 gpu-firmware-amd-kmod-vcn-4-0-2'
+# 0x164e) addpkg "gpu-firmware-amd-kmod-gc-10-3-6" addpkg "gpu-firmware-amd-kmod-psp-13-0-5" addpkg "gpu-firmware-amd-kmod-dcn-3-1-5" addpkg "gpu-firmware-amd-kmod-sdma-5-2-6" addpkg "gpu-firmware-amd-kmod-vcn-3-1-2" ;;
+vendor=0x1002 device=0x164e/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-amd-kmod-gc-10-3-6 gpu-firmware-amd-kmod-psp-13-0-5 gpu-firmware-amd-kmod-dcn-3-1-5 gpu-firmware-amd-kmod-sdma-5-2-6 gpu-firmware-amd-kmod-vcn-3-1-2'
- case "$1" in
- 0x678*|0x679*)
- addpkg "gpu-firmware-amd-kmod-tahiti"
- ;;
- 0x680*|0x681*)
- addpkg "gpu-firmware-amd-kmod-pitcairn"
- ;;
- 0x660*|0x661*|0x662*|0x663*)
- addpkg "gpu-firmware-amd-kmod-oland"
- ;;
- 0x682*|0x683*)
- addpkg "gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58"
- ;;
- 0x666*)
- addpkg "gpu-firmware-amd-kmod-hainan"
- ;;
- 0x13*)
- addpkg "gpu-firmware-amd-kmod-kaveri"
- ;;
- 0x664*|0x665*)
- addpkg "gpu-firmware-amd-kmod-bonaire"
- ;;
- 0x67a*|0x67b*)
- addpkg "gpu-firmware-amd-kmod-hawaii"
- ;;
- 0x983*)
- addpkg "gpu-firmware-amd-kmod-kabini"
- ;;
- 0x985*)
- addpkg "gpu-firmware-amd-kmod-mullins"
- ;;
- 0x690*)
- addpkg "gpu-firmware-amd-kmod-topaz"
- ;;
- 0x692*|0x693*)
- addpkg "gpu-firmware-amd-kmod-tonga"
- ;;
- 0x730*)
- addpkg "gpu-firmware-amd-kmod-fiji"
- ;;
- 0x987*)
- addpkg "gpu-firmware-amd-kmod-carrizo"
- ;;
- 0x98e4)
- addpkg "gpu-firmware-amd-kmod-stoney"
- ;;
- 0x67e*|0x67ff)
- addpkg "gpu-firmware-amd-kmod-polaris11"
- ;;
- 0x67c*|0x67d*|0x6fdf)
- addpkg "gpu-firmware-amd-kmod-polaris10"
- ;;
- 0x698*|0x699*)
- addpkg "gpu-firmware-amd-kmod-polaris12"
- ;;
- 0x694*)
- addpkg "gpu-firmware-amd-kmod-vegam"
- ;;
- 0x686*|0x687*)
- addpkg "gpu-firmware-amd-kmod-vega10"
- ;;
- 0x69a*)
- addpkg "gpu-firmware-amd-kmod-vega12"
- ;;
- 0x66a*)
- addpkg "gpu-firmware-amd-kmod-vega20"
- ;;
- 0x15d8)
- addpkg "gpu-firmware-amd-kmod-picasso"
- ;;
- 0x15d*)
- addpkg "gpu-firmware-amd-kmod-raven"
- ;;
- 0x738*|0x739*)
- addpkg "gpu-firmware-amd-kmod-arcturus"
- ;;
- 0x731*)
- addpkg "gpu-firmware-amd-kmod-navi10"
- ;;
- 0x734*)
- addpkg "gpu-firmware-amd-kmod-navi14"
- ;;
- 0x15e7|0x1638)
- addpkg "gpu-firmware-amd-kmod-renoir gpu-firmware-amd-kmod-green-sardine"
- ;;
- 0x1636|0x164c)
- addpkg "gpu-firmware-amd-kmod-renoir"
- ;;
- 0x736*)
- addpkg "gpu-firmware-amd-kmod-navi12"
- ;;
- 0x73a*|0x73b*)
- addpkg "gpu-firmware-amd-kmod-sienna-cichlid"
- ;;
- 0x163f)
- addpkg "gpu-firmware-amd-kmod-vangogh"
- ;;
- 0x164d|0x1681)
- addpkg "gpu-firmware-amd-kmod-yellow-carp"
- ;;
- 0x73c*|0x73d*)
- addpkg "gpu-firmware-amd-kmod-navy-flounder"
- ;;
- 0x73e*|0x73f*)
- addpkg "gpu-firmware-amd-kmod-dimgrey-cavefish"
- ;;
- 0x740*|0x741*)
- addpkg "gpu-firmware-amd-kmod-aldebaran"
- ;;
- 0x13fe|0x143f)
- addpkg "gpu-firmware-amd-kmod-cyan-skillfish2"
- ;;
- 0x742*|0x743*)
- addpkg "gpu-firmware-amd-kmod-beige-goby"
- ;;
- 0x744c)
- addpkg "gpu-firmware-amd-kmod-dcn-3-2-0"
- addpkg "gpu-firmware-amd-kmod-gc-11-0-0"
- addpkg "gpu-firmware-amd-kmod-psp-13-0-0"
- addpkg "gpu-firmware-amd-kmod-sdma-6-0-0"
- addpkg "gpu-firmware-amd-kmod-smu-13-0-0"
- addpkg "gpu-firmware-amd-kmod-vcn-4-0-0"
- ;;
- 0x15bf)
- addpkg "gpu-firmware-amd-kmod-gc-11-0-1"
- addpkg "gpu-firmware-amd-kmod-psp-13-0-4"
- addpkg "gpu-firmware-amd-kmod-dcn-3-1-4"
- addpkg "gpu-firmware-amd-kmod-sdma-6-0-1"
- addpkg "gpu-firmware-amd-kmod-vcn-4-0-2"
- ;;
- 0x15c8)
- addpkg "gpu-firmware-amd-kmod-dcn-3-1-4"
- addpkg "gpu-firmware-amd-kmod-gc-11-0-4"
- addpkg "gpu-firmware-amd-kmod-psp-13-0-11"
- addpkg "gpu-firmware-amd-kmod-sdma-6-0-1"
- addpkg "gpu-firmware-amd-kmod-vcn-4-0-2"
- ;;
- 0x164e)
- addpkg "gpu-firmware-amd-kmod-gc-10-3-6"
- addpkg "gpu-firmware-amd-kmod-psp-13-0-5"
- addpkg "gpu-firmware-amd-kmod-dcn-3-1-5"
- addpkg "gpu-firmware-amd-kmod-sdma-5-2-6"
- addpkg "gpu-firmware-amd-kmod-vcn-3-1-2"
- ;;
- esac
-}
diff --git a/usr.sbin/fwget/pci/pci_video_header b/usr.sbin/fwget/pci/pci_video_header
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/pci/pci_video_header
@@ -0,0 +1,6 @@
+
+################################################################################
+#
+# DISPLAY CONTROLLERS (0x03)
+#
+
diff --git a/usr.sbin/fwget/pci/pci_video_intel b/usr.sbin/fwget/pci/pci_video_intel
--- a/usr.sbin/fwget/pci/pci_video_intel
+++ b/usr.sbin/fwget/pci/pci_video_intel
@@ -1,78 +1,425 @@
-#-
+# Copyright 2023 Beckhoff Automation GmbH & Co. KG
+# Copyright 2025 Bjoern A. Zeeb
+#
# SPDX-License-Identifier: BSD-2-Clause
#
-# Copyright 2023 Beckhoff Automation GmbH & Co. KG
+
+#
+# Intel Video (drm-kmod/i915) (drivers/gpu/drm/i915/i915_pci.c)
+#
+# Note: a full table of PCI IDs/chipsets can be found here:
+# https://dgpu-docs.intel.com/devices/hardware-table.html
+#
+# (device/mask as entries based on the old pci_video_amd shell implementation;
+# the more detailed ones are extracted from the driver)
+#
+# Skylake
+# 0x19*) addpkg "gpu-firmware-intel-kmod-skylake" ;;
+vendor=0x8086 device=0x1900/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1902 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1906 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x190a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x190b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x190e class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1912 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1913 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1915 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1916 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1917 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x191a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x191b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x191d class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x191e class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1921 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1923 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1926 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1927 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x192a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x192b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x192d class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x1932 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x193a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x193b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+vendor=0x8086 device=0x193d class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-skylake'
+# Broxton
+# 0x0a*|0x1a*|0x5a84|0x5a85) addpkg "gpu-firmware-intel-kmod-broxton" ;;
+vendor=0x8086 device=0x0a00/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton'
+vendor=0x8086 device=0x0a84 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton'
+vendor=0x8086 device=0x0a02 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a06 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a0a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a0b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a0e class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a12 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a16 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a1a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a1b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a1e class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a22 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a26 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a2a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a2b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x0a2e class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # haswell
+vendor=0x8086 device=0x1a00/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton'
+vendor=0x8086 device=0x1a84 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton'
+vendor=0x8086 device=0x1a85 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton'
+vendor=0x8086 device=0x5a84/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton'
+vendor=0x8086 device=0x5a84 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # Apollo Lake
+vendor=0x8086 device=0x5a85/0xffff class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton'
+vendor=0x8086 device=0x5a85 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-broxton' # Apollo Lake
+# Geminilake
+# 0x318*) addpkg "gpu-firmware-intel-kmod-geminilake" ;;
+vendor=0x8086 device=0x3180/0xfff0 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-geminilake'
+vendor=0x8086 device=0x3184 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-geminilake'
+vendor=0x8086 device=0x3185 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-geminilake'
+# Kabylake, Coffeelake, and Cometlake
+# (see drivers/gpu/drm/i915/display/intel_dmc.c)
+# 0x59*|0x87*|0x9b*|0x3e*) addpkg "gpu-firmware-intel-kmod-kabylake" ;;
+vendor=0x8086 device=0x5900/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5902 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5906 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5908 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x590a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x590b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x590e class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5912 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5913 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5915 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5916 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5917 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x591a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x591b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x591c class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x591d class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x591e class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5921 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5923 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5926 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x5927 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x593b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x8700/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x87c0 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x87ca class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x9b00/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x9b21 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9b41 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9ba2 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9ba4 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9ba5 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9ba8 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9baa class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9bac class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9bc2 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9bc4 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9bc5 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9bc6 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9bc8 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9bca class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9bcc class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9be6 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x9bf6 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # cometlake
+vendor=0x8086 device=0x3e00/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake'
+vendor=0x8086 device=0x3e90 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3e91 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3e92 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3e93 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3e94 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3e96 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3e98 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3e99 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3e9a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3e9b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3e9c class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3ea0 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3ea1 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3ea2 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3ea3 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3ea4 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3ea5 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3ea6 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3ea7 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3ea8 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+vendor=0x8086 device=0x3ea9 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-kabylake' # coffeelake
+# Cannonlake
+# 0x5a*) addpkg "gpu-firmware-intel-kmod-cannonlake" ;;
+# Note: nothing in the driver or at Intel's table? There are two Apollo Lake (see Broxton)
+vendor=0x8086 device=0x5a00/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-cannonlake'
+# Icelake
+# 0x8a*) addpkg "gpu-firmware-intel-kmod-icelake" ;;
+vendor=0x8086 device=0x8a00/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a50 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a51 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a52 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a53 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a54 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a56 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a57 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a58 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a59 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a5a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a5b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a5c class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a5d class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a70 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+vendor=0x8086 device=0x8a71 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-icelake'
+# Elkhartlake/Jasperlake
+# 0x45*|0x4e*) addpkg "gpu-firmwar/0xff00e-intel-kmod-elkhartlake" ;;
+vendor=0x8086 device=0x4500/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake'
+vendor=0x8086 device=0x4541 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake'
+vendor=0x8086 device=0x4551 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake'
+vendor=0x8086 device=0x4555 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake'
+vendor=0x8086 device=0x4557 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake'
+vendor=0x8086 device=0x4570 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake'
+vendor=0x8086 device=0x4571 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake'
+vendor=0x8086 device=0x4e00/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake'
+vendor=0x8086 device=0x4e51 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake' # jasperlake
+vendor=0x8086 device=0x4e55 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake' # jasperlake
+vendor=0x8086 device=0x4e57 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake' # jasperlake
+vendor=0x8086 device=0x4e61 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake' # jasperlake
+vendor=0x8086 device=0x4e71 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-elkhartlake' # jasperlake
+# Tigerlake
+# 0x9a*) addpkg "gpu-firmware-intel-kmod-tigerlake" ;;
+vendor=0x8086 device=0x9a00/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x9a40 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x9a49 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x9a59 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x9a60 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x9a68 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x9a70 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x9a78 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x9ac0 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x9ac9 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x9ad9 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x9af8 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-tigerlake'
+# Rocketlake (Uses Tigerlake GuC/HuC firmware)
+# 0x4c*) addpkg "gpu-firmware-intel-kmod-rocketlake gpu-firmware-intel-kmod-tigerlake" ;;
+vendor=0x8086 device=0x4c00/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-rocketlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4c80 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-rocketlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4c8a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-rocketlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4c8b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-rocketlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4c8c class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-rocketlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4c90 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-rocketlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4c9a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-rocketlake gpu-firmware-intel-kmod-tigerlake'
+# DG1
+# 0x49*) addpkg "gpu-firmware-intel-kmod-dg1" ;;
+vendor=0x8086 device=0x4900/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg1'
+vendor=0x8086 device=0x4905 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg1'
+vendor=0x8086 device=0x4906 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg1'
+vendor=0x8086 device=0x4907 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg1'
+vendor=0x8086 device=0x4908 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg1'
+vendor=0x8086 device=0x4909 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg1'
+# Alderlake (S/P) (Uses tigerlake GuC/HuC firmware)
+# 0x46*) addpkg "gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake" ;;
+vendor=0x8086 device=0x4600/0xff00 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4626 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4628 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x462a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4680 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4682 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4688 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x468a class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x468b class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4690 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4692 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x4693 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46a0 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46a1 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46a2 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46a3 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46a6 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46a8 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46aa class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46b0 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46b1 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46b2 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46b3 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46c0 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46c1 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46c2 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46c3 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46d0 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46d1 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46d2 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46d3 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
+vendor=0x8086 device=0x46d4 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake'
#
-# 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.
+# Unhandled by shell script version:
#
-# 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.
+# DG2 (there is a firmware package already)
+vendor=0x8086 device=0x5690 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x5691 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x5692 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x5693 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x5694 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x5695 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x5696 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x5697 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56a0 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56a1 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56a2 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56a3 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56a4 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56a5 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56a6 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56b0 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56b1 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56b2 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56b3 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56ba class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56bb class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56bc class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56bd class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56c0 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56c1 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+vendor=0x8086 device=0x56c2 class=0x030000/0xff0000 firmware='gpu-firmware-intel-kmod-dg2'
+# Others
+vendor=0x8086 device=0x0042 class=0x030000/0xff0000 firmware='' # ironlake
+vendor=0x8086 device=0x0046 class=0x030000/0xff0000 firmware='' # ironlake
+vendor=0x8086 device=0x0102 class=0x030000/0xff0000 firmware='' # sandybridge
+vendor=0x8086 device=0x0106 class=0x030000/0xff0000 firmware='' # sandybridge
+vendor=0x8086 device=0x010a class=0x030000/0xff0000 firmware='' # sandybridge
+vendor=0x8086 device=0x0112 class=0x030000/0xff0000 firmware='' # sandybridge
+vendor=0x8086 device=0x0116 class=0x030000/0xff0000 firmware='' # sandybridge
+vendor=0x8086 device=0x0122 class=0x030000/0xff0000 firmware='' # sandybridge
+vendor=0x8086 device=0x0126 class=0x030000/0xff0000 firmware='' # sandybridge
+vendor=0x8086 device=0x0152 class=0x030000/0xff0000 firmware='' # ivybridge
+vendor=0x8086 device=0x0156 class=0x030000/0xff0000 firmware='' # ivybridge
+vendor=0x8086 device=0x015a class=0x030000/0xff0000 firmware='' # ivybridge
+vendor=0x8086 device=0x0162 class=0x030000/0xff0000 firmware='' # ivybridge
+vendor=0x8086 device=0x0166 class=0x030000/0xff0000 firmware='' # ivybridge
+vendor=0x8086 device=0x016a class=0x030000/0xff0000 firmware='' # ivybridge
+vendor=0x8086 device=0x016a subvendor=0x152d subdevice=0x8990 class=0x030000/0xff0000 firmware='' # ivybridge
+vendor=0x8086 device=0x0402 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0406 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x040a class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x040b class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x040e class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0412 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0416 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x041a class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x041b class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x041e class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0422 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0426 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x042a class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x042b class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x042e class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c02 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c06 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c0a class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c0b class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c0e class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c12 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c16 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c1a class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c1b class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c1e class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c22 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c26 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c2a class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c2b class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0c2e class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d02 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d06 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d0a class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d0b class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d0e class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d12 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d16 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d1a class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d1b class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d1e class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d22 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d26 class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d2a class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d2b class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0d2e class=0x030000/0xff0000 firmware='' # haswell
+vendor=0x8086 device=0x0f30 class=0x030000/0xff0000 firmware='' # valleyview
+vendor=0x8086 device=0x0f31 class=0x030000/0xff0000 firmware='' # valleyview
+vendor=0x8086 device=0x0f32 class=0x030000/0xff0000 firmware='' # valleyview
+vendor=0x8086 device=0x0f33 class=0x030000/0xff0000 firmware='' # valleyview
+vendor=0x8086 device=0x1602 class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x1606 class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x160a class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x160b class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x160d class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x160e class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x1612 class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x1616 class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x161a class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x161b class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x161d class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x161e class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x1622 class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x1626 class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x162a class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x162b class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x162d class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x162e class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x1632 class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x1636 class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x163a class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x163b class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x163d class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x163e class=0x030000/0xff0000 firmware='' # broadwell
+vendor=0x8086 device=0x22b0 class=0x030000/0xff0000 firmware='' # cherryview
+vendor=0x8086 device=0x22b1 class=0x030000/0xff0000 firmware='' # cherryview
+vendor=0x8086 device=0x22b2 class=0x030000/0xff0000 firmware='' # cherryview
+vendor=0x8086 device=0x22b3 class=0x030000/0xff0000 firmware='' # cherryview
+vendor=0x8086 device=0x2562 class=0x030000/0xff0000 firmware='' # i845g
+vendor=0x8086 device=0x2572 class=0x030000/0xff0000 firmware='' # i865g
+vendor=0x8086 device=0x2582 class=0x030000/0xff0000 firmware='' # i915g
+vendor=0x8086 device=0x258a class=0x030000/0xff0000 firmware='' # i915g
+vendor=0x8086 device=0x2592 class=0x030000/0xff0000 firmware='' # i915gm
+vendor=0x8086 device=0x2772 class=0x030000/0xff0000 firmware='' # i945g
+vendor=0x8086 device=0x27a2 class=0x030000/0xff0000 firmware='' # i945gm
+vendor=0x8086 device=0x27ae class=0x030000/0xff0000 firmware='' # i945gm
+vendor=0x8086 device=0x2972 class=0x030000/0xff0000 firmware='' # i965g
+vendor=0x8086 device=0x2982 class=0x030000/0xff0000 firmware='' # i965g
+vendor=0x8086 device=0x2992 class=0x030000/0xff0000 firmware='' # i965g
+vendor=0x8086 device=0x29a2 class=0x030000/0xff0000 firmware='' # i965g
+vendor=0x8086 device=0x29b2 class=0x030000/0xff0000 firmware='' # g33
+vendor=0x8086 device=0x29c2 class=0x030000/0xff0000 firmware='' # g33
+vendor=0x8086 device=0x29d2 class=0x030000/0xff0000 firmware='' # g33
+vendor=0x8086 device=0x2a02 class=0x030000/0xff0000 firmware='' # i965gm
+vendor=0x8086 device=0x2a12 class=0x030000/0xff0000 firmware='' # i965gm
+vendor=0x8086 device=0x2a42 class=0x030000/0xff0000 firmware='' # gm45
+vendor=0x8086 device=0x2e02 class=0x030000/0xff0000 firmware='' # g45
+vendor=0x8086 device=0x2e12 class=0x030000/0xff0000 firmware='' # g45
+vendor=0x8086 device=0x2e22 class=0x030000/0xff0000 firmware='' # g45
+vendor=0x8086 device=0x2e32 class=0x030000/0xff0000 firmware='' # g45
+vendor=0x8086 device=0x2e42 class=0x030000/0xff0000 firmware='' # g45
+vendor=0x8086 device=0x2e92 class=0x030000/0xff0000 firmware='' # g45
+vendor=0x8086 device=0x3577 class=0x030000/0xff0000 firmware='' # i830
+vendor=0x8086 device=0x3582 class=0x030000/0xff0000 firmware='' # i85x
+vendor=0x8086 device=0x358e class=0x030000/0xff0000 firmware='' # i85x
+vendor=0x8086 device=0x7d40 class=0x030000/0xff0000 firmware='' # meteorlake
+vendor=0x8086 device=0x7d41 class=0x030000/0xff0000 firmware='' # meteorlake
+vendor=0x8086 device=0x7d45 class=0x030000/0xff0000 firmware='' # meteorlake
+vendor=0x8086 device=0x7d51 class=0x030000/0xff0000 firmware='' # meteorlake
+vendor=0x8086 device=0x7d55 class=0x030000/0xff0000 firmware='' # meteorlake
+vendor=0x8086 device=0x7d60 class=0x030000/0xff0000 firmware='' # meteorlake
+vendor=0x8086 device=0x7d67 class=0x030000/0xff0000 firmware='' # meteorlake
+vendor=0x8086 device=0x7dd1 class=0x030000/0xff0000 firmware='' # meteorlake
+vendor=0x8086 device=0x7dd5 class=0x030000/0xff0000 firmware='' # meteorlake
+vendor=0x8086 device=0xa001 class=0x030000/0xff0000 firmware='' # pineview
+vendor=0x8086 device=0xa011 class=0x030000/0xff0000 firmware='' # pineview
+vendor=0x8086 device=0xa720 class=0x030000/0xff0000 firmware='' # alderlake_p
+vendor=0x8086 device=0xa721 class=0x030000/0xff0000 firmware='' # alderlake_p
+vendor=0x8086 device=0xa780 class=0x030000/0xff0000 firmware='' # alderlake_s
+vendor=0x8086 device=0xa781 class=0x030000/0xff0000 firmware='' # alderlake_s
+vendor=0x8086 device=0xa782 class=0x030000/0xff0000 firmware='' # alderlake_s
+vendor=0x8086 device=0xa783 class=0x030000/0xff0000 firmware='' # alderlake_s
+vendor=0x8086 device=0xa788 class=0x030000/0xff0000 firmware='' # alderlake_s
+vendor=0x8086 device=0xa789 class=0x030000/0xff0000 firmware='' # alderlake_s
+vendor=0x8086 device=0xa78a class=0x030000/0xff0000 firmware='' # alderlake_s
+vendor=0x8086 device=0xa78b class=0x030000/0xff0000 firmware='' # alderlake_s
+vendor=0x8086 device=0xa7a0 class=0x030000/0xff0000 firmware='' # alderlake_p
+vendor=0x8086 device=0xa7a1 class=0x030000/0xff0000 firmware='' # alderlake_p
+vendor=0x8086 device=0xa7a8 class=0x030000/0xff0000 firmware='' # alderlake_p
+vendor=0x8086 device=0xa7a9 class=0x030000/0xff0000 firmware='' # alderlake_p
+vendor=0x8086 device=0xa7aa class=0x030000/0xff0000 firmware='' # alderlake_p
+vendor=0x8086 device=0xa7ab class=0x030000/0xff0000 firmware='' # alderlake_p
+vendor=0x8086 device=0xa7ac class=0x030000/0xff0000 firmware='' # alderlake_p
+vendor=0x8086 device=0xa7ad class=0x030000/0xff0000 firmware='' # alderlake_p
-pci_video_intel()
-{
- case "$1" in
- # Skylake
- 0x19*)
- addpkg "gpu-firmware-intel-kmod-skylake"
- ;;
- # Broxton
- 0x0a*|0x1a*|0x5a84|0x5a85)
- addpkg "gpu-firmware-intel-kmod-broxton"
- ;;
- # Geminilake
- 0x318*)
- addpkg "gpu-firmware-intel-kmod-geminilake"
- ;;
- # Kabylake, Coffeelake and Cometlake
- 0x59*|0x87*|0x9b*|0x3e*)
- addpkg "gpu-firmware-intel-kmod-kabylake"
- ;;
- # Cannonlake
- 0x5a*)
- addpkg "gpu-firmware-intel-kmod-cannonlake"
- ;;
- # Icelake
- 0x8a*)
- addpkg "gpu-firmware-intel-kmod-icelake"
- ;;
- # Elkhartlake/Jasperlake
- 0x45*|0x4e*)
- addpkg "gpu-firmware-intel-kmod-elkhartlake"
- ;;
- # Tigerlake
- 0x9a*)
- addpkg "gpu-firmware-intel-kmod-tigerlake"
- ;;
- # Rocketlake (Uses tigerlake GuC/HuC firmware)
- 0x4c*)
- addpkg "gpu-firmware-intel-kmod-rocketlake gpu-firmware-intel-kmod-tigerlake"
- ;;
- # DG1
- 0x49*)
- addpkg "gpu-firmware-intel-kmod-dg1"
- ;;
- # Alderlake (Uses tigerlake GuC/HuC firmware)
- 0x46*)
- addpkg "gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake"
- ;;
- *)
- log_verbose "No package found for device $1"
- ;;
- esac
-}
diff --git a/usr.sbin/fwget/pci/pci_wireless_header b/usr.sbin/fwget/pci/pci_wireless_header
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/pci/pci_wireless_header
@@ -0,0 +1,8 @@
+
+################################################################################
+#
+# NETWORK (0x02) / OTHER NETWORK CONTROLLER (0x80)
+# (We never checked for the subclass; until we can confirm they are universally
+# correct we do not include them in the mask)
+#
+
diff --git a/usr.sbin/fwget/pci/pci_wireless_intel b/usr.sbin/fwget/pci/pci_wireless_intel
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/pci/pci_wireless_intel
@@ -0,0 +1,432 @@
+# Copyright 2023-2025 Bjoern A. Zeeb
+# Copyright (c) 2023-2024 The FreeBSD Foundation
+#
+# Portions of this software were developed by Björn Zeeb
+# under sponsorship from the FreeBSD Foundation.
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+
+#
+# Intel wireless iwlwifi(4), iwx(4)
+#
+# 7000
+vendor=0x8086 device=0x08b1 subdevice=0x4a6c class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4a6e class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4a70 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4c60 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4c70 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x402a class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x406a class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x446a class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x486e class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4020 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4060 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4062 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4072 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4160 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4162 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4170 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4420 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4460 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4462 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4470 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4472 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4560 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4570 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x4870 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x5070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x5072 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x5170 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0x5770 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc02a class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc06a class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc020 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc060 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc062 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc072 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc160 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc162 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc170 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc360 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc420 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc460 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc462 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc470 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc472 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc560 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc570 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc760 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xc770 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xcc60 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b1 subdevice=0xcc70 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0x426a class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0x4220 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0x4260 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0x4262 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0x4270 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0x4272 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0x4360 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0x4370 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0xc26a class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0xc220 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0xc260 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0xc262 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0xc270 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0xc272 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b2 subdevice=0xc370 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x0060 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x0062 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x0070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x0072 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x0170 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x0172 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x0470 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x0472 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x1070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x1170 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x8060 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x8062 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x8070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x8072 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x8170 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x8172 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x8470 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b3 subdevice=0x8570 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b4 subdevice=0x0270 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b4 subdevice=0x0272 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b4 subdevice=0x0370 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b4 subdevice=0x8270 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b4 subdevice=0x8272 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x08b4 subdevice=0x8370 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x24fb subdevice=0x0000 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x24fb subdevice=0x2010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x24fb subdevice=0x2050 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x24fb subdevice=0x2110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x24fb subdevice=0x2150 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5c10 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5f10 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x9e10 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x500a class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x502a class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x900a class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x1010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5000 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5002 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5012 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5020 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5090 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5100 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5102 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5190 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5400 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5410 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5412 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5420 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5490 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5510 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x5590 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x9000 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x9010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x9012 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x9110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x9112 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x9400 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x9410 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095a subdevice=0x9510 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095b subdevice=0x520a class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095b subdevice=0x5200 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095b subdevice=0x5202 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095b subdevice=0x5210 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095b subdevice=0x5212 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095b subdevice=0x5290 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095b subdevice=0x5302 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095b subdevice=0x5310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095b subdevice=0x9200 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095b subdevice=0x9210 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x095b subdevice=0x9310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x3165 subdevice=0x4010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x3165 subdevice=0x4012 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x3165 subdevice=0x4110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x3165 subdevice=0x4410 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x3165 subdevice=0x4510 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x3165 subdevice=0x8010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x3165 subdevice=0x8110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x3166 subdevice=0x4210 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x3166 subdevice=0x4212 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+vendor=0x8086 device=0x3166 subdevice=0x4310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-7000'
+# 8000
+vendor=0x8086 device=0x24f3 subdevice=0x0000 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x01f0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0004 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x10b0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0012 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0044 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0050 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0130 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0132 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0150 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0250 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0810 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0850 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0910 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0930 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x0950 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x1010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x1012 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x1050 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x1110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x1130 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x1132 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x1150 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x4010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x8010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x8050 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x8110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x8130 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x8132 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x8150 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x9010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x9050 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x9110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x9130 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x9132 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0x9150 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0xb0b0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0xc010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0xc050 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0xc110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0xd0b0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0xd010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f3 subdevice=0xd050 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f4 subdevice=0x0030 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f4 subdevice=0x1030 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f4 subdevice=0x8030 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f4 subdevice=0x9030 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f4 subdevice=0xc030 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f4 subdevice=0xd030 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f5 subdevice=0x0010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24f6 subdevice=0x0030 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x3e01 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x3e02 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x10d0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0012 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0014 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0050 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0130 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0150 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0810 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0850 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0910 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0930 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x0950 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x1010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x1012 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x1014 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x1110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x1130 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x8010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x8050 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x8110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x8130 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x9010 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x9074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+vendor=0x8086 device=0x24fd subdevice=0x9110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-8000'
+# 9000
+vendor=0x8086 device=0x9df0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-9000'
+vendor=0x8086 device=0x30dc class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-9000'
+vendor=0x8086 device=0x31dc class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-9000'
+vendor=0x8086 device=0x271b class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-9000'
+vendor=0x8086 device=0x271c class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-9000'
+vendor=0x8086 device=0x2526 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-9000'
+vendor=0x8086 device=0xa370 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-9000'
+# 22000
+#vendor=0x8086 device=0x02f0 subdevice=0x007c class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x02f0 subdevice=0x0070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x02f0 subdevice=0x0074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x02f0 subdevice=0x0078 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x02f0 subdevice=0x0310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x02f0 subdevice=0x1651 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x02f0 subdevice=0x1652 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x02f0 subdevice=0x2074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x02f0 subdevice=0x4070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x02f0 subdevice=0x6074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+vendor=0x8086 device=0x02f0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x3df0 subdevice=0x007c class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x3df0 subdevice=0x0070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x3df0 subdevice=0x0074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x3df0 subdevice=0x0078 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x3df0 subdevice=0x0310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x3df0 subdevice=0x1651 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x3df0 subdevice=0x1652 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x3df0 subdevice=0x2074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x3df0 subdevice=0x4070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+vendor=0x8086 device=0x3df0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x4df0 subdevice=0x007c class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x4df0 subdevice=0x0070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x4df0 subdevice=0x0074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x4df0 subdevice=0x0078 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x4df0 subdevice=0x0310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x4df0 subdevice=0x1651 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x4df0 subdevice=0x1652 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x4df0 subdevice=0x2074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x4df0 subdevice=0x4070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x4df0 subdevice=0x6074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+vendor=0x8086 device=0x4df0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x06f0 subdevice=0x007c class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x06f0 subdevice=0x0070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x06f0 subdevice=0x0074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x06f0 subdevice=0x0078 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x06f0 subdevice=0x0310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x06f0 subdevice=0x1651 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x06f0 subdevice=0x1652 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x06f0 subdevice=0x2074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x06f0 subdevice=0x4070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+vendor=0x8086 device=0x06f0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x34f0 subdevice=0x007c class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x34f0 subdevice=0x0070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x34f0 subdevice=0x0074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x34f0 subdevice=0x0078 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x34f0 subdevice=0x0310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x34f0 subdevice=0x1651 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x34f0 subdevice=0x1652 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x34f0 subdevice=0x2074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x34f0 subdevice=0x4070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+vendor=0x8086 device=0x34f0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x43f0 subdevice=0x007c class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x43f0 subdevice=0x0070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x43f0 subdevice=0x0074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x43f0 subdevice=0x0078 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x43f0 subdevice=0x1651 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x43f0 subdevice=0x1652 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x43f0 subdevice=0x2074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x43f0 subdevice=0x4070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+vendor=0x8086 device=0x43f0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x2723 subdevice=0x1653 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0x2723 subdevice=0x1654 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+vendor=0x8086 device=0x2723 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0xa0f0 subdevice=0x0a10 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0xa0f0 subdevice=0x007c class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0xa0f0 subdevice=0x0070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0xa0f0 subdevice=0x0074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0xa0f0 subdevice=0x0078 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0xa0f0 subdevice=0x1651 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0xa0f0 subdevice=0x1652 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0xa0f0 subdevice=0x2074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0xa0f0 subdevice=0x4070 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+#vendor=0x8086 device=0xa0f0 subdevice=0x6074 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+vendor=0x8086 device=0xa0f0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-22000'
+# ax210
+#vendor=0x8086 device=0x7a70 subdevice=0x0a10 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7a70 subdevice=0x00b0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7a70 subdevice=0x0090 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7a70 subdevice=0x0098 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7a70 subdevice=0x0310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7a70 subdevice=0x0510 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7a70 subdevice=0x1671 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7a70 subdevice=0x1672 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7a70 subdevice=0x1691 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7a70 subdevice=0x1692 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+vendor=0x8086 device=0x7a70 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7af0 subdevice=0x0a10 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7af0 subdevice=0x00b0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7af0 subdevice=0x0090 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7af0 subdevice=0x0098 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7af0 subdevice=0x0310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7af0 subdevice=0x0510 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7af0 subdevice=0x1671 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7af0 subdevice=0x1672 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7af0 subdevice=0x1691 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7af0 subdevice=0x1692 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+vendor=0x8086 device=0x7af0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7e40 subdevice=0x1671 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7e40 subdevice=0x1672 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7e40 subdevice=0x1691 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7e40 subdevice=0x1692 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+vendor=0x8086 device=0x7e40 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7f70 subdevice=0x1671 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x7f70 subdevice=0x1672 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+vendor=0x8086 device=0x7f70 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x51f0 subdevice=0x1671 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x51f0 subdevice=0x1672 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x51f0 subdevice=0x1691 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x51f0 subdevice=0x1692 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+vendor=0x8086 device=0x51f0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x51f1 subdevice=0x1671 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x51f1 subdevice=0x1672 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x51f1 subdevice=0x1692 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+vendor=0x8086 device=0x51f1 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x54f0 subdevice=0x1671 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x54f0 subdevice=0x1672 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x54f0 subdevice=0x1691 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x54f0 subdevice=0x1692 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+vendor=0x8086 device=0x54f0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x0a10 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x0020 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x0024 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x0090 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x0310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x0510 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x1673 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x1674 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x2020 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x4020 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x6020 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0x6024 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0xe020 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+#vendor=0x8086 device=0x2725 subdevice=0xe024 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+vendor=0x8086 device=0x2725 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+vendor=0x8086 device=0x2726 subdevice=0x1671 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+vendor=0x8086 device=0x2726 subdevice=0x1672 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+vendor=0x8086 device=0x2729 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-ax210'
+# bz
+vendor=0x8086 device=0x4d40 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0x272b class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0x272d class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0x2727 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0x7740 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0000 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0a10 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x00c0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x00c4 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x00e0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x00e4 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x00e8 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x00ec class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x009c class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x011c class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x40c4 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x40e0 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0090 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0094 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0098 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0100 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0114 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0118 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0310 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0314 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x0510 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x1671 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x1672 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x1771 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x1772 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x1791 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x1792 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x4090 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x4110 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+vendor=0x8086 device=0xa840 subdevice=0x4314 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-bz'
+# sc
+vendor=0x8086 device=0x6e70 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-sc'
+vendor=0x8086 device=0xd340 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-sc'
+vendor=0x8086 device=0xe340 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-sc'
+vendor=0x8086 device=0xe440 class=0x028000/0xff0000 firmware='wifi-firmware-iwlwifi-kmod-sc'
+
diff --git a/usr.sbin/fwget/pci/pci_wireless_mediatek b/usr.sbin/fwget/pci/pci_wireless_mediatek
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/pci/pci_wireless_mediatek
@@ -0,0 +1,32 @@
+# Copyright 2023-2025 Bjoern A. Zeeb
+# Copyright (c) 2023-2025 The FreeBSD Foundation
+#
+# Portions of this software were developed by Björn Zeeb
+# under sponsorship from the FreeBSD Foundation.
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+
+#
+# Mediatek wireless mt76
+# NOTE: class is tricky as they use "old" at times. Add as we have samples (or both).
+#
+vendor=0x14c3 device=0x0608 firmware='wifi-firmware-mediatek-kmod-mt792x'
+vendor=0x14c3 device=0x0616 firmware='wifi-firmware-mediatek-kmod-mt792x'
+vendor=0x14c3 device=0x0717 firmware='wifi-firmware-mediatek-kmod-mt792x'
+vendor=0x14c3 device=0x7611 firmware='wifi-firmware-mediatek-kmod-mt7615'
+vendor=0x14c3 device=0x7615 firmware='wifi-firmware-mediatek-kmod-mt7615'
+vendor=0x14c3 device=0x7663 firmware='wifi-firmware-mediatek-kmod-mt7615'
+vendor=0x14c3 device=0x7906 firmware='wifi-firmware-mediatek-kmod-mt7915'
+vendor=0x14c3 device=0x790a firmware='wifi-firmware-mediatek-kmod-mt7915'
+vendor=0x14c3 device=0x7915 firmware='wifi-firmware-mediatek-kmod-mt7915'
+vendor=0x14c3 device=0x7916 firmware='wifi-firmware-mediatek-kmod-mt7915'
+vendor=0x14c3 device=0x7920 firmware='wifi-firmware-mediatek-kmod-mt792x'
+vendor=0x14c3 device=0x7922 firmware='wifi-firmware-mediatek-kmod-mt792x'
+vendor=0x14c3 device=0x7925 firmware='wifi-firmware-mediatek-kmod-mt792x'
+vendor=0x14c3 device=0x7961 firmware='wifi-firmware-mediatek-kmod-mt792x'
+vendor=0x14c3 device=0x7990 firmware='wifi-firmware-mediatek-kmod-mt7996'
+vendor=0x14c3 device=0x7991 firmware='wifi-firmware-mediatek-kmod-mt7996'
+vendor=0x14c3 device=0x7992 firmware='wifi-firmware-mediatek-kmod-mt7996'
+vendor=0x14c3 device=0x799a firmware='wifi-firmware-mediatek-kmod-mt7996'
+
diff --git a/usr.sbin/fwget/pci/pci_wireless_qca b/usr.sbin/fwget/pci/pci_wireless_qca
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/pci/pci_wireless_qca
@@ -0,0 +1,25 @@
+# Copyright 2023-2025 Bjoern A. Zeeb
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+
+#
+# QCA/Atheros wireless ath10k(4), ath11k(4), ath12k(4)
+# NOTE: class is tricky as they use "misc" at times. Add as we have samples (or both).
+#
+# ath10k(4)
+vendor=0x168c device=0x003c firmware='wifi-firmware-ath10k-kmod-qca988x_hw20'
+vendor=0x168c device=0x003e firmware='wifi-firmware-ath10k-kmod-qca6174_hw21 wifi-firmware-ath10k-kmod-qca6174_hw30'
+vendor=0x168c device=0x0040 firmware='wifi-firmware-ath10k-kmod-qca99x0_hw20'
+vendor=0x168c device=0x0041 firmware='wifi-firmware-ath10k-kmod-qca6174_hw21'
+vendor=0x168c device=0x0042 firmware='wifi-firmware-ath10k-kmod-qca6174_hw30 wifi-firmware-ath10k-kmod-qca9377_hw10'
+vendor=0x168c device=0x0046 firmware='wifi-firmware-ath10k-kmod-qca9984_hw10'
+vendor=0x168c device=0x0050 firmware='wifi-firmware-ath10k-kmod-qca9887_hw10'
+vendor=0x168c device=0x0056 firmware='wifi-firmware-ath10k-kmod-qca9888_hw20'
+# ath11k(4)
+vendor=0x168c device=0x1101 firmware='wifi-firmware-ath11k-kmod-qca6390_hw20'
+vendor=0x168c device=0x1103 firmware='wifi-firmware-ath11k-kmod-wcn6855_hw20'
+vendor=0x168c device=0x1104 firmware='wifi-firmware-ath11k-kmod-qcn9074_hw10'
+# ath12k(4)
+vendor=0x168c device=0x1107 firmware='wifi-firmware-ath12k-kmod-wcn7850_hw20'
+
diff --git a/usr.sbin/fwget/pci/pci_wireless_realtek b/usr.sbin/fwget/pci/pci_wireless_realtek
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/pci/pci_wireless_realtek
@@ -0,0 +1,30 @@
+# Copyright 2023-2025 Bjoern A. Zeeb
+# Copyright (c) 2024 The FreeBSD Foundation
+#
+# Portions of this software were developed by Björn Zeeb
+# under sponsorship from the FreeBSD Foundation.
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+
+#
+# Realtek wireless rtw88(4)
+#
+vendor=0x10ec device=0xd723 class=0x028000/0xff0000 firmware='wifi-firmware-rtw88-kmod-rtw8723d'
+vendor=0x10ec device=0xb821 class=0x028000/0xff0000 firmware='wifi-firmware-rtw88-kmod-rtw8821c'
+vendor=0x10ec device=0xc821 class=0x028000/0xff0000 firmware='wifi-firmware-rtw88-kmod-rtw8821c'
+vendor=0x10ec device=0xb822 class=0x028000/0xff0000 firmware='wifi-firmware-rtw88-kmod-rtw8822b'
+vendor=0x10ec device=0xc822 class=0x028000/0xff0000 firmware='wifi-firmware-rtw88-kmod-rtw8822c'
+vendor=0x10ec device=0xc82f class=0x028000/0xff0000 firmware='wifi-firmware-rtw88-kmod-rtw8822c'
+
+#
+# Realtek wireless rtw89(4)
+#
+vendor=0x10ec device=0xb851 class=0x028000/0xff0000 firmware='wifi-firmware-rtw89-kmod-rtw8851b'
+vendor=0x10ec device=0x8852 class=0x028000/0xff0000 firmware='wifi-firmware-rtw89-kmod-rtw8852a'
+vendor=0x10ec device=0xa85a class=0x028000/0xff0000 firmware='wifi-firmware-rtw89-kmod-rtw8852a'
+vendor=0x10ec device=0xb852 class=0x028000/0xff0000 firmware='wifi-firmware-rtw89-kmod-rtw8852b'
+vendor=0x10ec device=0xb85b class=0x028000/0xff0000 firmware='wifi-firmware-rtw89-kmod-rtw8852b'
+vendor=0x10ec device=0xc852 class=0x028000/0xff0000 firmware='wifi-firmware-rtw89-kmod-rtw8852c'
+vendor=0x10ec device=0x8922 class=0x028000/0xff0000 firmware='wifi-firmware-rtw89-kmod-rtw8922a'
+
diff --git a/usr.sbin/fwget/usb/Makefile b/usr.sbin/fwget/usb/Makefile
--- a/usr.sbin/fwget/usb/Makefile
+++ b/usr.sbin/fwget/usb/Makefile
@@ -1,10 +1,24 @@
PACKAGE= fwget
-SCRIPTS=usb \
- usb_ralink
+USBDEVS=
-BINDIR= ${LIBEXECDIR}/fwget
+USBDEVS+= usb_bluetooth_header
+USBDEVS+= usb_bluetooth_brcm
+USBDEVS+= usb_bluetooth_intel
+USBDEVS+= usb_bluetooth_realtek
+USBDEVS+= usb_bluetooth_qca
+
+USBDEVS+= usb_wireles_header
+USBDEVS+= usb_wireless_ralink
+
+SCRIPTS= usbdevs
+SCRIPTSDIR= ${LIBEXECDIR}/fwget
MAN=
+CLEANFILES= usbdevs
+
+usbdevs: ${USBDEVS}
+ cat ${.ALLSRC} > ${.TARGET}
+
.include <bsd.prog.mk>
diff --git a/usr.sbin/fwget/usb/usb b/usr.sbin/fwget/usb/usb
deleted file mode 100755
--- a/usr.sbin/fwget/usb/usb
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright 2023 Beckhoff Automation GmbH & Co. KG
-# Copyright 2023 Bjoern A. Zeeb
-# Copyright 2025 Jesper Schmitz Mouridsen
-
-# SPDX-License-Identifier: BSD-2-Clause
-
-
-usb_get_vendor()
-{
- local hexvendor=$(echo $1 | sed 's/.*idVendor=\(0x[0-9a-z]*\).*/\1/')
- case "${hexvendor}" in
- 0x148f) echo "ralink" ;;
- esac
-}
-
-usb_get_device()
-{
- local hexdevice=$(echo $1 | sed 's/.*idProduct=\(0x[0-9a-z]*\).*/\1/')
- echo "${hexdevice}"
-
-}
-
-usb_search_packages()
-{
- local IFS
-
- oldifs=$IFS
- IFS=$'\n'
- for fulldevice in $(usbconfig -l dump_device_desc); do
- vendor=$(usb_get_vendor "${fulldevice}")
- if [ -z "${vendor}" ]; then
- continue
- fi
- device=$(usb_get_device "${fulldevice}")
- log_verbose "Trying to match device ${device} and vendor ${vendor} with usb_${vendor}"
- if [ -f ${LIBEXEC_PATH}/usb_${vendor} ]; then
- . ${LIBEXEC_PATH}/usb_${vendor}
- usb_${vendor} ${device}
- fi
- done
- IFS=${oldifs}
-}
diff --git a/usr.sbin/fwget/usb/usb_bluetooth_brcm b/usr.sbin/fwget/usb/usb_bluetooth_brcm
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/usb/usb_bluetooth_brcm
@@ -0,0 +1,10 @@
+# Copyright (c) 2025 Bjoern A. Zeeb
+#
+# SPDX-License-Identifier: BSD-2-Clause
+
+#
+# Broadcom
+#
+# Broadcom USB Bluetooth BCM2033 bcmfw(8) (usr.sbin/bluetooth/bcmfw/bcmfw.c)
+#idVendor=0x0a5c idProduct=0x2033 firmware='TODO if possible?'
+
diff --git a/usr.sbin/fwget/usb/usb_bluetooth_header b/usr.sbin/fwget/usb/usb_bluetooth_header
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/usb/usb_bluetooth_header
@@ -0,0 +1,6 @@
+
+################################################################################
+#
+# BLUETOOTH
+#
+
diff --git a/usr.sbin/fwget/usb/usb_bluetooth_intel b/usr.sbin/fwget/usb/usb_bluetooth_intel
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/usb/usb_bluetooth_intel
@@ -0,0 +1,21 @@
+# Copyright (c) 2025 Bjoern A. Zeeb
+#
+# SPDX-License-Identifier: BSD-2-Clause
+
+#
+# Intel USB Bluetooh (sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c)
+#
+# Intel Wireless 7260/7265 and successors
+idVendor=0x8087 idProduct=0x07dc firmware='iwmbt-firmware'
+idVendor=0x8087 idProduct=0x0a2a firmware='iwmbt-firmware'
+idVendor=0x8087 idProduct=0x0aa7 firmware='iwmbt-firmware'
+# Intel Wireless 8260/8265 and successors
+idVendor=0x8087 idProduct=0x0a2b firmware='iwmbt-firmware'
+idVendor=0x8087 idProduct=0x0aaa firmware='iwmbt-firmware'
+idVendor=0x8087 idProduct=0x0025 firmware='iwmbt-firmware'
+idVendor=0x8087 idProduct=0x0026 firmware='iwmbt-firmware'
+idVendor=0x8087 idProduct=0x0029 firmware='iwmbt-firmware'
+# Intel Wireless 9260/9560 and successors
+idVendor=0x8087 idProduct=0x0032 firmware='iwmbt-firmware'
+idVendor=0x8087 idProduct=0x0033 firmware='iwmbt-firmware'
+
diff --git a/usr.sbin/fwget/usb/usb_bluetooth_qca b/usr.sbin/fwget/usb/usb_bluetooth_qca
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/usb/usb_bluetooth_qca
@@ -0,0 +1,10 @@
+# Copyright (c) 2025 Bjoern A. Zeeb
+#
+# SPDX-License-Identifier: BSD-2-Clause
+
+#
+# Atheros / QCA
+#
+# Atheros USB Bluetooth ath3kfw(8) (usr.sbin/bluetooth/ath3kfw/main.c)
+# TODO firmware package
+
diff --git a/usr.sbin/fwget/usb/usb_bluetooth_realtek b/usr.sbin/fwget/usb/usb_bluetooth_realtek
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/usb/usb_bluetooth_realtek
@@ -0,0 +1,97 @@
+# Copyright (c) 2025 Bjoern A. Zeeb
+#
+# SPDX-License-Identifier: BSD-2-Clause
+
+#
+# Realtek USB Bluetooth (sys/netgraph/bluetooth/drivers/ubt/ng_ubt_rtl.c)
+#
+# Generic Realtek Bluetooth class devices
+idVendor=0x0bda bDeviceClass=0x00e0 bDeviceSubClass=0x0001 bDeviceProtocol=0x0001 firmware='rtlbt-firmware'
+# Realtek 8821CE Bluetooth devices
+idVendor=0x13d3 idProduct=0x3529 firmware='rtlbt-firmware'
+# Realtek 8822CE Bluetooth devices
+idVendor=0x0bda idProduct=0xb00c firmware='rtlbt-firmware'
+idVendor=0x0bda idProduct=0xc822 firmware='rtlbt-firmware'
+# Realtek 8851BE Bluetooth devices
+idVendor=0x13d3 idProduct=0x3600 firmware='rtlbt-firmware'
+# Realtek 8852AE Bluetooth devices
+idVendor=0x0bda idProduct=0x2852 firmware='rtlbt-firmware'
+idVendor=0x0bda idProduct=0xc852 firmware='rtlbt-firmware'
+idVendor=0x0bda idProduct=0x385a firmware='rtlbt-firmware'
+idVendor=0x0bda idProduct=0x4852 firmware='rtlbt-firmware'
+idVendor=0x04c5 idProduct=0x165c firmware='rtlbt-firmware'
+idVendor=0x04ca idProduct=0x4006 firmware='rtlbt-firmware'
+idVendor=0x0cb8 idProduct=0xc549 firmware='rtlbt-firmware'
+# Realtek 8852CE Bluetooth devices
+idVendor=0x04ca idProduct=0x4007 firmware='rtlbt-firmware'
+idVendor=0x04c5 idProduct=0x1675 firmware='rtlbt-firmware'
+idVendor=0x0cb8 idProduct=0xc558 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3587 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3586 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3592 firmware='rtlbt-firmware'
+idVendor=0x0489 idProduct=0xe122 firmware='rtlbt-firmware'
+# Realtek 8852BE Bluetooth devices
+idVendor=0x0cb8 idProduct=0xc559 firmware='rtlbt-firmware'
+idVendor=0x0bda idProduct=0x4853 firmware='rtlbt-firmware'
+idVendor=0x0bda idProduct=0x887b firmware='rtlbt-firmware'
+idVendor=0x0bda idProduct=0xb85b firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3570 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3571 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3572 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3591 firmware='rtlbt-firmware'
+idVendor=0x0489 idProduct=0xe123 firmware='rtlbt-firmware'
+idVendor=0x0489 idProduct=0xe125 firmware='rtlbt-firmware'
+# Realtek 8852BT/8852BE-VT Bluetooth devices
+idVendor=0x0bda idProduct=0x8520 firmware='rtlbt-firmware'
+# Realtek 8922AE Bluetooth devices
+idVendor=0x0bda idProduct=0x8922 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3617 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3616 firmware='rtlbt-firmware'
+idVendor=0x0489 idProduct=0xe130 firmware='rtlbt-firmware'
+# Realtek 8723AE Bluetooth devices
+idVendor=0x0930 idProduct=0x021d firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3394 firmware='rtlbt-firmware'
+# Realtek 8723BE Bluetooth devices
+idVendor=0x0489 idProduct=0xe085 firmware='rtlbt-firmware'
+idVendor=0x0489 idProduct=0xe08b firmware='rtlbt-firmware'
+idVendor=0x04f2 idProduct=0xb49f firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3410 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3416 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3459 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3494 firmware='rtlbt-firmware'
+# Realtek 8723BU Bluetooth devices
+idVendor=0x7392 idProduct=0xa611 firmware='rtlbt-firmware'
+# Realtek 8723DE Bluetooth devices
+idVendor=0x0bda idProduct=0xb009 firmware='rtlbt-firmware'
+idVendor=0x2ff8 idProduct=0xb011 firmware='rtlbt-firmware'
+# Realtek 8761BUV Bluetooth devices
+idVendor=0x2c4e idProduct=0x0115 firmware='rtlbt-firmware'
+idVendor=0x2357 idProduct=0x0604 firmware='rtlbt-firmware'
+idVendor=0x0b05 idProduct=0x190e firmware='rtlbt-firmware'
+idVendor=0x2550 idProduct=0x8761 firmware='rtlbt-firmware'
+idVendor=0x0bda idProduct=0x8771 firmware='rtlbt-firmware'
+idVendor=0x6655 idProduct=0x8771 firmware='rtlbt-firmware'
+idVendor=0x7392 idProduct=0xc611 firmware='rtlbt-firmware'
+idVendor=0x2b89 idProduct=0x8761 firmware='rtlbt-firmware'
+# Realtek 8821AE Bluetooth devices
+idVendor=0x0b05 idProduct=0x17dc firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3414 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3458 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3461 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3462 firmware='rtlbt-firmware'
+# Realtek 8822BE Bluetooth devices
+idVendor=0x13d3 idProduct=0x3526 firmware='rtlbt-firmware'
+idVendor=0x0b05 idProduct=0x185c firmware='rtlbt-firmware'
+# Realtek 8822CE Bluetooth devices
+idVendor=0x04ca idProduct=0x4005 firmware='rtlbt-firmware'
+idVendor=0x04c5 idProduct=0x161f firmware='rtlbt-firmware'
+idVendor=0x0b05 idProduct=0x18ef firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3548 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3549 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3553 firmware='rtlbt-firmware'
+idVendor=0x13d3 idProduct=0x3555 firmware='rtlbt-firmware'
+idVendor=0x2ff8 idProduct=0x3051 firmware='rtlbt-firmware'
+idVendor=0x1358 idProduct=0xc123 firmware='rtlbt-firmware'
+idVendor=0x0bda idProduct=0xc123 firmware='rtlbt-firmware'
+idVendor=0x0cb5 idProduct=0xc547 firmware='rtlbt-firmware'
+
diff --git a/usr.sbin/fwget/usb/usb_ralink b/usr.sbin/fwget/usb/usb_ralink
deleted file mode 100755
--- a/usr.sbin/fwget/usb/usb_ralink
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# Copyright (c) 2025 Jesper Schmitz Mouridsen
-#
-# SPDX-License-Identifier: BSD-2-Clause
-
-usb_ralink()
-{
-
- case "$1" in
- 0x7601) addpkg "wifi-firmware-mt7601u-kmod"; return 1 ;;
- esac
-}
diff --git a/usr.sbin/fwget/usb/usb_wireles_header b/usr.sbin/fwget/usb/usb_wireles_header
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/usb/usb_wireles_header
@@ -0,0 +1,6 @@
+
+################################################################################
+#
+# WIRELESS
+#
+
diff --git a/usr.sbin/fwget/usb/usb_wireless_ralink b/usr.sbin/fwget/usb/usb_wireless_ralink
new file mode 100644
--- /dev/null
+++ b/usr.sbin/fwget/usb/usb_wireless_ralink
@@ -0,0 +1,9 @@
+# Copyright (c) 2025 Jesper Schmitz Mouridsen
+#
+# SPDX-License-Identifier: BSD-2-Clause
+
+#
+# Ralink (MediaTek) Wireless mtw(4)
+#
+idVendor=0x148f idProduct=0x7601 firmware='wifi-firmware-mt7601u-kmod'
+

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 21, 5:45 PM (12 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31923902
Default Alt Text
D52325.diff (214 KB)

Event Timeline