git: 10aa369afd99 - main - fwget: simplify adding firmware images to pkg to install
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 20 May 2023 11:14:58 UTC
The branch main has been updated by bz:
URL: https://cgit.FreeBSD.org/src/commit/?id=10aa369afd9946da18ae51b07aeadc3314fba56d
commit 10aa369afd9946da18ae51b07aeadc3314fba56d
Author: Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-05-11 20:30:44 +0000
Commit: Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2023-05-20 11:13:12 +0000
fwget: simplify adding firmware images to pkg to install
Rather than using echo to return the firmware package name, call a
new function (addpkg) which will also deal with (i) no leading space
and (ii) remove duplicates (as some devices have dual-wifi-cards).
In addition we won't have a line break when having multiple packages.
While here also do not call pkg(8) anymore if there is no package to
install and use the correct variable to install all and not just the
last found package.
Reviewed by: manu, bapt
Differential Revision: https://reviews.freebsd.org/D40071
---
usr.sbin/fwget/fwget.sh | 32 ++++++++++++++---
usr.sbin/fwget/pci/pci_video_amd | 72 +++++++++++++++++++-------------------
usr.sbin/fwget/pci/pci_video_intel | 22 ++++++------
3 files changed, 74 insertions(+), 52 deletions(-)
diff --git a/usr.sbin/fwget/fwget.sh b/usr.sbin/fwget/fwget.sh
index 63ed020a437c..5e50569c3991 100644
--- a/usr.sbin/fwget/fwget.sh
+++ b/usr.sbin/fwget/fwget.sh
@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD-2-Clause
#
# Copyright 2023 Beckhoff Automation GmbH & Co. KG
+# Copyright 2023 Bjoern A. Zeeb
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted providing that the following conditions
@@ -62,6 +63,22 @@ log_verbose()
echo $@ 1>&3
}
+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
VERBOSE=n
@@ -97,14 +114,19 @@ done
packages=""
for subsystem in ${subsystems}; do
- package=$(${subsystem}_search_packages)
-
- packages="${packages} ${package}"
+ ${subsystem}_search_packages
done
-echo "Needed packages: ${packages}"
+case "${packages}" in
+""|^[[:space:]]*$)
+ echo "No firmware packages to install."
+ exit 0
+ ;;
+esac
+
+echo "Needed firmware packages: '${packages}'"
if [ "${DRY_RUN}" = "y" ]; then
exit 0
fi
-pkg install -q ${package}
+pkg install -q ${packages}
diff --git a/usr.sbin/fwget/pci/pci_video_amd b/usr.sbin/fwget/pci/pci_video_amd
index 4afb44ed787e..b44eac1adf7b 100644
--- a/usr.sbin/fwget/pci/pci_video_amd
+++ b/usr.sbin/fwget/pci/pci_video_amd
@@ -28,112 +28,112 @@ pci_video_amd()
{
case "$1" in
0x678*|0x679*)
- echo "gpu-firmware-amd-kmod-tahiti"
+ addpkg "gpu-firmware-amd-kmod-tahiti"
;;
0x680*|0x681*)
- echo "gpu-firmware-amd-kmod-pitcairn"
+ addpkg "gpu-firmware-amd-kmod-pitcairn"
;;
0x660*|0x661*|0x662*|0x663*)
- echo "gpu-firmware-amd-kmod-oland"
+ addpkg "gpu-firmware-amd-kmod-oland"
;;
0x682*|0x683*)
- echo "gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58"
+ addpkg "gpu-firmware-amd-kmod-verde gpu-firmware-amd-kmod-si58"
;;
0x666*)
- echo "gpu-firmware-amd-kmod-hainan"
+ addpkg "gpu-firmware-amd-kmod-hainan"
;;
0x13*)
- echo "gpu-firmware-amd-kmod-kaveri"
+ addpkg "gpu-firmware-amd-kmod-kaveri"
;;
0x664*|0x664*)
- echo "gpu-firmware-amd-kmod-bonaire"
+ addpkg "gpu-firmware-amd-kmod-bonaire"
;;
0x67a*|0x67b*)
- echo "gpu-firmware-amd-kmod-hawaii"
+ addpkg "gpu-firmware-amd-kmod-hawaii"
;;
0x983*)
- echo "gpu-firmware-amd-kmod-kabini"
+ addpkg "gpu-firmware-amd-kmod-kabini"
;;
0x985*)
- echo "gpu-firmware-amd-kmod-mullins"
+ addpkg "gpu-firmware-amd-kmod-mullins"
;;
0x690*)
- echo "gpu-firmware-amd-kmod-topaz"
+ addpkg "gpu-firmware-amd-kmod-topaz"
;;
0x692*|0x693*)
- echo "gpu-firmware-amd-kmod-tonga"
+ addpkg "gpu-firmware-amd-kmod-tonga"
;;
0x730*)
- echo "gpu-firmware-amd-kmod-fiji"
+ addpkg "gpu-firmware-amd-kmod-fiji"
;;
0x987*)
- echo "gpu-firmware-amd-kmod-carrizo"
+ addpkg "gpu-firmware-amd-kmod-carrizo"
;;
0x98e4*)
- echo "gpu-firmware-amd-kmod-stoney"
+ addpkg "gpu-firmware-amd-kmod-stoney"
;;
0x67e*|0x67ff)
- echo "gpu-firmware-amd-kmod-polaris11"
+ addpkg "gpu-firmware-amd-kmod-polaris11"
;;
0x67c*|0x67d*|0x6fdf)
- echo "gpu-firmware-amd-kmod-polaris10"
+ addpkg "gpu-firmware-amd-kmod-polaris10"
;;
0x698*|0x699*)
- echo "gpu-firmware-amd-kmod-polaris12"
+ addpkg "gpu-firmware-amd-kmod-polaris12"
;;
0x694*)
- echo "gpu-firmware-amd-kmod-vegam"
+ addpkg "gpu-firmware-amd-kmod-vegam"
;;
0x686*|0x687*)
- echo "gpu-firmware-amd-kmod-vega10"
+ addpkg "gpu-firmware-amd-kmod-vega10"
;;
0x69a*)
- echo "gpu-firmware-amd-kmod-vega12"
+ addpkg "gpu-firmware-amd-kmod-vega12"
;;
0x66a*)
- echo "gpu-firmware-amd-kmod-vega20"
+ addpkg "gpu-firmware-amd-kmod-vega20"
;;
0x15d*)
- echo "gpu-firmware-amd-kmod-raven"
+ addpkg "gpu-firmware-amd-kmod-raven"
;;
0x738*|0x739*)
- echo "gpu-firmware-amd-kmod-arcturus"
+ addpkg "gpu-firmware-amd-kmod-arcturus"
;;
0x731*)
- echo "gpu-firmware-amd-kmod-navi10"
+ addpkg "gpu-firmware-amd-kmod-navi10"
;;
0x734*)
- echo "gpu-firmware-amd-kmod-navi14"
+ addpkg "gpu-firmware-amd-kmod-navi14"
;;
0x15e7|0x1636|0x1638|0x164c)
- echo "gpu-firmware-amd-kmod-renoir"
+ addpkg "gpu-firmware-amd-kmod-renoir"
;;
0x736*)
- echo "gpu-firmware-amd-kmod-navi12"
+ addpkg "gpu-firmware-amd-kmod-navi12"
;;
0x73a*|0x73b*)
- echo "gpu-firmware-amd-kmod-sienna-cichlid"
+ addpkg "gpu-firmware-amd-kmod-sienna-cichlid"
;;
0x163f)
- echo "gpu-firmware-amd-kmod-vangogh"
+ addpkg "gpu-firmware-amd-kmod-vangogh"
;;
0x164d|0x1681)
- echo "gpu-firmware-amd-kmod-yellow-carp"
+ addpkg "gpu-firmware-amd-kmod-yellow-carp"
;;
0x73c*|0x73d*)
- echo "gpu-firmware-amd-kmod-navy-flounder"
+ addpkg "gpu-firmware-amd-kmod-navy-flounder"
;;
0x73e*|0x73f*)
- echo "gpu-firmware-amd-kmod-dimgrey-cavefish"
+ addpkg "gpu-firmware-amd-kmod-dimgrey-cavefish"
;;
0x740*|0x741*)
- echo "gpu-firmware-amd-kmod-aldebaran"
+ addpkg "gpu-firmware-amd-kmod-aldebaran"
;;
0x13fe)
- echo "gpu-firmware-amd-kmod-cyan-skillfish2"
+ addpkg "gpu-firmware-amd-kmod-cyan-skillfish2"
;;
0x742*|0x743*)
- echo "gpu-firmware-amd-kmod-beige-goby"
+ addpkg "gpu-firmware-amd-kmod-beige-goby"
;;
esac
}
diff --git a/usr.sbin/fwget/pci/pci_video_intel b/usr.sbin/fwget/pci/pci_video_intel
index 8dc8b9aee2bd..3824c4a49ffb 100644
--- a/usr.sbin/fwget/pci/pci_video_intel
+++ b/usr.sbin/fwget/pci/pci_video_intel
@@ -29,47 +29,47 @@ pci_video_intel()
case "$1" in
# Skylake
0x19*)
- echo "gpu-firmware-intel-kmod-skylake"
+ addpkg "gpu-firmware-intel-kmod-skylake"
;;
# Broxton
0x0a*|0x1a*|0x5a84|0x5a85)
- echo "gpu-firmware-intel-kmod-broxton"
+ addpkg "gpu-firmware-intel-kmod-broxton"
;;
# Geminilake
0x318*)
- echo "gpu-firmware-intel-kmod-geminilake"
+ addpkg "gpu-firmware-intel-kmod-geminilake"
;;
# Kabylake, Coffeelake and Cometlake
0x59*|0x87*|0x9b*|0x3e*)
- echo "gpu-firmware-intel-kmod-kabylake"
+ addpkg "gpu-firmware-intel-kmod-kabylake"
;;
# Cannonlake
0x5a*)
- echo "gpu-firmware-intel-kmod-cannonlake"
+ addpkg "gpu-firmware-intel-kmod-cannonlake"
;;
# Icelake
0x8a*)
- echo "gpu-firmware-intel-kmod-icelake"
+ addpkg "gpu-firmware-intel-kmod-icelake"
;;
# Elkhartlake/Jasperlake
0x45*|0x4e*)
- echo "gpu-firmware-intel-kmod-elkhartlake"
+ addpkg "gpu-firmware-intel-kmod-elkhartlake"
;;
# Tigerlake
0x9a*)
- echo "gpu-firmware-intel-kmod-tigerlake"
+ addpkg "gpu-firmware-intel-kmod-tigerlake"
;;
# Rocketlake (Uses tigerlake GuC/HuC firmware)
0x4c*)
- echo "gpu-firmware-intel-kmod-rocketlake gpu-firmware-intel-kmod-tigerlake"
+ addpkg "gpu-firmware-intel-kmod-rocketlake gpu-firmware-intel-kmod-tigerlake"
;;
# DG1
0x49*)
- echo "gpu-firmware-intel-kmod-dg1"
+ addpkg "gpu-firmware-intel-kmod-dg1"
;;
# Alderlake (Uses tigerlake GuC/HuC firmware)
0x46*)
- echo "gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake"
+ addpkg "gpu-firmware-intel-kmod-alderlake gpu-firmware-intel-kmod-tigerlake"
;;
*)
log "No package found for device $1"