pmaports/temp/u-boot-librem5dev/APKBUILD
Clayton Craft 6fcee615b1
temp/u-boot-librem5dev: upgrade & generate unified firmware image (!869)
This updates ATF, DDR/HDMI firmmware, and u-boot versions, and generates
a unified image that can be flashed at an offset of 2KiB.

mkimage is also no longer used to generate the final image.

Some old unused functions copied when this APKBUILD was forked were also
removed.
2020-01-19 11:57:54 +01:00

73 lines
3.5 KiB
Text

# Forked from Alpine, so we can build it with Librem 5 devkit support
pkgname=u-boot-librem5dev
pkgver=0.4
pkgrel=0
_atfversion="92c2de12d36b31938ce940d5cac3c30a98665237"
_ubootversion="54f300a32d00f3acebf7e6fcff210ad34e157eb9"
_m4version="a017421c340a69f2392086da93841244f78a03c5"
_firmwareversion="7.9"
pkgdesc="u-boot bootloader for the Purism Librem5 devkit"
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="$depends_dev bc dtc python3-dev swig binutils coreutils zlib-dev newlib-arm-none-eabi bison flex"
options="!check !tracedeps"
source="
uboot-imx-${_ubootversion}.tar.gz::https://source.puri.sm/Librem5/uboot-imx/-/archive/${_ubootversion}/uboot-imx-${_ubootversion}.tar.gz
m4-${_m4version}.tar.gz::https://source.puri.sm/Librem5/Cortex_M4/-/archive/${_m4version}/Cortex_M4-${_m4version}.tar.gz
arm-trusted-firmware-${_atfversion}.tar.gz::https://source.puri.sm/Librem5/arm-trusted-firmware/-/archive/${_atfversion}/arm-trusted-firmware-${_atfversion}.tar.gz
https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-${_firmwareversion}.bin
"
_ubootbuilddir="$srcdir"/uboot-imx-${_ubootversion}
_atfbuilddir="$srcdir"/arm-trusted-firmware-${_atfversion}
_m4builddir="$srcdir"/Cortex_M4-${_m4version}
_firmwarebuilddir="$srcdir"/firmware-imx-${_firmwareversion}
builddir="$_ubootbuilddir"
build() {
msg "Building M4"
cd "$_m4builddir"
make
msg "Building ARM trusted firmware"
cd "$_atfbuilddir"
LDFLAGS="" make PLAT=imx8mq bl31
# Overwrite default bl31 binary with one made here
cp -v "$_atfbuilddir"/build/imx8mq/release/bl31.bin "$_ubootbuilddir"/
msg "Extracting DDR & HDMI firmware"
cd "$srcdir"
chmod +x firmware-imx-${_firmwareversion}.bin
./firmware-imx-${_firmwareversion}.bin --auto-accept
cp -v "$_firmwarebuilddir"/firmware/ddr/synopsys/lpddr4*.bin "$_ubootbuilddir"/
cp -v "$_firmwarebuilddir"/firmware/hdmi/cadence/signed*.bin "$_ubootbuilddir"/
msg "Building u-boot"
cd "$_ubootbuilddir"
make distclean
# Note: HOSTCC is set explicitly here else it tries to use cc, which
# doesn't exist on Alpine
make ARCH=arm HOSTCC=gcc librem5_devkit_defconfig
make ARCH=arm HOSTCC=gcc
make ARCH=arm HOSTCC=gcc flash.bin
make ARCH=arm HOSTCC=gcc u-boot.imx
msg "Building u-boot flashing image"
dd if=/dev/zero of=devkit-boot.img bs=1024 count=1055
dd if="$_m4builddir"/m4.bin conv=notrunc of="$_ubootbuilddir"/devkit-boot.img bs=1024
dd if="$_ubootbuilddir"/flash.bin conv=notrunc of="$_ubootbuilddir"/devkit-boot.img bs=1024 seek=31
msg "done!"
}
package() {
install -D -m644 "$_ubootbuilddir"/devkit-boot.img \
"$pkgdir/usr/share/firmware/librem5dev/devkit-boot.img"
}
sha512sums="6bcce8d553059dcde094b8a0bb352f1c8c8f33f5e59c3e1cde87d614bd785c929abe883b4ea6a72958c2849a6578dc06fe558e8d82180334ff0c1eb190a6a0ed uboot-imx-54f300a32d00f3acebf7e6fcff210ad34e157eb9.tar.gz
035a4358ddf586c829da7fa2fb0d9d1df913c0c454f2d0e57ff0c6794552e49950fb6373f9aaf72e0e4c78ab411496aabbc60bf66cd76e35053f7a2d77911735 m4-a017421c340a69f2392086da93841244f78a03c5.tar.gz
cd8c9411ae0e57d2c8c700bf3e8c8d03e7dab955ace249a00911dd8c42b42929e0de3a5885eb9b1d945174abc8cfb177595d83c235e757c70640f451b62547ba arm-trusted-firmware-92c2de12d36b31938ce940d5cac3c30a98665237.tar.gz
d7c221e0c1cc5a22c9b98ba369f481d690a2227b0897836fb0b18975f0d2f0a085f7a120d24bdd161850d32f878e7f1aa47015dee76f7b40e84f45adf379e22c firmware-imx-7.9.bin"