diff --git a/testing/raspberrypi-bootloader/APKBUILD b/testing/raspberrypi-bootloader/APKBUILD
index 8081d8867da8971f693909a66438aad0722069ae..c4857e52cc7706138b38f2ead0f8c2ae88701bc6 100644
--- a/testing/raspberrypi-bootloader/APKBUILD
+++ b/testing/raspberrypi-bootloader/APKBUILD
@@ -1,33 +1,52 @@
 # Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
 # Maintainer: Timo Teräs <timo.teras@iki.fi>
 pkgname=raspberrypi-bootloader
-pkgver=1.20171029
+pkgver=1.20180417
 pkgrel=0
 pkgdesc="Bootloader files for the Raspberry Pi"
 url=https://github.com/raspberrypi/firmware
-arch="armhf"
+arch="armhf aarch64"
 license="custom"
 depends=""
 makedepends=""
 install=
-options="!check !strip"
+options="!check !strip !tracedeps !spdx"
 source="$pkgname-$pkgver.tar.gz::https://github.com/raspberrypi/firmware/archive/$pkgver.tar.gz"
-subpackages="$pkgname-x:bootloader_x"
+subpackages="$pkgname-experimental $pkgname-debug $pkgname-cutdown $pkgname-doc"
 
 builddir="${srcdir}/firmware-${pkgver}"
+
 package() {
-	cd "$builddir"/boot
-	mkdir -p "$pkgdir"/boot
-	cp bootcode.bin fixup.dat start.elf "$pkgdir"/boot/
+	local fw; for fw in bootcode.bin fixup.dat start.elf; do
+		install -D "$builddir"/boot/$fw \
+			"$pkgdir"/boot/$fw
+	done
+	install -Dm 644 "$builddir"/boot/LICENCE.broadcom \
+		"$pkgdir"/usr/share/licenses/$pkgname/COPYING
+}
+
+experimental() {
+	pkgdesc="Experimental firmware with additional codecs"
+	local fw; for fw in start_x.elf fixup_x.dat; do
+		install -D "$builddir"/boot/$fw \
+				"$subpkgdir"/boot/$fw
+	done
 }
 
-bootloader_x() {
-	pkgdesc="Extra codecs for the Raspberry Pi"
-	depends="$pkgname"
-	cd "$builddir"/boot
-	mkdir -p "$subpkgdir"/boot
-	cp start_x.elf start_cd.elf start_db.elf fixup_x.dat fixup_cd.dat fixup_db.dat "$subpkgdir"/boot/
+debug() {
+	pkgdesc="Debug firmware"
+    local fw; for fw in start_db.elf fixup_db.dat; do
+		install -D "$builddir"/boot/$fw \
+			"$subpkgdir"/boot/$fw
+	done
 }
 
+cutdown() {
+	pkgdesc="Cut-down firmware for lower memory settings"
+	local fw; for fw in start_cd.elf fixup_cd.dat; do
+		install -D "$builddir"/boot/$fw \
+			"$subpkgdir"/boot/$fw
+	done
+}
 
-sha512sums="654fd99a2b33e7813353a4bb71e7ca5ab1063c92f4a3aea74c3651c3a96b3bfb891986dcd18a3c6da39231828b71a2c00c64398555afd24c6eb9e9ad9813d897  raspberrypi-bootloader-1.20171029.tar.gz"
+sha512sums="0ba4d81ae44e430094151f85838133884123a504ceabf8bcb0fdb0561019fa6c59d964a76f10ba6017d96514eef4ded24bc6c09c7a4a88e9aaa16c1a0a0fd0f1  raspberrypi-bootloader-1.20180417.tar.gz"