pmaports/device/main/u-boot-librem5/APKBUILD
Clayton Craft cc4c164c58
device-purism-librem5: remove craftyguy as maintainer (MR 5223)
I'm not able to give this device the attention it deserves.

This also removes me from maintaining fw and kernel packages used by the
L5, and adds the current L5 maintainers to those packages.

[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2024-06-17 14:20:57 -07:00

122 lines
4.7 KiB
Text

# Mainline u-boot with Librem 5 support and config
# Maintainer: Alistair Francis <alistair@alistair23.me>
# Co-Maintainer: Newbyte <newbyte@postmarketos.org>
# Contributor: Clayton Craft <clayton@craftyguy.net>
pkgname=u-boot-librem5
pkgver=2022.10
pkgrel=2
# 'upstream/librem5' branch in uboot repo
_commit="c4960dade272da9d6a7f53f6956d4d6747d573e9"
# 'librem5' branch in atf repo
_atf_commit="1fd3ff86cd4a05cd3e5637bf5a6902ac58fcafb9"
_firmwareversion="8.12"
pkgdesc="u-boot bootloader for the Purism Librem5 phone"
url="http://www.denx.de/wiki/U-Boot/"
arch="aarch64"
license="GPL-2.0-or-later OFL-1.1 BSD-2-Clause BSD-3-Clause eCos-2.0 IBM-pibs"
makedepends="
bc
binutils
bison
coreutils
dtc
flex
openssl-dev
py3-setuptools
python3-dev
swig
zlib-dev
"
options="!check !tracedeps pmb:cross-native"
source="
https://source.puri.sm/angus.ainslie/uboot-imx/-/archive/$_commit/uboot-imx-$_commit.tar.gz
https://source.puri.sm/Librem5/arm-trusted-firmware/-/archive/$_atf_commit/arm-trusted-firmware-$_atf_commit.tar.gz
https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-$_firmwareversion.bin
update-u-boot
0001-librem5-enable-console-on-UART4.patch
0002-libfdt-Fix-invalid-version-warning.patch
"
install="$pkgname.post-upgrade"
install="$pkgname.post-upgrade $pkgname-devkit.post-upgrade"
subpackages="$pkgname-devkit"
_atf_builddir="$srcdir/arm-trusted-firmware-$_atf_commit"
_firmware_builddir="$srcdir/firmware-imx-$_firmwareversion"
builddir="$srcdir/uboot-imx-$_commit"
prepare() {
default_prepare
msg "Extracting DDR & HDMI firmware"
cd "$srcdir"
chmod +x firmware-imx-$_firmwareversion.bin
./firmware-imx-$_firmwareversion.bin --auto-accept
cp -v "$_firmware_builddir"/firmware/ddr/synopsys/lpddr4*.bin $builddir/
cp -v "$_firmware_builddir"/firmware/hdmi/cadence/signed_*imx8m.bin $builddir/
# Disable -Werror in arm-trusted-firmware so it builds with GCC 12. The
# version we use here is missing E=0 introduced here:
# https://github.com/ARM-software/arm-trusted-firmware/commit/6336b07ad25cb05ca75f5a465d816af7956e0a59
sed -i "s/-Werror//g" "$_atf_builddir"/Makefile
}
build() {
msg "Building ARM trusted firmware"
cd "$_atf_builddir"
LDFLAGS="-no-warn-rwx-segment" make PLAT=imx8mq bl31
# Overwrite default bl31 binary with one made here
export BL31="$_atf_builddir/build/imx8mq/release/bl31.bin"
cp -v "$_atf_builddir"/build/imx8mq/release/bl31.bin "$builddir"/
msg "Building u-boot"
cd $builddir
# Devkit uboot firmware
# NOTE: disabled, not supported yet in the new mainline branch
# make distclean
# make librem5_devkit_defconfig
# make ARCH=arm
# mv "$builddir"/flash.bin "$builddir"/devkit-boot.img
# sha512sum -b "$builddir"/devkit-boot.img > "$builddir"/devkit-boot.img.sha512
# Phone uboot firmware
make distclean
make librem5_defconfig
make ARCH=arm
mv flash.bin phone-boot.img
sha512sum -b phone-boot.img > phone-boot.img.sha512
}
package() {
install -D -m644 "$builddir"/phone-boot.img \
"$pkgdir/usr/share/u-boot/librem5/phone-boot.img"
install -D -m644 "$builddir"/phone-boot.img.sha512 \
"$pkgdir/usr/share/u-boot/librem5/phone-boot.img.sha512"
install -D -m 755 "$srcdir"/update-u-boot \
"$pkgdir"/usr/sbin/update-u-boot
}
devkit() {
pkgdesc="u-boot bootloader for the Purism Librem5 devkit"
# NOTE: package is empty since this u-boot doesn't support the devkit yet,
# but should in the future.
mkdir "$subpkgdir"
# install -D -m644 "$builddir"/devkit-boot.img \
# "$pkgdir/usr/share/u-boot/librem5/devkit-boot.img"
# install -D -m644 "$builddir"/devkit-boot.img.sha512 \
# "$pkgdir/usr/share/u-boot/librem5/devkit-boot.img.sha512"
# install -D -m 755 "$srcdir"/update-u-boot \
# "$pkgdir"/usr/sbin/update-u-boot
}
sha512sums="
d35e46b94ebf50a7ffcedf824f19bca5195cbf0bbcee1dd6cea115f090a3a963975e6eaaa33eac623bbbf9ade62ab983a434adaf9435c993eacba9f7b4bb48a8 uboot-imx-c4960dade272da9d6a7f53f6956d4d6747d573e9.tar.gz
088b1b159e54d97cf3e47cb2de8327719779e558d1fe2453a46eb12081de4f1641e84dea37bb01518a6760a49e83b6d96ad185cdb5d9ec2b64f5ac934c368adf arm-trusted-firmware-1fd3ff86cd4a05cd3e5637bf5a6902ac58fcafb9.tar.gz
1f968558bf158401ee5afe1c67e67bdd8ca2cb5d07029e78c745e751c665b68fa74128fca8b7161501a6445bbb18e8d463b42d787a61132db5c8778703462668 firmware-imx-8.12.bin
e46a863001872943301f9712e45797553ce52d8b0c3e63dba7beb1a54b857e8f3a715863b84cd7ab784f039f82d29a2b19b581891d11a84c342b1570e5ccfed3 update-u-boot
f5c8a49bda189639386f2367418ab492f10e0e3c0c3f4ca078c461c0cf4427e113a90f49c37f01ef4db0a6e0f55d4f0a6346777e291918866821e659077e374a 0001-librem5-enable-console-on-UART4.patch
895a6e7794257a2b13ecd4e10426d1539338b3ed2000df99ec94c7a319154895794a60aeae2946f4ca32d37095e4142ebbdb049bbccf70f257e77e977b1cedf8 0002-libfdt-Fix-invalid-version-warning.patch
"