# Maintainer: Alexey Minnekhanov pkgname=lk2nd pkgver=19.0 pkgrel=1 pkgdesc="Secondary little kernel (lk) bootloader for several Qualcomm devices" arch="armv7 aarch64" url="https://github.com/msm8916-mainline/lk2nd" license="MIT AND BSD-3-Clause AND GPL-2.0-only" makedepends=" dtc dtc-dev gcc-arm-none-eabi python3 py3-asn1-modules py3-libfdt py3-pycryptodome " source=" $pkgname-$pkgver.tar.gz::https://github.com/msm8916-mainline/lk2nd/archive/refs/tags/$pkgver.tar.gz 0001-doc-dts-msm8974-Remove-hammerhead-from-qcdtbs-and-do.patch 0002-dts-msm8953-Fix-daisy-dts.patch " options="!check !archcheck !tracedeps !strip pmb:cross-native" # This APKBUILD builds bare metal executable; options are very specific! # * there are no tests (how do you even test the bootloader?); # * binaries are "arch-independent"; aarch64 build also produces armv7 binary, # because ARM CPUs boot in 32-bit mode; # * there are no depends for bootloader, it's a kernel and OS in one binary; # * stripping of unused sections is done in lk2nd's own ld script. subpackages=" $pkgname-msm8916 $pkgname-msm8952 $pkgname-msm8952-xiaomi-land:msm8952_xiaomi_land $pkgname-msm8953 $pkgname-msm8953-signed:msm8953_signed " if [ "$CARCH" = "armv7" ]; then subpackages=" $subpackages $pkgname-msm8226 $pkgname-msm8226-htc-memul:msm8226_htc_memul $pkgname-msm8974 $pkgname-msm8974-lg-hammerhead:msm8974_lg_hammerhead " fi _build() { # This builds baremetal executable; distro-specific compiler flags # and optimizations can't be set by build system. unset CFLAGS unset CXXFLAGS unset CPPFLAGS unset LDFLAGS unset CROSS_COMPILE unset CC unset CXX # ccache and crossdirect "gcc"s are in PATH, get rid of them too, # redefine PATH to be bare minimum unset PATH export PATH=/usr/sbin:/usr/bin:/sbin:/bin local project="$1"; shift make LK2ND_VERSION="$pkgver-r$pkgrel-postmarketos" TOOLCHAIN_PREFIX=arm-none-eabi- "$@" "$project" } build() { _build lk2nd-msm8916 _build lk2nd-msm8952 _build lk2nd-msm8952 BOOTLOADER_OUT=xiaomi-land LK2ND_DTBS="" LK2ND_ADTBS="msm8937-xiaomi-land.dtb" _build lk2nd-msm8953 _build lk2nd-msm8953 BOOTLOADER_OUT=msm8953-signed SIGN_BOOTIMG=1 if [ "$CARCH" = "armv7" ]; then _build lk2nd-msm8974 _build lk2nd-msm8974 BOOTLOADER_OUT=lg-hammerhead LK2ND_QCDTBS="" _build lk2nd-msm8226 _build lk2nd-msm8226 BOOTLOADER_OUT=htc-memul SCRATCH_ADDR=0x20000000 SCRATCH_ADDR_512MAP=0x20000000 SCRATCH_SIZE_512MAP=0x10000000 fi } package() { # main package is empty mkdir -p "$pkgdir" } msm8916() { install -Dm644 "$builddir"/build-lk2nd-msm8916/lk2nd.img -t \ "$subpkgdir"/boot } msm8952() { install -Dm644 "$builddir"/build-lk2nd-msm8952/lk2nd.img -t \ "$subpkgdir"/boot } msm8952_xiaomi_land() { install -Dm644 "$builddir"/xiaomi-land/build-lk2nd-msm8952/lk2nd.img -t \ "$subpkgdir"/boot } msm8953() { install -Dm644 "$builddir"/build-lk2nd-msm8953/lk2nd.img -t \ "$subpkgdir"/boot } msm8953_signed() { install -Dm644 "$builddir"/msm8953-signed/build-lk2nd-msm8953/lk2nd.img -t \ "$subpkgdir"/boot } msm8974() { install -Dm644 "$builddir"/build-lk2nd-msm8974/lk2nd.img -t \ "$subpkgdir"/boot } msm8974_lg_hammerhead() { install -Dm644 "$builddir"/lg-hammerhead/build-lk2nd-msm8974/lk2nd.img -t \ "$subpkgdir"/boot } msm8226() { install -Dm644 "$builddir"/build-lk2nd-msm8226/lk2nd.img \ "$subpkgdir"/boot/lk2nd.img } msm8226_htc_memul() { install -Dm644 "$builddir"/htc-memul/build-lk2nd-msm8226/lk2nd.img \ "$subpkgdir"/boot/lk2nd.img } sha512sums=" 5c7b69277b255b4e29849940b9eca90de8d21c5851719bdb519c1323844014ac6519995c43ed5ea874a64df5845305df3fcf56b141e782d77a4c2cac3deda82a lk2nd-19.0.tar.gz 7aa4b7c98e990d3f2f44be2e24873829b75aa72b423966fb20b26d8c4fede9ce04495f8f37df54ae817297986bcb86ae7879174ca1d255c12b25656dbacaa62b 0001-doc-dts-msm8974-Remove-hammerhead-from-qcdtbs-and-do.patch d30b03a65d535f9bab9986cec55cea1c0c797c7e2eca3660d072885e3d8d66dad7c97861c59dbe365b3a15699cc0b59dc35a363f6555541ab2e35660a89d0003 0002-dts-msm8953-Fix-daisy-dts.patch "