From 94340233a68f475a2d89e608a666b1d0befe9008 Mon Sep 17 00:00:00 2001 From: Cameron Nemo Date: Tue, 21 Apr 2020 02:55:39 -0700 Subject: [PATCH 1/2] New Package: atf-rk3399-bl31-2.4. --- srcpkgs/atf-rk3399-bl31/template | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 srcpkgs/atf-rk3399-bl31/template diff --git a/srcpkgs/atf-rk3399-bl31/template b/srcpkgs/atf-rk3399-bl31/template new file mode 100644 index 00000000000..9eb9330fbae --- /dev/null +++ b/srcpkgs/atf-rk3399-bl31/template @@ -0,0 +1,27 @@ +# Template file for 'atf-rk3399-bl31' +pkgname=atf-rk3399-bl31 +version=2.4 +revision=1 +archs="aarch64*" +wrksrc="trusted-firmware-a-${version}" +hostmakedepends="cross-arm-none-eabi" +short_desc="ARM Trusted Firmware for Rockchip rk3399 boards (ARMv8, bl31 option)" +maintainer="Cameron Nemo " +license="BSD-3-Clause" +homepage="https://developer.trustedfirmware.org/dashboard/view/6/" +distfiles="https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/snapshot/trusted-firmware-a-${version}.tar.gz" +checksum=bf3eb3617a74cddd7fb0e0eacbfe38c3258ee07d4c8ed730deef7a175cc3d55b +nostrip=yes + +do_build() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + if [ "$CROSS_BUILD" ]; then + export CROSS_COMPILE=${XBPS_CROSS_TRIPLET}- + fi + make ${makejobs} PLAT=rk3399 bl31 +} + +do_install() { + vinstall build/rk3399/release/bl31/bl31.elf 0755 usr/lib/trusted-firmware-a/rk3399 + vlicense docs/license.rst +} From 5ac5bdee42763d8e87c833e8cff860b4e56d7edf Mon Sep 17 00:00:00 2001 From: Cameron Nemo Date: Tue, 21 Apr 2020 02:55:45 -0700 Subject: [PATCH 2/2] pinebookpro-uboot: update to 2010.10. Switch from forked repo to upstream repo. Also use the atf-rk3399-bl31 package for ARM trusted firmware blob. --- .../files/fcommon-Makefile.patch | 20 ------- .../patches/no-delay-autoboot.patch | 32 +++++++++++ .../patches/sdcard-boot.patch | 39 ++++++++++++++ srcpkgs/pinebookpro-uboot/template | 54 ++++++------------- 4 files changed, 88 insertions(+), 57 deletions(-) delete mode 100644 srcpkgs/pinebookpro-uboot/files/fcommon-Makefile.patch create mode 100644 srcpkgs/pinebookpro-uboot/patches/no-delay-autoboot.patch create mode 100644 srcpkgs/pinebookpro-uboot/patches/sdcard-boot.patch diff --git a/srcpkgs/pinebookpro-uboot/files/fcommon-Makefile.patch b/srcpkgs/pinebookpro-uboot/files/fcommon-Makefile.patch deleted file mode 100644 index d303e90352a..00000000000 --- a/srcpkgs/pinebookpro-uboot/files/fcommon-Makefile.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- pbp-uboot/Makefileg 2020-09-12 15:05:30.139856893 +0200 -+++ pbp-uboot/Makefile 2020-09-12 15:06:45.963853869 +0200 -@@ -273,7 +273,7 @@ - - HOSTCC = cc - HOSTCXX = c++ --HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \ -+HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fcommon \ - $(if $(CONFIG_TOOLS_DEBUG),-g) - HOSTCXXFLAGS = -O2 - -@@ -413,7 +413,7 @@ - KBUILD_CPPFLAGS := -D__KERNEL__ -D__UBOOT__ - - KBUILD_CFLAGS := -Wall -Wstrict-prototypes \ -- -Wno-format-security \ -+ -Wno-format-security -fcommon \ - -fno-builtin -ffreestanding $(CSTD_FLAG) - KBUILD_CFLAGS += -fshort-wchar -fno-strict-aliasing - KBUILD_AFLAGS := -D__ASSEMBLY__ diff --git a/srcpkgs/pinebookpro-uboot/patches/no-delay-autoboot.patch b/srcpkgs/pinebookpro-uboot/patches/no-delay-autoboot.patch new file mode 100644 index 00000000000..8b7d262e3e6 --- /dev/null +++ b/srcpkgs/pinebookpro-uboot/patches/no-delay-autoboot.patch @@ -0,0 +1,32 @@ +commit e061f5477ee8e8d14267c4ab98dd451d7ce137be +Author: Cameron Nemo +Date: Mon Sep 7 09:14:07 2020 -0700 + + rockchip: Pinebook Pro: do not delay autoboot + + Use a key combo for preventing autoboot rather than delaying boot speed. + Delaying boot speed on an end user portable device can lead to bad UX. + + Signed-off-by: Cameron Nemo + +diff --git configs/pinebook-pro-rk3399_defconfig configs/pinebook-pro-rk3399_defconfig +index 9a7487b04f..e9605a0ffd 100644 +--- configs/pinebook-pro-rk3399_defconfig ++++ configs/pinebook-pro-rk3399_defconfig +@@ -11,7 +11,7 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y + CONFIG_SPL_SPI_SUPPORT=y + CONFIG_DEFAULT_DEVICE_TREE="rk3399-pinebook-pro" + CONFIG_DEBUG_UART=y +-CONFIG_BOOTDELAY=3 ++CONFIG_BOOTDELAY=0 + CONFIG_USE_PREBOOT=y + CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-pinebook-pro.dtb" + CONFIG_MISC_INIT_R=y +@@ -87,3 +87,7 @@ CONFIG_VIDEO_ROCKCHIP=y + CONFIG_DISPLAY_ROCKCHIP_EDP=y + CONFIG_SPL_TINY_MEMSET=y + CONFIG_ERRNO_STR=y ++CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds... press q or Ctrl-C to interrupt\n" ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_STOP_STR="q" ++CONFIG_AUTOBOOT_KEYED_CTRLC=y diff --git a/srcpkgs/pinebookpro-uboot/patches/sdcard-boot.patch b/srcpkgs/pinebookpro-uboot/patches/sdcard-boot.patch new file mode 100644 index 00000000000..ea4a85eb248 --- /dev/null +++ b/srcpkgs/pinebookpro-uboot/patches/sdcard-boot.patch @@ -0,0 +1,39 @@ +commit 265376282a58c71f1ec9215653e98c602524b91c +Author: Cameron Nemo +Date: Mon Sep 7 08:37:24 2020 -0700 + + rockchip: Pinebook Pro: fix mmc boot ordering + + On the Pinebook Pro, and perhaps some other boards, the mmc indices are + opposite from what is implied by the comment in + include/configs/rockchip-common.h. + + This commit fixes the boot ordering to prioritize the SD card over eMMC. + + Most distributions of U-Boot that actually target rk3399 boards apply a + similar patch, such as Manjaro (shipped by default on PBP) and armbian. + + https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-pinebookpro/-/blob/60ed56b9bf8809309ec6252bfc45bca38c2b858a/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch + https://github.com/armbian/build/blob/5a2b2c360b9c26ca4bd0d309af7cd3994fd08b7d/patch/u-boot/u-boot-rockchip64-mainline/general-prioritize-sd.patch + + Signed-off-by: Cameron Nemo + +diff --git include/configs/pinebook-pro-rk3399.h include/configs/pinebook-pro-rk3399.h +index d478b19917..59780bfb0b 100644 +--- include/configs/pinebook-pro-rk3399.h ++++ include/configs/pinebook-pro-rk3399.h +@@ -14,6 +14,14 @@ + + #include + ++/* On Pinebook Pro, mmc1 is SD and mmc0 is eMMC */ ++#if CONFIG_IS_ENABLED(CMD_MMC) ++ #undef BOOT_TARGET_MMC ++ #define BOOT_TARGET_MMC(func) \ ++ func(MMC, mmc, 1) \ ++ func(MMC, mmc, 0) ++#endif ++ + #define SDRAM_BANK_SIZE (2UL << 30) + + #define CONFIG_USB_OHCI_NEW diff --git a/srcpkgs/pinebookpro-uboot/template b/srcpkgs/pinebookpro-uboot/template index 4aff7de9e65..f0cfc075006 100644 --- a/srcpkgs/pinebookpro-uboot/template +++ b/srcpkgs/pinebookpro-uboot/template @@ -1,39 +1,22 @@ # Template file for 'pinebookpro-uboot' pkgname=pinebookpro-uboot reverts="20200212_1 20200212_2" -version=0.0.20200212 -revision=3 -_commit_uboot=365495a329c8e92ca4c134562d091df71b75845e -_commit_atf=22d12c4148c373932a7a81e5d1c59a767e143ac2 +version=2020.10 +revision=1 archs="aarch64*" -hostmakedepends="git flex cross-arm-none-eabi dtc python3 bc" -depends="u-boot-tools" +wrksrc="u-boot-${version}" +hostmakedepends="flex bc dtc python3" +makedepends="atf-rk3399-bl31" short_desc="U-Boot for Pinebook Pro" maintainer="Renato Aguiar " license="GPL-2.0-only, BSD-3-Clause" -homepage="https://git.eno.space/pbp-uboot" - -do_fetch() { - mkdir -p "${wrksrc}" - - cd "${wrksrc}" - git clone https://git.eno.space/pbp-uboot.git - cd pbp-uboot - git reset --hard ${_commit_uboot} - - cd "${wrksrc}" - git clone https://github.com/ARM-software/arm-trusted-firmware.git - cd arm-trusted-firmware - git reset --hard ${_commit_atf} -} +homepage="https://www.denx.de/wiki/U-Boot/" +distfiles="https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2" +checksum=0d481bbdc05c0ee74908ec2f56a6daa53166cc6a78a0e4fac2ac5d025770a622 do_configure() { unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS - - cd pbp-uboot - patch -Np1 -i ${FILESDIR}/fcommon-Makefile.patch - make ${makejobs} pinebook_pro-rk3399_defconfig - echo 'CONFIG_IDENT_STRING=" Voidlinux"' >> .config + make ${makejobs} pinebook-pro-rk3399_defconfig } do_build() { @@ -41,22 +24,19 @@ do_build() { if [ "$CROSS_BUILD" ]; then export CROSS_COMPILE=${XBPS_CROSS_TRIPLET}- fi - - cd arm-trusted-firmware - make ${makejobs} PLAT=rk3399 - - cd ../pbp-uboot make ${makejobs} EXTRAVERSION=-${revision} \ - BL31=../arm-trusted-firmware/build/rk3399/release/bl31/bl31.elf + BL31="${XBPS_CROSS_BASE}/usr/lib/trusted-firmware-a/rk3399/bl31.elf" } do_install() { - cd pbp-uboot - vmkdir boot - vinstall idbloader.img 0644 boot - vinstall u-boot.itb 0644 boot + vinstall idbloader.img 0644 usr/lib/pinebookpro-uboot + vinstall u-boot.itb 0644 usr/lib/pinebookpro-uboot + # FWIW this file is not at all specific to the PBP and will overwrite any custom + # u-boot boot.scr files that a user installs into /boot. + # I would like to remove it, but it could cause breakage for existing setups. + # It would also require some changes to void-mklive to configure u-boot suitably. vinstall "${FILESDIR}/kernel.d/uboot" 750 \ - etc/kernel.d/post-install 60-uboot + etc/kernel.d/post-install 60-uboot vlicense Licenses/Exceptions vlicense Licenses/OFL.txt