Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F153364182
D52325.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
214 KB
Referenced Files
None
Subscribers
None
D52325.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D52325: fwget: rewrite in lua, attempt #1
Attached
Detach File
Event Timeline
Log In to Comment