summaryrefslogtreecommitdiff
path: root/sys-boot
diff options
context:
space:
mode:
authorJakob L. Kreuze <zerodaysfordays@sdf.org>2022-04-15 18:20:34 -0400
committerJakob L. Kreuze <zerodaysfordays@sdf.org>2022-04-15 18:20:34 -0400
commit119d15709be940524fff65f8d5e728d00454526c (patch)
tree3f2f33a57dcff88acd68985f8d1928c4ccac8ec7 /sys-boot
parentf9f0f9deac28886cd5661a72a671a6bfdcbcbcb8 (diff)
Add sys-boot/u-boot
Diffstat (limited to 'sys-boot')
-rw-r--r--sys-boot/u-boot/Manifest6
-rw-r--r--sys-boot/u-boot/files/0001-Add-regulator-needed-for-usage-of-USB.patch69
-rw-r--r--sys-boot/u-boot/files/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch38
-rw-r--r--sys-boot/u-boot/files/0003-Enable-the-power-LED-during-early-startup.patch50
-rw-r--r--sys-boot/u-boot/metadata.xml11
-rw-r--r--sys-boot/u-boot/u-boot-2022.01.ebuild50
6 files changed, 224 insertions, 0 deletions
diff --git a/sys-boot/u-boot/Manifest b/sys-boot/u-boot/Manifest
new file mode 100644
index 0000000..100bbf7
--- /dev/null
+++ b/sys-boot/u-boot/Manifest
@@ -0,0 +1,6 @@
+AUX 0001-Add-regulator-needed-for-usage-of-USB.patch 1686 BLAKE2B 7bdf5c0cf6a885f027846e16ce69b9e69e3a9e4918b8cffdb2b85e6e207d387e04aa790df2e3ed4c2b8f3265580c4f06d7bf6c082efb59f568574ca2230170fe SHA512 b5e386bb1e382fb551140bd821fe89153c4fc497a52ba71d4f2f3d14a7e34152f9db6e956f3f005ff5de7dd122ae55b779e715be7ff1cce495a05bdddd4a2561
+AUX 0002-Correct-boot-order-to-be-USB-SD-eMMC.patch 1083 BLAKE2B 063d5075dbcf3454cf23ad3c8bad89faeaa3421daf8ca9195db61474e6fb5506674062dee197845d1594945f2a24db91c5a0d01544e2bc335102ccedfcd46723 SHA512 64d0b1bc75b0842c782a76c7d46752693c39bcd4ccbcc9a22b9b5f93f6b5e046e53df5886287290ab44ea1106f8bcfbd6154f352af719a96bcd619d7554c0fef
+AUX 0003-Enable-the-power-LED-during-early-startup.patch 1761 BLAKE2B 5f78b0c352e3cc4e629735902b09e703c4914ccfe7a7d8f665dea99cf4ef1bb5d46fa517365caf8f6577963a8113eba1f50057ae18fc2d58ff6047b9383b6504 SHA512 51453cd9956aaadfee7f63a82e019052c08ac358c3d431dbc7f39400bb9e7b63d453d2018e6826380db2925fa569d89cd15724578dd10f7697e83e942b4d8201
+DIST u-boot-2022.01.tar.gz 22334075 BLAKE2B 565b61ab879f2fd7714adfb1985346c55bef3842ebe9c754fc3814222ecfaa1ac0a7f16ce6dc5f523245e204817e0538c640cb3aac62877724aa0dd48a646f24 SHA512 658fdea3c67ad69f10270cb76ee9e1de9b6572c6f0e6cf8c67a32f475f342b336d3e742ec58d0e67336570d249a453582cb92481568c00bb0865ee091f684c92
+EBUILD u-boot-2022.01.ebuild 1242 BLAKE2B ac63f994fcac6be1f5cfc73bec713fefff073be2f393250f182d841a2dad057b0f79d32864ba3de0dbdea926395a4298d1e468cc2faf592f988786dbcb8f8adf SHA512 4f0457ec8141ed56f150e2b7efcac41349356d28e4c862550a69997524f8666a5e44b6b704a732abe0834dea1cdb81371d56d03e5d4408b8394ee6bdbb11142f
+MISC metadata.xml 366 BLAKE2B 8db8e8e36fd02b7aabfbd921cd256e9fecef19dff19856358ff73b802b20d8993d46e5c3d5c399236ea90b9a5e9200db72b5e0042cd891beb8b53b74ff440018 SHA512 a8a6360d4a524dbbcbaa80ff99840d3e1891559bf32aa38a99c777fa65ad756521b1245a224b0a311ff8f0d7a4b33ff2c798f7e0313ad08052bf93adc8f38224
diff --git a/sys-boot/u-boot/files/0001-Add-regulator-needed-for-usage-of-USB.patch b/sys-boot/u-boot/files/0001-Add-regulator-needed-for-usage-of-USB.patch
new file mode 100644
index 0000000..39c2bc9
--- /dev/null
+++ b/sys-boot/u-boot/files/0001-Add-regulator-needed-for-usage-of-USB.patch
@@ -0,0 +1,69 @@
+From 6ad924ab3b6b2a4d8c73a9871d0e94245cce6fcf Mon Sep 17 00:00:00 2001
+From: Nadia Holmquist Pedersen <nadia@nhp.sh>
+Date: Sat, 20 Jun 2020 01:41:22 +0200
+Subject: [PATCH 1/3] Add regulator needed for usage of USB
+
+---
+ arch/arm/dts/rk3399-pinebook-pro.dts | 21 +++++++++++++++++++--
+ 1 file changed, 19 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/dts/rk3399-pinebook-pro.dts b/arch/arm/dts/rk3399-pinebook-pro.dts
+index 294d21bf45..6214887a1c 100644
+--- a/arch/arm/dts/rk3399-pinebook-pro.dts
++++ b/arch/arm/dts/rk3399-pinebook-pro.dts
+@@ -207,6 +207,16 @@
+ };
+ };
+
++ vcc3v3_s0: vcc3v3-s0-regulator {
++ compatible = "regulator-fixed";
++ enable-active-high;
++ gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&lcdvcc_en>;
++ regulator-name = "vcc3v3_s0";
++ regulator-always-on;
++ };
++
+ /* 5 V USB power supply */
+ vcc5v0_usb: pa_5v: vcc5v0-usb-regulator {
+ compatible = "regulator-fixed";
+@@ -610,8 +620,8 @@
+ };
+ };
+
+- vcc3v3_s0: SWITCH_REG2 {
+- regulator-name = "vcc3v3_s0";
++ unused: SWITCH_REG2 {
++ regulator-name = "SWITCH_REG2";
+ regulator-always-on;
+ regulator-boot-on;
+
+@@ -872,6 +882,11 @@
+ rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
++ /* Shared between LCD and usb */
++ lcdvcc_en: lcdvcc-en {
++ rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
++ };
++
+ vcc5v0_host_en_gpio: vcc5v0-host-en-gpio {
+ rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+@@ -1054,10 +1069,12 @@
+ };
+
+ &usb_host1_ehci {
++ phy-supply = <&vcc3v3_s0>;
+ status = "okay";
+ };
+
+ &usb_host1_ohci {
++ phy-supply = <&vcc3v3_s0>;
+ status = "okay";
+ };
+
+--
+2.27.0
+
diff --git a/sys-boot/u-boot/files/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch b/sys-boot/u-boot/files/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch
new file mode 100644
index 0000000..b6e755a
--- /dev/null
+++ b/sys-boot/u-boot/files/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch
@@ -0,0 +1,38 @@
+From e622965b31e1d08c2b7c6b3a8d683c59f37b2733 Mon Sep 17 00:00:00 2001
+From: Nadia Holmquist Pedersen <nadia@nhp.sh>
+Date: Sat, 20 Jun 2020 01:47:52 +0200
+Subject: [PATCH 2/3] Correct boot order to be USB -> SD -> eMMC
+
+---
+ include/configs/rockchip-common.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/include/configs/rockchip-common.h b/include/configs/rockchip-common.h
+index 0b9e24d1db..9e217fad2a 100644
+--- a/include/configs/rockchip-common.h
++++ b/include/configs/rockchip-common.h
+@@ -17,8 +17,8 @@
+ /* First try to boot from SD (index 0), then eMMC (index 1) */
+ #if CONFIG_IS_ENABLED(CMD_MMC)
+ #define BOOT_TARGET_MMC(func) \
+- func(MMC, mmc, 0) \
+- func(MMC, mmc, 1)
++ func(MMC, mmc, 1) \
++ func(MMC, mmc, 0)
+ #else
+ #define BOOT_TARGET_MMC(func)
+ #endif
+@@ -55,9 +55,9 @@
+
+ #ifdef CONFIG_ROCKCHIP_RK3399
+ #define BOOT_TARGET_DEVICES(func) \
++ BOOT_TARGET_USB(func) \
+ BOOT_TARGET_MMC(func) \
+ BOOT_TARGET_NVME(func) \
+- BOOT_TARGET_USB(func) \
+ BOOT_TARGET_PXE(func) \
+ BOOT_TARGET_DHCP(func) \
+ BOOT_TARGET_SF(func)
+--
+2.27.0
+
diff --git a/sys-boot/u-boot/files/0003-Enable-the-power-LED-during-early-startup.patch b/sys-boot/u-boot/files/0003-Enable-the-power-LED-during-early-startup.patch
new file mode 100644
index 0000000..a2e811c
--- /dev/null
+++ b/sys-boot/u-boot/files/0003-Enable-the-power-LED-during-early-startup.patch
@@ -0,0 +1,50 @@
+From 08e8ace48b5c3a31b44661ef22a8b8a459906d7e Mon Sep 17 00:00:00 2001
+From: Nadia Holmquist Pedersen <nadia@nhp.sh>
+Date: Sat, 20 Jun 2020 01:49:49 +0200
+Subject: [PATCH 3/3] Enable the power LED during early startup
+
+---
+ arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
+index 4fda93b152..e24b39486d 100644
+--- a/arch/arm/mach-rockchip/rk3399/rk3399.c
++++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
+@@ -19,6 +19,8 @@
+ #include <asm/arch-rockchip/hardware.h>
+ #include <linux/bitops.h>
+ #include <power/regulator.h>
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/pinctrl/rockchip.h>
+
+ DECLARE_GLOBAL_DATA_PTR;
+
+@@ -119,8 +121,8 @@ void board_debug_uart_init(void)
+ struct rk3399_grf_regs * const grf = (void *)GRF_BASE;
+ #ifdef CONFIG_TARGET_CHROMEBOOK_BOB
+ struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE;
+- struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE;
+ #endif
++ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE;
+
+ #if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000)
+ /* Enable early UART0 on the RK3399 */
+@@ -153,6 +155,14 @@ void board_debug_uart_init(void)
+ spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_B, 4), GPIO_PULL_NORMAL);
+ #endif /* CONFIG_TARGET_CHROMEBOOK_BOB */
+
++ {
++ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH
++ // set GPIO0_A2/B3 to OUTPUT
++ int mask = (1UL << RK_PA2) | (1UL << RK_PB3);
++ setbits_le32(&gpio->swport_dr, mask);
++ setbits_le32(&gpio->swport_ddr, mask);
++ }
++
+ /* Enable early UART2 channel C on the RK3399 */
+ rk_clrsetreg(&grf->gpio4c_iomux,
+ GRF_GPIO4C3_SEL_MASK,
+--
+2.27.0
+
diff --git a/sys-boot/u-boot/metadata.xml b/sys-boot/u-boot/metadata.xml
new file mode 100644
index 0000000..2e8d61c
--- /dev/null
+++ b/sys-boot/u-boot/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM 'http://www.gentoo.org/dtd/metadata.dtd'>
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zerodaysfordays@sdf.org</email>
+ <name>Jakob Kreuze</name>
+ </maintainer>
+ <use>
+ <flag name="build-tfa">Build the TF-A yourself - this requires an arm-none-eabi toolchain!</flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-boot/u-boot/u-boot-2022.01.ebuild b/sys-boot/u-boot/u-boot-2022.01.ebuild
new file mode 100644
index 0000000..c07af7f
--- /dev/null
+++ b/sys-boot/u-boot/u-boot-2022.01.ebuild
@@ -0,0 +1,50 @@
+# Copyright 2020 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"
+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"
+IUSE="build-tfa"
+
+DEPEND="
+ sys-apps/dtc
+ !build-tfa? ( >=sys-firmware/trusted-firmware-a-bin-2.2-r1 )
+ build-tfa? ( >=sys-firmware/trusted-firmware-a-2.2-r1 )
+"
+RDEPEND="${DEPEND}"
+BDEPEND=""
+S="${WORKDIR}/${MY_P}"
+PATCHES=(
+ "${FILESDIR}/0001-Add-regulator-needed-for-usage-of-USB.patch"
+ "${FILESDIR}/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch"
+ "${FILESDIR}/0003-Enable-the-power-LED-during-early-startup.patch"
+)
+
+src_configure() {
+ emake pinebook-pro-rk3399_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 "if=/usr/share/u-boot/idbloader.img of=/dev/... seek=64 conv=notrunc"
+ elog "if=/usr/share/u-boot/u-boot.itb of=/dev/... seek=16384 conv=notrunc"
+}