# Copyright 2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 MY_PV=$(ver_rs 2 -) MY_P="${PN}-v${MY_PV}" DESCRIPTION="U-boot for the Pinebook Pro" HOMEPAGE="https://www.denx.de/wiki/U-Boot" SRC_URI="https://gitlab.denx.de/${PN}/${PN}/-/archive/v${MY_PV}/${PN}-v${MY_PV}.tar.gz -> ${P}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="-* arm64" UBOOT_ALL_DEFCONFIGS=( pinebook-pro-rk3399 nanopi-m4v2-rk3399 ) IUSE="${UBOOT_ALL_DEFCONFIGS[@]/#/uboot_defconfigs_}" REQUIRED_USE="^^ ( ${IUSE} )" DEPEND=" sys-apps/dtc sys-firmware/trusted-firmware-a[tfa_platforms_rk3399] " RDEPEND="${DEPEND}" BDEPEND="" S="${WORKDIR}/${MY_P}" uboot_get_defconfig() { local cfg for cfg in "${UBOOT_ALL_DEFCONFIGS[@]}"; do if use "uboot_defconfigs_${cfg}"; then echo ${cfg}_defconfig return 0 fi done die "no uboot_defconfigs_ set" } src_prepare() { eapply "${FILESDIR}/rk3399-all.boot-order-usb-sd-mmc.patch" if use uboot_defconfigs_pinebook-pro-rk3399; then eapply "${FILESDIR}/rk3399-pinebook-pro.power-led.patch" fi if use uboot_defconfigs_nanopi-m4v2-rk3399; then eapply "${FILESDIR}/rk3399-nanopi-m4v2.add.patch" fi } src_configure() { emake $(uboot_get_defconfig) } src_compile() { emake BL31=/usr/share/trusted-firmware-a/rk3399/bl31.elf } src_install() { insinto /usr/share/u-boot doins idbloader.img doins u-boot.itb } pkg_postinst() { elog "To install U-boot:" elog "Determine your device, then" elog "dd if=/usr/share/u-boot/idbloader.img of=/dev/... seek=64 conv=notrunc" elog "dd if=/usr/share/u-boot/u-boot.itb of=/dev/... seek=16384 conv=notrunc" }