pinebookpro-uboot: update to 2022.04

This commit is contained in:
Cameron Nemo 2021-07-23 17:17:14 -07:00 committed by Đoàn Trần Công Danh
parent 7f0e13f2ee
commit 1c28912f8b
5 changed files with 107 additions and 74 deletions

View File

@ -0,0 +1,70 @@
Source: https://lore.kernel.org/u-boot/20220222013131.3114990-3-pgwipeout@gmail.com/
Upstream: no
From: Peter Geis <pgwipeout@gmail.com>
To: Peng Fan <peng.fan@nxp.com>, Jaehoon Chung <jh80.chung@samsung.com>
Cc: Peter Geis <pgwipeout@gmail.com>, u-boot@lists.denx.de
Subject: [PATCH v1 02/11] mmc: sdhci: allow disabling sdma in spl
Date: Mon, 21 Feb 2022 20:31:21 -0500
Rockchip emmc devices have a similar issue to Rockchip dwmmc devices,
where performing dma to sram causes errors with suspend/resume.
Allow us to toggle sdma in spl for sdhci similar to adma support, so we
can ensure dma is not used when loading the sram code.
Signed-off-by: Peter Geis <pgwipeout@gmail.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
---
drivers/mmc/Kconfig | 7 +++++++
drivers/mmc/sdhci.c | 6 +++---
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
index f04cc44e1973..1e4342285ce7 100644
--- a/drivers/mmc/Kconfig
+++ b/drivers/mmc/Kconfig
@@ -468,6 +468,13 @@ config MMC_SDHCI_SDMA
This enables support for the SDMA (Single Operation DMA) defined
in the SD Host Controller Standard Specification Version 1.00 .
+config SPL_MMC_SDHCI_SDMA
+ bool "Support SDHCI SDMA in SPL"
+ depends on MMC_SDHCI
+ help
+ This enables support for the SDMA (Single Operation DMA) defined
+ in the SD Host Controller Standard Specification Version 1.00 in SPL.
+
config MMC_SDHCI_ADMA
bool "Support SDHCI ADMA2"
depends on MMC_SDHCI
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index 766e4a6b0c5e..6285e53d12a2 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -70,7 +70,7 @@ static void sdhci_transfer_pio(struct sdhci_host *host, struct mmc_data *data)
}
}
-#if (defined(CONFIG_MMC_SDHCI_SDMA) || CONFIG_IS_ENABLED(MMC_SDHCI_ADMA))
+#if (CONFIG_IS_ENABLED(MMC_SDHCI_SDMA) || CONFIG_IS_ENABLED(MMC_SDHCI_ADMA))
static void sdhci_prepare_dma(struct sdhci_host *host, struct mmc_data *data,
int *is_aligned, int trans_bytes)
{
@@ -177,7 +177,7 @@ static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data)
}
} while (!(stat & SDHCI_INT_DATA_END));
-#if (defined(CONFIG_MMC_SDHCI_SDMA) || CONFIG_IS_ENABLED(MMC_SDHCI_ADMA))
+#if (CONFIG_IS_ENABLED(MMC_SDHCI_SDMA) || CONFIG_IS_ENABLED(MMC_SDHCI_ADMA))
dma_unmap_single(host->start_addr, data->blocks * data->blocksize,
mmc_get_dma_dir(data));
#endif
@@ -836,7 +836,7 @@ int sdhci_setup_cfg(struct mmc_config *cfg, struct sdhci_host *host,
#endif
debug("%s, caps: 0x%x\n", __func__, caps);
-#ifdef CONFIG_MMC_SDHCI_SDMA
+#if CONFIG_IS_ENABLED(MMC_SDHCI_SDMA)
if ((caps & SDHCI_CAN_DO_SDMA)) {
host->flags |= USE_SDMA;
} else {

View File

@ -1,3 +1,5 @@
Upstream: no
commit e061f5477ee8e8d14267c4ab98dd451d7ce137be
Author: Cameron Nemo <cnemo@tutanota.com>
Date: Mon Sep 7 09:14:07 2020 -0700
@ -13,16 +15,16 @@ diff --git configs/pinebook-pro-rk3399_defconfig configs/pinebook-pro-rk3399_def
index 9a7487b04f..e9605a0ffd 100644
--- a/configs/pinebook-pro-rk3399_defconfig
+++ b/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"
@@ -13,7 +13,7 @@
CONFIG_SPL_SPI=y
CONFIG_DEBUG_UART=y
CONFIG_SYS_LOAD_ADDR=0x800800
-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_BOARDINFO_LATE=y
@@ -93,3 +93,7 @@
CONFIG_DISPLAY_ROCKCHIP_EDP=y
CONFIG_SPL_TINY_MEMSET=y
CONFIG_ERRNO_STR=y

View File

@ -1,44 +1,44 @@
From 1a01021c9361c4e017cb5b032300f5555c393710 Mon Sep 17 00:00:00 2001
From: dhivael <dhivael.git@eno.space>
Date: Sat, 11 Jan 2020 15:04:46 +0100
Subject: rk3399: light pinebook power and standby leds during early boot
Source: https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-pinebookpro/-/raw/master/0003-Turn-power-and-standby-LEDs-on-early.patch
Upstream: no
this is a hack, but it works for now.
From 354d4f9072b5c41e91d70d1569ba364603889868 Mon Sep 17 00:00:00 2001
From: Dragan Simic <dragan.simic@gmail.com>
Date: Fri, 22 Apr 2022 03:51:56 +0200
Subject: [PATCH] Turn power and standby LEDs on early
Temporary (and ugly) hack to turn the Pinebook Pro's RGB status
LED on as early as possible during boot.
Based on a patch created by dhivael <dhivael.git@eno.space>.
---
arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
arch/arm/mach-rockchip/rk3399/rk3399.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
index 863024d071..cf37129d55 100644
index 01a05599cd..58b5cd1ce7 100644
--- a/arch/arm/mach-rockchip/rk3399/rk3399.c
+++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
@@ -15,6 +15,8 @@
#include <asm/arch-rockchip/grf_rk3399.h>
@@ -20,6 +20,7 @@
#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;
@@ -115,8 +117,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 */
@@ -149,6 +151,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 */
@@ -157,6 +158,19 @@ void board_debug_uart_init(void)
GPIO_PULL_NORMAL);
}
+ {
+ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH
+ // set GPIO0_A2/B3 to OUTPUT
+ /*
+ * Temporary (and ugly) hack to turn the Pinebook Pro's
+ * RGB status LED on as early as possible during boot:
+ * - 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);
+ }
@ -47,5 +47,5 @@ index 863024d071..cf37129d55 100644
rk_clrsetreg(&grf->gpio4c_iomux,
GRF_GPIO4C3_SEL_MASK,
--
cgit v1.2.3
2.33.1

View File

@ -1,39 +0,0 @@
commit 265376282a58c71f1ec9215653e98c602524b91c
Author: Cameron Nemo <cnemo@tutanota.com>
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 <cnemo@tutanota.com>
diff --git include/configs/pinebook-pro-rk3399.h include/configs/pinebook-pro-rk3399.h
index d478b19917..59780bfb0b 100644
--- a/include/configs/pinebook-pro-rk3399.h
+++ b/include/configs/pinebook-pro-rk3399.h
@@ -14,6 +14,14 @@
#include <configs/rk3399_common.h>
+/* 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

View File

@ -1,11 +1,11 @@
# Template file for 'pinebookpro-uboot'
pkgname=pinebookpro-uboot
reverts="20200212_1 20200212_2"
version=2020.10
version=2022.04
revision=1
archs="aarch64*"
wrksrc="u-boot-${version}"
hostmakedepends="flex bc dtc python3"
hostmakedepends="flex bc dtc python3 openssl-devel"
makedepends="atf-rk3399-bl31"
depends="u-boot-tools"
short_desc="U-Boot for Pinebook Pro"
@ -13,7 +13,7 @@ maintainer="Renato Aguiar <renato@renatoaguiar.net>"
license="GPL-2.0-only, BSD-3-Clause"
homepage="https://www.denx.de/wiki/U-Boot/"
distfiles="https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2"
checksum=0d481bbdc05c0ee74908ec2f56a6daa53166cc6a78a0e4fac2ac5d025770a622
checksum=68e065413926778e276ec3abd28bb32fa82abaa4a6898d570c1f48fbdb08bcd0
do_configure() {
unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS