aboutsummaryrefslogtreecommitdiffstats
path: root/main/linux-firmware/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'main/linux-firmware/APKBUILD')
-rw-r--r--main/linux-firmware/APKBUILD172
1 files changed, 117 insertions, 55 deletions
diff --git a/main/linux-firmware/APKBUILD b/main/linux-firmware/APKBUILD
index 927822aa329..b3a0654643e 100644
--- a/main/linux-firmware/APKBUILD
+++ b/main/linux-firmware/APKBUILD
@@ -1,37 +1,38 @@
# Contributor: Oliver Smith <ollieparanoid@postmarketos.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=linux-firmware
-pkgver=20210919
+pkgver=20240312
pkgrel=0
pkgdesc="firmware files for linux"
url="https://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git;a=summary"
arch="all"
-license="custom:multiple"
-makedepends="libarchive-tools"
+license="custom"
+makedepends="libarchive-tools coreutils rdfind"
provides="linux-firmware-any"
-provider_priority=1
-options="!strip !check !archcheck !tracedeps !spdx"
+provider_priority=2
+options="!strip !check !archcheck !spdx"
-_rpi_bt=e7fd166981ab4bb9a36c2d1500205a078a35714d
+_rpi_bt=78d6a07730e2d20c035899521ab67726dc028e1c
+_rpi_brcm=223ccf3a3ddb11b3ea829749fbbba4d65b380897
source="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-$pkgver.tar.gz
- BCM43430A1.hcd.${_rpi_bt::8}::https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM43430A1.hcd
- BCM4345C0.hcd.${_rpi_bt::8}::https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM4345C0.hcd
- BCM43430B0.hcd.${_rpi_bt::8}::https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM43430B0.hcd
- BCM4345C5.hcd.${_rpi_bt::8}::https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM4345C5.hcd"
-
-_builddir="$srcdir"/$pkgname-$pkgver
+ bluez-firmware-$_rpi_bt.tar.gz::https://github.com/RPi-Distro/bluez-firmware/archive/$_rpi_bt.tar.gz
+ brcm-firmware-$_rpi_brcm.tar.gz::https://github.com/RPi-Distro/firmware-nonfree/archive/$_rpi_brcm.tar.gz
+ $pkgname-ucode-amd17h-zenbleed-microcode_amd_fam17h.bin::https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd_fam17h.bin?id=59fbffa9ec8e4b0b31d2d13e715cf6580ad0e99c
+ $pkgname-ucode-amd19h-zenbleed-microcode_amd_fam19h.bin::https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd_fam19h.bin?id=59fbffa9ec8e4b0b31d2d13e715cf6580ad0e99c
+ "
# Put /lib/firmware/* folders in subpackages
-_folders="3com acenic adaptec advansys amd amd-ucode amdgpu ar3k ath10k ath11k
- ath6k ath9k_htc atmel atusb av7110 bnx2 bnx2x brcm cadence cavium cis cpia2
- cxgb3 cxgb4 cypress dabusb dpaa2 dsp56k e100 edgeport emi26 emi62 ene-ub6250
- ess go7007 i915 imx inside-secure intel isci kaweth keyspan keyspan_pda korg
- libertas liquidio matrox mediatek mellanox meson microchip moxa mrvl mwl8k
- mwlwifi myricom netronome nvidia ositech qca qcom qed qlogic r128 radeon
- rockchip rsi rtl8192e rtl_bt rtl_nic rtlwifi rtw88 rtw89 sb16 silabs slicoss
- sun sxg tehuti ti ti-connectivity ti-keystone tigon ttusb-budget ueagle-atm
- vicam vxge yam yamaha"
+_folders="3com acenic adaptec advansys airoha amd amd-ucode amdgpu amdtee
+ amlogic amphion ar3k arm ath10k ath11k ath12k ath6k ath9k_htc atmel atusb
+ av7110 bnx2 bnx2x brcm cadence cavium cirrus cis cnm cpia2 cxgb3 cxgb4 cypress
+ dabusb dpaa2 dsp56k e100 edgeport emi26 emi62 ene-ub6250 ess go7007 i915 imx
+ inside-secure intel isci ixp4xx kaweth keyspan keyspan_pda korg libertas
+ liquidio matrox mediatek mellanox meson microchip moxa mrvl mwl8k mwlwifi
+ myricom netronome nvidia nxp ositech powervr qca qcom qed qlogic r128 radeon
+ rockchip rsi rtl_bt rtl_nic rtlwifi rtw88 rtw89 sb16 slicoss sun sxg synaptics
+ tehuti ti ti-connectivity ti-keystone tigon ttusb-budget ueagle-atm vicam vxge
+ wfx xe yam yamaha"
subpackages="$pkgname-other::noarch $pkgname-none::noarch"
depends="linux-firmware-other=$pkgver-r$pkgrel"
@@ -41,29 +42,65 @@ for i in $_folders; do
done
subpackages="amd-ucode::noarch $subpackages"
+# Add S5P MFC subpackage separately (it doesn't have its own folder)
+subpackages="$pkgname-s5p-mfc:s5p_mfc:noarch $subpackages"
+depends="$pkgname-s5p-mfc=$pkgver-r$pkgrel $depends"
+
+prepare() {
+ default_prepare
+
+ cp "$srcdir"/$pkgname-ucode-amd17h-zenbleed-microcode_amd_fam17h.bin amd-ucode/microcode_amd_fam17h.bin
+ cp "$srcdir"/$pkgname-ucode-amd19h-zenbleed-microcode_amd_fam19h.bin amd-ucode/microcode_amd_fam19h.bin
+}
+
package() {
- cd "${_builddir}"
- make DESTDIR="${pkgdir}" FIRMWAREDIR="/lib/firmware" install
-
- # add compat links for pre-5.0 kernel
- ln -s brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt "$pkgdir"/lib/firmware/brcm/brcmfmac43455-sdio.txt
- ln -s brcmfmac43430-sdio.raspberrypi,3-model-b.txt "$pkgdir"/lib/firmware/brcm/brcmfmac43430-sdio.txt
-
- local fw; for fw in $source; do
- local _f=${fw%::*}
- case $_f in
- *.hcd*)
- install -Dm 644 $srcdir/$_f \
- "$pkgdir"/lib/firmware/brcm/"${_f%.*}"
- ;;
- esac
- done
+ ## install upstream linux-firmare files
+ make DESTDIR="$pkgdir" FIRMWAREDIR="/lib/firmware" install
- rm -f "${pkgdir}/usr/lib/firmware/{Makefile,README,configure,GPL-3}"
+ rm -f "$pkgdir/usr/lib/firmware/{Makefile,README,configure,GPL-3}"
- find "${pkgdir}" \( -name '*.S' -or -name '*.asm' -or \
+ find "$pkgdir" \( -name '*.S' -or -name '*.asm' -or \
-name '*.c' -or -name '*.h' -or -name '*.pl' -or \
- -name 'Makefile' \) -exec rm -- {} \;
+ -name 'Makefile' \) -exec rm -- {} \;
+
+ ## add original Pi Foundation bluetooth firmware files (supplement to upstream)
+ install -Dm 644 "$srcdir"/bluez-firmware-$_rpi_bt/debian/firmware/broadcom/*.hcd \
+ -t "$pkgdir"/lib/firmware/brcm
+ install -Dm 644 "$srcdir"/bluez-firmware-$_rpi_bt/debian/firmware/synaptics/*.hcd \
+ -t "$pkgdir"/lib/firmware/synaptics
+ # add symlinks from bluez-firmware.links
+ while read -r link_args; do
+ link_args="${link_args/ \/lib/ lib}"
+ link_args="${link_args/\/lib\/firmware\/brcm\//}"
+ ( cd "$pkgdir" && ln -sfv ${link_args/\/lib\/firmware\/synaptics\//..\/synaptics\/} )
+ done < "$srcdir/bluez-firmware-$_rpi_bt/debian/bluez-firmware.links"
+
+
+ ## add original Pi Foundation brcm wifi firmware files
+ # we can use either the -standard or -minimal 43455 file so use standard by default
+ ln -sfv cyfmac43455-sdio-standard.bin "$srcdir"/firmware-nonfree-$_rpi_brcm/debian/config/brcm80211/cypress/cyfmac43455-sdio.bin
+
+ # install deref's symlinks and copies a whole file, which makes rpi use duplicated
+ # variants specifically from downstream firmware (does not alter base upstream files)
+ install -Dm644 \
+ "$srcdir"/firmware-nonfree-$_rpi_brcm/debian/config/brcm80211/brcm/brcmfmac*raspberrypi* \
+ -t "$pkgdir"/lib/firmware/brcm
+
+ # but 43436/43436s/43456 is not in linux-firmware, so copy it normally
+ cp -a \
+ "$srcdir"/firmware-nonfree-$_rpi_brcm/debian/config/brcm80211/brcm/brcmfmac43456* \
+ "$srcdir"/firmware-nonfree-$_rpi_brcm/debian/config/brcm80211/brcm/brcmfmac43436* \
+ "$pkgdir"/lib/firmware/brcm
+
+ ## symlinks for Visionfive1 riscv64 boards, till it fixed upstream
+ ln -sfv ../cypress/cyfmac43430-sdio.bin "$pkgdir"/lib/firmware/brcm/brcmfmac43430-sdio.starfive,visionfive-v1.bin
+
+ dangling=$(cd "$pkgdir" && find . -type l ! -exec test -e {} \; -print)
+ if [ -n "$dangling" ]; then
+ error "dangling symlinks:"
+ echo "$dangling" >&2
+ return 1
+ fi
}
_folder() {
@@ -71,12 +108,26 @@ _folder() {
pkgdesc="firmware files for linux ($folder folder)"
depends=""
provides="linux-firmware-any"
- provider_priority=
+ provider_priority=1
+
+ local linkedbins= bin=
+ cd "$pkgdir"
+ # Move things that symlink into the target folder
+ # this fixes the -other deps, because
+ # - there are top-level files that are in -other (non-folder)
+ # - but, they are actually symlinks into .e.g -mediatek
+ # so, -other now depends on -mediatek due to symlink resolution
+ # this moves the symlinks along with the thing they symlink to.
+ linkedbins="$(find lib/firmware -maxdepth 1 -type l -exec sh -c "readlink \$1 | grep -qi $folder && echo \$1" - {} \;)"
+
+ if [ -n "$linkedbins" ]; then
+ for bin in $linkedbins; do
+ amove "$bin"
+ done
+ fi
# Move /lib/firmware/$folder (case insensitive)
- mkdir -p "$subpkgdir/lib/firmware"
- mv "$(find "$pkgdir/lib/firmware" -iname "$folder" -type d)" \
- "$subpkgdir/lib/firmware"
+ amove "$(find lib/firmware -iname "$folder" -type d)"
}
other() {
@@ -90,8 +141,8 @@ other() {
local fixed
error "Not all subfolders have been moved to subpackages!"
error "Fix this by adjusting _folders as follows:"
- fixed="$(echo $_folders$leftover | tr " " "\n" | tr '[A-Z]' '[a-z]' | sort)"
- echo "_folders=\"$(printf "$fixed" | tr "\n" " ")\"" | fold -s
+ fixed="$(echo $_folders$leftover | tr " " "\n" | tr '[:upper:]' '[:lower:]' | sort)"
+ echo "_folders=\"$(printf "%s" "$fixed" | tr "\n" " ")\"" | fold -s
return 1
fi
@@ -99,16 +150,16 @@ other() {
pkgdesc="firmware files for linux (uncategorized)"
depends=""
provides="linux-firmware-any"
- provider_priority=
- mkdir -p "$subpkgdir"/
- mv "$pkgdir"/lib "$subpkgdir"/
+ provider_priority=1
+
+ amove /lib
}
none() {
# dummy package with no firmware
pkgdesc="Empty linux firwmare package for those who does not need any firmware"
- provider_priority=
provides="linux-firmware-any"
+ provider_priority=1
depends=
mkdir -p "$subpkgdir"
}
@@ -129,10 +180,21 @@ ucode() {
bsdtar --null -cf - --format=newc @- > "$subpkgdir"/boot/amd-ucode.img
}
+s5p_mfc() {
+ # This needs its own function as the files are not in a directory,
+ # but rather loose in the main directory.
+ pkgdesc="firmware files for linux (S5P MFC firmware)"
+ provides="linux-firmware-any"
+ provider_priority=1
+ depends=
+
+ amove /lib/firmware/s5p-mfc*.fw
+}
+
sha512sums="
-94628158011e65dd65225e687823fc3611b2b2d431b3484a66108959c7fafbcdc0a7be73b7b9e1d1a2d62d40cb7bd81e33d96d822a7b159adc15894607a76a31 linux-firmware-20210919.tar.gz
-355c940b4fd597101c332207678fd28154d7e7a90cb374b1fdf230d2061bf979af0209c5a423fca8d23ddb3d95abec741e7dd651da7f0aaa97459ed4fe4d2355 BCM43430A1.hcd.e7fd1669
-1707c2955ceac3e6fc4b1edb8965c871dcfab21ce85cc617de67d7e6f3d6f9b93ee5a8a202de6b20f7b43d1462668287a8569786146cadf5e0268058d2524a9c BCM4345C0.hcd.e7fd1669
-c8b943bfeffa54ce1687ca69884e9d56efd28d5ea1dbef660915a80c3e036a8675e7d4299102c32006193e4895367654bb67e2d08e66d7803f396eee7e3dfbd6 BCM43430B0.hcd.e7fd1669
-eac7428befa36952542e19d3c4a5fa96e1cb3a56c3b00770534909fb0d8caf503a42368175e715e1de58e50cfbd2b4c8ea5a26af3bd546cbbaf8d2c12457a628 BCM4345C5.hcd.e7fd1669
+da151677939aa5edb2456dd6cf492abe74a40ba0e4b9bc0a2c3eab279cd1e8f70c6976adb5af37cf707af73bf3e28949433fb59bd16ea23e883c00a2f6e2b4ed linux-firmware-20240312.tar.gz
+d5182840ba3c1a12e5d8afa078fa334d8c1a2e0e5ca33fa675e64ac1ac26f732a588ac2c7451a4ccf739121268bc56b2f7f22d66cc5344ff108e39e410886419 bluez-firmware-78d6a07730e2d20c035899521ab67726dc028e1c.tar.gz
+0dd00bc388a76613ec0e06000dc1066d200f236142ca9777a4cee62faf611064f0b4625e6120bb3e5f9ec60d33a80b3a2b62bcc1a710618260c3c720eed8b800 brcm-firmware-223ccf3a3ddb11b3ea829749fbbba4d65b380897.tar.gz
+1e122c69184c2b8b6aa71ad7dc961816cd74070622386af11880333190d5cd13dbac11fe2afe92535b0048e207ab25f5d465b1fc97095e24b3e54ccf6f1ea922 linux-firmware-ucode-amd17h-zenbleed-microcode_amd_fam17h.bin
+75bc2c681606c37fc363c54f318a01d3f25a0265c1690b68e4b294f4dc17bb803a2619dd0d41ac72cb7e58fdc4423ad85979b4c9a1039c1c01c1e86ce140d7b8 linux-firmware-ucode-amd19h-zenbleed-microcode_amd_fam19h.bin
"