Update U-Boot to 2025.01 (#3878)

* Refresh fileenv patch for U-Boot 2025.01

* Update Tinker to U-Boot 2025.01

Needs minor patch adjustment, also fixed patch numbering.

* Update ODROID-N2 to U-Boot 2025.01, move eMMC patch

Move the patch for eMMC so it's applied only for N2 specifically and update it
for 2025.01.

* Update ODROID-C/XU to U-Boot 2025.01

No changes in patches necessary after moving the N2 patch.

* Update RPi boards to U-Boot 2025.01

Changes needed in bcmstb PCIe driver due to upstream refactoring, rest only
refreshed. All patches now target the same version, so we can drop one of the
series.

* Update VIM3 to U-Boot 2025.01

No patches here, just version bump.

* Update Green to U-Boot 2025.01

Updated and refreshed patches, added a patch to disable OF_UPSTREAM which is
now needed.

* Update ODROID-M1 to U-Boot 2025.01

Drop patch that has been mostly merged upstream. The change is that HS400 would
stay enabled but let's get back to what upstream does.

* Update ODROID-M1 to U-Boot 2025.01

Drop all patches as M1S support should be now merged to U-Boot and DTS taken
from upstream.

* Disable DFU and mkeficapsule to fix build

mkeficapsule requires gnutls to be built first but it's not among dependencies.
Since we don't need the tool, we can disable it.

DFU is also not used on HAOS and it implies EFI_LOADER that we already disable.
Moreover, that also sets SET_DFU_ALT_INFO and leads to linker failure on some
platforms where it's not implemented.

* fixup! Update Green to U-Boot 2025.01

There were more changes needed in the Green config to use correct memory layout
due to upstream changes, otherwise we'll have malloc failures in U-Boot proper.

* Move N2 eMMC patch to more generic patches-meson

To stay on the safe side, move the eMMC hack to more generic folder that's used
for all targets using the meson_gx eMMC driver (i.e. C2, C4 and N2). This is
still better than keeping it in hardkernel/patches which is applied only to
some hardkernel boards (like it was before bump to U-Boot 20205.01).
This commit is contained in:
Jan Čermák 2025-02-18 13:48:24 +01:00 committed by GitHub
parent 22ed3864dd
commit dc7b693691
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
57 changed files with 303 additions and 2187 deletions

View File

@ -1,31 +1,30 @@
From defc964eaa9f4ccc9cd1568ade4e4d81f35b9e07 Mon Sep 17 00:00:00 2001
From 78bd1a46cfc585773719963ce8e0a380e9676a93 Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Fri, 24 Apr 2020 11:37:55 +0000
Subject: [PATCH] pmic: enable LDO2 vcc33_mipi at bootup
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
---
board/rockchip/tinker_rk3288/tinker-rk3288.c | 37 ++++++++++++++++++++
1 file changed, 37 insertions(+)
board/rockchip/tinker_rk3288/tinker-rk3288.c | 36 ++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/board/rockchip/tinker_rk3288/tinker-rk3288.c b/board/rockchip/tinker_rk3288/tinker-rk3288.c
index f85209c649..6fa1bb0c66 100644
index e966e9f201a..2944d8c084f 100644
--- a/board/rockchip/tinker_rk3288/tinker-rk3288.c
+++ b/board/rockchip/tinker_rk3288/tinker-rk3288.c
@@ -13,6 +13,7 @@
@@ -9,6 +9,7 @@
#include <init.h>
#include <net.h>
#include <netdev.h>
#include <asm/arch-rockchip/bootrom.h>
#include <asm/io.h>
+#include <power/regulator.h>
static int get_ethaddr_from_eeprom(u8 *addr)
{
@@ -48,3 +49,39 @@ int mmc_get_env_dev(void)
@@ -34,3 +35,38 @@ int rk3288_board_late_init(void)
return 1;
return 0;
}
+
+
+#ifdef CONFIG_DM_PMIC
+static int rockchip_set_regulator_on(const char *name, uint uv)
+{
@ -60,6 +59,3 @@ index f85209c649..6fa1bb0c66 100644
+ return 0;
+}
+#endif
--
2.43.0

View File

@ -1,46 +0,0 @@
From 023bc5bd23d3239494bca81d807d3c093f78c131 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Thu, 8 Aug 2024 17:52:47 +0200
Subject: [PATCH] odroid-m1: Disable eMMC DDR52 mode, enable HS200
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Disable DDR52 mode on odroid-m1 to fix eMMC writes. Also enable HS200,
as it's supposed to work more reliably than slower modes.
Signed-off-by: Jan Čermák <sairon@sairon.cz>
Upstream: https://patchwork.ozlabs.org/project/uboot/cover/20240204205312.2342868-1-jonas@kwiboo.se/
---
arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi | 3 ---
configs/odroid-m1-rk3568_defconfig | 2 ++
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi b/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi
index 0fc360b06d..f9d34d3b77 100644
--- a/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi
+++ b/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi
@@ -14,10 +14,7 @@
&sdhci {
cap-mmc-highspeed;
- mmc-ddr-1_8v;
mmc-hs200-1_8v;
- mmc-hs400-1_8v;
- mmc-hs400-enhanced-strobe;
pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
};
diff --git a/configs/odroid-m1-rk3568_defconfig b/configs/odroid-m1-rk3568_defconfig
index 96b4e9ecda..517ac0575d 100644
--- a/configs/odroid-m1-rk3568_defconfig
+++ b/configs/odroid-m1-rk3568_defconfig
@@ -72,6 +72,8 @@ CONFIG_ROCKCHIP_GPIO=y
CONFIG_SYS_I2C_ROCKCHIP=y
CONFIG_MISC=y
CONFIG_SUPPORT_EMMC_RPMB=y
+CONFIG_MMC_HS200_SUPPORT=y
+CONFIG_SPL_MMC_HS200_SUPPORT=y
CONFIG_MMC_DW=y
CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SDHCI=y

View File

@ -1,48 +0,0 @@
From ed61d0b5f18bf333ff7f35fc8546dd58d227b12f Mon Sep 17 00:00:00 2001
From: Tim Lunn <tim@feathertop.org>
Date: Sat, 3 Feb 2024 18:38:49 +1100
Subject: [PATCH] Apply fixes for mainline u-boot
---
arch/arm/dts/rk3566-odroid-m1s.dts | 6 +-----
configs/odroid-m1s-rk3566_defconfig | 1 -
2 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/arch/arm/dts/rk3566-odroid-m1s.dts b/arch/arm/dts/rk3566-odroid-m1s.dts
index 73e29d80c7..2dba07ba19 100644
--- a/arch/arm/dts/rk3566-odroid-m1s.dts
+++ b/arch/arm/dts/rk3566-odroid-m1s.dts
@@ -17,12 +17,8 @@
aliases {
ethernet0 = &gmac1;
- i2c0 = &i2c3;
- i2c3 = &i2c0;
mmc0 = &sdhci;
mmc1 = &sdmmc0;
- serial0 = &uart1;
- serial1 = &uart0;
};
chosen {
@@ -578,7 +574,7 @@
disable-wp;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
- sd-uhs-sdr50;
+ sd-uhs-sdr104;
vmmc-supply = <&vcc3v3_sd>;
vqmmc-supply = <&vccio_sd>;
status = "okay";
diff --git a/configs/odroid-m1s-rk3566_defconfig b/configs/odroid-m1s-rk3566_defconfig
index d70a10dc08..61b6962063 100644
--- a/configs/odroid-m1s-rk3566_defconfig
+++ b/configs/odroid-m1s-rk3566_defconfig
@@ -106,4 +106,3 @@ CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GENERIC=y
CONFIG_FS_CRAMFS=y
CONFIG_ERRNO_STR=y
-CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x0800
--
2.40.1

View File

@ -1,44 +0,0 @@
From 2a1d8f586799e4166e802babcce18c9980aa1f44 Mon Sep 17 00:00:00 2001
From: Tim Lunn <tim@feathertop.org>
Date: Thu, 1 Feb 2024 17:50:46 +1100
Subject: [PATCH] Improve reliability of eMMC
Cherry-picked from:
20240126232615.6826-2-jonas@kwiboo.se
---
arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi | 4 ----
configs/odroid-m1s-rk3566_defconfig | 2 ++
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi b/arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi
index 33a1d142b8..04d0cd17ef 100644
--- a/arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi
+++ b/arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi
@@ -14,11 +14,7 @@
&sdhci {
cap-mmc-highspeed;
- mmc-ddr-1_8v;
mmc-hs200-1_8v;
- mmc-hs400-1_8v;
- mmc-hs400-enhanced-strobe;
- pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
};
&uart2 {
diff --git a/configs/odroid-m1s-rk3566_defconfig b/configs/odroid-m1s-rk3566_defconfig
index 61b6962063..7920ef224d 100644
--- a/configs/odroid-m1s-rk3566_defconfig
+++ b/configs/odroid-m1s-rk3566_defconfig
@@ -70,6 +70,8 @@ CONFIG_ROCKCHIP_GPIO=y
CONFIG_SYS_I2C_ROCKCHIP=y
CONFIG_MISC=y
CONFIG_SUPPORT_EMMC_RPMB=y
+CONFIG_MMC_HS200_SUPPORT=y
+CONFIG_SPL_MMC_HS200_SUPPORT=y
CONFIG_MMC_DW=y
CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SDHCI=y
--
2.40.1

View File

@ -1,52 +0,0 @@
From 65a304151817626157e7be4e7e1581cdddca2a02 Mon Sep 17 00:00:00 2001
From: Tim Lunn <tim@feathertop.org>
Date: Sat, 3 Feb 2024 23:42:47 +1100
Subject: [PATCH] Fix ethernet properties
---
arch/arm/dts/rk3566-odroid-m1s.dts | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/arch/arm/dts/rk3566-odroid-m1s.dts b/arch/arm/dts/rk3566-odroid-m1s.dts
index 2dba07ba19..73b545109d 100644
--- a/arch/arm/dts/rk3566-odroid-m1s.dts
+++ b/arch/arm/dts/rk3566-odroid-m1s.dts
@@ -197,10 +197,9 @@
};
&gmac1 {
- assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>;
- assigned-clock-rates = <0>, <125000000>;
- assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
- clock_in_out = "output";
+ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
+ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
+ clock_in_out = "input";
phy-handle = <&rgmii_phy1>;
phy-mode = "rgmii";
phy-supply = <&vcc3v3_sys>;
@@ -211,10 +210,9 @@
&gmac1m1_rgmii_clk
&gmac1m1_rgmii_bus
&gmac1m1_clkinout>;
- status = "okay";
-
tx_delay = <0x4f>;
rx_delay = <0x2d>;
+ status = "okay";
};
&gpu {
@@ -496,6 +494,9 @@
rgmii_phy1: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0x0>;
+ reset-assert-us = <20000>;
+ reset-deassert-us = <100000>;
+ reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
};
};
--
2.40.1

View File

@ -1,4 +1,4 @@
From 024796cbf752d2e210341ae8609792803641eb92 Mon Sep 17 00:00:00 2001
From f63ef87b9a9bf9997aa4017f8380567b20a1810c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Thu, 7 Nov 2024 12:39:02 +0100
Subject: [PATCH] HACK: mmc: meson-gx: limit f_max to 24 MHz on the first try
@ -25,10 +25,10 @@ Signed-off-by: Jan Čermák <sairon@sairon.cz>
3 files changed, 15 insertions(+)
diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c
index fcf4f03d1e..715dce3522 100644
index 5852b24c6d2..0e0265de359 100644
--- a/drivers/mmc/meson_gx_mmc.c
+++ b/drivers/mmc/meson_gx_mmc.c
@@ -283,6 +283,8 @@ static int meson_mmc_probe(struct udevice *dev)
@@ -282,6 +282,8 @@ static int meson_mmc_probe(struct udevice *dev)
cfg->b_max = 511; /* max 512 - 1 blocks */
cfg->name = dev->name;
@ -38,10 +38,10 @@ index fcf4f03d1e..715dce3522 100644
upriv->mmc = mmc;
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index d96db7a0f8..c8dc676612 100644
index 799586891af..85b6210f220 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1652,6 +1652,10 @@ int mmc_set_clock(struct mmc *mmc, uint clock, bool disable)
@@ -1694,6 +1694,10 @@ int mmc_set_clock(struct mmc *mmc, uint clock, bool disable)
clock = mmc->cfg->f_min;
}
@ -52,7 +52,7 @@ index d96db7a0f8..c8dc676612 100644
mmc->clock = clock;
mmc->clk_disable = disable;
@@ -2647,6 +2651,13 @@ static int mmc_startup(struct mmc *mmc)
@@ -2701,6 +2705,13 @@ static int mmc_startup(struct mmc *mmc)
if (err)
return err;
err = mmc_select_mode_and_width(mmc, mmc->card_caps);
@ -67,13 +67,13 @@ index d96db7a0f8..c8dc676612 100644
#endif
if (err)
diff --git a/include/mmc.h b/include/mmc.h
index 1022db3ffa..0ea48c6fd9 100644
index e4b960b7294..5ad40cf2ed1 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -739,6 +739,8 @@ struct mmc {
u8 hs400_tuning;
@@ -760,6 +760,8 @@ struct mmc {
enum bus_mode user_speed_mode; /* input speed mode from user */
CONFIG_IS_ENABLED(CYCLIC, (struct cyclic_info cyclic));
+
+ bool meson_gx_f_max_hack;
};

View File

@ -1,33 +1,35 @@
From 501ac314ef709d6ecac3047310d5e48a473df638 Mon Sep 17 00:00:00 2001
From 99fdcac59b4c993dcac1869e8372dc895ffa0ae5 Mon Sep 17 00:00:00 2001
From: Zhangqun Ming <north_sea@qq.com>
Date: Thu, 6 Jul 2023 10:06:35 +0000
Subject: [PATCH] arch: arm: dts: Add NabuCasa Green board
---
arch/arm/dts/Makefile | 1 +
arch/arm/dts/Makefile | 3 +
arch/arm/dts/rk3566-ha-green-u-boot.dtsi | 28 +
arch/arm/dts/rk3566-ha-green.dts | 685 +++++++++++++++++++++++
configs/green_defconfig | 74 +++
4 files changed, 788 insertions(+)
4 files changed, 790 insertions(+)
create mode 100644 arch/arm/dts/rk3566-ha-green-u-boot.dtsi
create mode 100644 arch/arm/dts/rk3566-ha-green.dts
create mode 100644 configs/green_defconfig
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 9d28a485be..f78839f9cc 100644
index 6ad59aeed5f..92c6fa54caa 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -172,6 +172,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \
@@ -87,6 +87,9 @@ dtb-$(CONFIG_ROCKCHIP_RK3368) += \
rk3368-geekbox.dtb \
rk3368-px5-evb.dtb \
+dtb-$(CONFIG_ROCKCHIP_RK3568) += \
+ rk3566-ha-green.dtb
+
dtb-$(CONFIG_ARCH_S5P4418) += \
s5p4418-nanopi2.dtb
dtb-$(CONFIG_ROCKCHIP_RK3568) += \
rk3566-anbernic-rgxx3.dtb \
+ rk3566-ha-green.dtb \
rk3566-quartz64-a.dtb \
rk3566-quartz64-b.dtb \
rk3566-radxa-cm3-io.dtb \
diff --git a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
new file mode 100644
index 0000000000..83fa66d591
index 00000000000..83fa66d591e
--- /dev/null
+++ b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
@@ -0,0 +1,28 @@
@ -61,7 +63,7 @@ index 0000000000..83fa66d591
+};
diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts
new file mode 100644
index 0000000000..15d2b73433
index 00000000000..15d2b734338
--- /dev/null
+++ b/arch/arm/dts/rk3566-ha-green.dts
@@ -0,0 +1,685 @@
@ -752,7 +754,7 @@ index 0000000000..15d2b73433
+};
diff --git a/configs/green_defconfig b/configs/green_defconfig
new file mode 100644
index 0000000000..0617d308aa
index 00000000000..0617d308aa2
--- /dev/null
+++ b/configs/green_defconfig
@@ -0,0 +1,74 @@
@ -830,6 +832,3 @@ index 0000000000..0617d308aa
+CONFIG_SYSRESET=y
+# CONFIG_BINMAN_FDT is not set
+CONFIG_ERRNO_STR=y
--
2.43.0

View File

@ -1,4 +1,4 @@
From 6441bdb22a25649ff8fd69aa8f8a7285d9c37266 Mon Sep 17 00:00:00 2001
From 634b3b17d96b6def645b15b379fbe617620e6665 Mon Sep 17 00:00:00 2001
From: Zhangqun Ming <north_sea@qq.com>
Date: Fri, 14 Jul 2023 14:13:39 +0000
Subject: [PATCH] configs: green: Support USB boot
@ -8,7 +8,7 @@ Subject: [PATCH] configs: green: Support USB boot
1 file changed, 36 insertions(+), 16 deletions(-)
diff --git a/configs/green_defconfig b/configs/green_defconfig
index 0617d308aa..14960b67d2 100644
index 0617d308aa2..14960b67d26 100644
--- a/configs/green_defconfig
+++ b/configs/green_defconfig
@@ -6,48 +6,54 @@ CONFIG_TEXT_BASE=0x00a00000
@ -112,6 +112,3 @@ index 0617d308aa..14960b67d2 100644
+CONFIG_USB_OHCI_GENERIC=y
+CONFIG_USB_DWC3=y
CONFIG_ERRNO_STR=y
--
2.43.0

View File

@ -1,4 +1,4 @@
From d8b8b614d19dbb3fa004677a2c2e50b685a80192 Mon Sep 17 00:00:00 2001
From 80fc442a51ecab7b822145561421e3adff899bc9 Mon Sep 17 00:00:00 2001
From: Zhangqun Ming <north_sea@qq.com>
Date: Fri, 14 Jul 2023 14:14:10 +0000
Subject: [PATCH] arch: arm: dts: rk3566: green: boot order
@ -9,7 +9,7 @@ Subject: [PATCH] arch: arm: dts: rk3566: green: boot order
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
index 83fa66d591..7f2ed298ce 100644
index 83fa66d591e..7f2ed298ce3 100644
--- a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
+++ b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
@@ -9,7 +9,7 @@
@ -33,7 +33,7 @@ index 83fa66d591..7f2ed298ce 100644
clock-frequency = <24000000>;
bootph-all;
diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts
index 15d2b73433..bf0f81c3a1 100644
index 15d2b734338..bf0f81c3a15 100644
--- a/arch/arm/dts/rk3566-ha-green.dts
+++ b/arch/arm/dts/rk3566-ha-green.dts
@@ -563,7 +563,7 @@
@ -45,6 +45,3 @@ index 15d2b73433..bf0f81c3a1 100644
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <100000000>;
--
2.43.0

View File

@ -1,4 +1,4 @@
From e14d7d56b293ba01c5b73a4b3483795d78c75172 Mon Sep 17 00:00:00 2001
From 107a4b9bf7d335de4a6dc7e6097a1f38fdab38c7 Mon Sep 17 00:00:00 2001
From: Zhangqun Ming <north_sea@qq.com>
Date: Sat, 15 Jul 2023 08:46:09 +0000
Subject: [PATCH] arch: arm: dts: green: spi nor uboot
@ -10,7 +10,7 @@ Subject: [PATCH] arch: arm: dts: green: spi nor uboot
3 files changed, 91 insertions(+), 3 deletions(-)
diff --git a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
index 7f2ed298ce..fa98078fce 100644
index 7f2ed298ce3..fa98078fce2 100644
--- a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
+++ b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
@@ -13,15 +13,96 @@
@ -123,7 +123,7 @@ index 7f2ed298ce..fa98078fce 100644
+};
\ No newline at end of file
diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts
index bf0f81c3a1..ea9d358099 100644
index bf0f81c3a15..ea9d358099b 100644
--- a/arch/arm/dts/rk3566-ha-green.dts
+++ b/arch/arm/dts/rk3566-ha-green.dts
@@ -566,8 +566,8 @@
@ -138,7 +138,7 @@ index bf0f81c3a1..ea9d358099 100644
partitions {
diff --git a/configs/green_defconfig b/configs/green_defconfig
index 14960b67d2..5f94c06279 100644
index 14960b67d26..5f94c062798 100644
--- a/configs/green_defconfig
+++ b/configs/green_defconfig
@@ -68,6 +68,8 @@ CONFIG_MMC_SDHCI_SDMA=y
@ -150,6 +150,3 @@ index 14960b67d2..5f94c06279 100644
CONFIG_ETH_DESIGNWARE=y
CONFIG_GMAC_ROCKCHIP=y
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
--
2.43.0

View File

@ -1,4 +1,4 @@
From acec57c77e10230fc32820046301cb2a59c431d4 Mon Sep 17 00:00:00 2001
From c1b3736623b9a6e5d027ca202dbc53b7eb7e4662 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 17 Aug 2023 17:38:13 +0200
Subject: [PATCH] board: green: add Green board to read board specific EEPROM
@ -12,17 +12,17 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
arch/arm/mach-rockchip/rk3568/Kconfig | 7 +++
board/nabucasa/ha-green/Kconfig | 15 +++++++
board/nabucasa/ha-green/Makefile | 3 ++
board/nabucasa/ha-green/ha-green.c | 65 +++++++++++++++++++++++++++
board/nabucasa/ha-green/ha-green.c | 64 +++++++++++++++++++++++++++
configs/green_defconfig | 3 ++
include/configs/ha-green.h | 11 +++++
7 files changed, 111 insertions(+)
7 files changed, 110 insertions(+)
create mode 100644 board/nabucasa/ha-green/Kconfig
create mode 100644 board/nabucasa/ha-green/Makefile
create mode 100644 board/nabucasa/ha-green/ha-green.c
create mode 100644 include/configs/ha-green.h
diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts
index ea9d358099..91afadf0e6 100644
index ea9d358099b..91afadf0e65 100644
--- a/arch/arm/dts/rk3566-ha-green.dts
+++ b/arch/arm/dts/rk3566-ha-green.dts
@@ -449,6 +449,13 @@
@ -40,7 +40,7 @@ index ea9d358099..91afadf0e6 100644
&i2s0_8ch {
diff --git a/arch/arm/mach-rockchip/rk3568/Kconfig b/arch/arm/mach-rockchip/rk3568/Kconfig
index baa51349f4..42652dec03 100644
index ce327ed6f9e..5f675b11491 100644
--- a/arch/arm/mach-rockchip/rk3568/Kconfig
+++ b/arch/arm/mach-rockchip/rk3568/Kconfig
@@ -17,6 +17,12 @@ config TARGET_ANBERNIC_RGXX3_RK3566
@ -56,17 +56,17 @@ index baa51349f4..42652dec03 100644
config TARGET_ODROID_M1_RK3568
bool "ODROID-M1"
help
@@ -44,6 +50,7 @@ config SYS_MALLOC_F_LEN
source "board/rockchip/evb_rk3568/Kconfig"
@@ -81,6 +87,7 @@ source "board/rockchip/evb_rk3568/Kconfig"
source "board/anbernic/rgxx3_rk3566/Kconfig"
source "board/hardkernel/odroid_m1/Kconfig"
source "board/hardkernel/odroid_m1s/Kconfig"
+source "board/nabucasa/ha-green/Kconfig"
source "board/pine64/quartz64_rk3566/Kconfig"
endif
source "board/powkiddy/x55/Kconfig"
source "board/qnap/ts433/Kconfig"
diff --git a/board/nabucasa/ha-green/Kconfig b/board/nabucasa/ha-green/Kconfig
new file mode 100644
index 0000000000..863afd4363
index 00000000000..863afd43632
--- /dev/null
+++ b/board/nabucasa/ha-green/Kconfig
@@ -0,0 +1,15 @@
@ -87,7 +87,7 @@ index 0000000000..863afd4363
+endif
diff --git a/board/nabucasa/ha-green/Makefile b/board/nabucasa/ha-green/Makefile
new file mode 100644
index 0000000000..bf711fe8c4
index 00000000000..bf711fe8c44
--- /dev/null
+++ b/board/nabucasa/ha-green/Makefile
@@ -0,0 +1,3 @@
@ -96,10 +96,10 @@ index 0000000000..bf711fe8c4
+obj-y += ha-green.o
diff --git a/board/nabucasa/ha-green/ha-green.c b/board/nabucasa/ha-green/ha-green.c
new file mode 100644
index 0000000000..b9a0c32441
index 00000000000..3f0ede747bc
--- /dev/null
+++ b/board/nabucasa/ha-green/ha-green.c
@@ -0,0 +1,65 @@
@@ -0,0 +1,64 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2023 Nabu Casa, Inc.
@ -109,7 +109,6 @@ index 0000000000..b9a0c32441
+#include <errno.h>
+#include <dm/device.h>
+#include <dm/uclass.h>
+#include <common.h>
+#include <dm.h>
+#include <eeprom.h>
+#include <env.h>
@ -166,7 +165,7 @@ index 0000000000..b9a0c32441
+ return 0;
+}
diff --git a/configs/green_defconfig b/configs/green_defconfig
index 5f94c06279..a97391f295 100644
index 5f94c062798..a97391f2954 100644
--- a/configs/green_defconfig
+++ b/configs/green_defconfig
@@ -16,6 +16,7 @@ CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
@ -188,7 +187,7 @@ index 5f94c06279..a97391f295 100644
CONFIG_MMC_DW_ROCKCHIP=y
diff --git a/include/configs/ha-green.h b/include/configs/ha-green.h
new file mode 100644
index 0000000000..e42d9c8e8c
index 00000000000..e42d9c8e8c9
--- /dev/null
+++ b/include/configs/ha-green.h
@@ -0,0 +1,11 @@
@ -203,6 +202,3 @@ index 0000000000..e42d9c8e8c
+#include <configs/rk3568_common.h>
+
+#endif
--
2.43.0

View File

@ -1,4 +1,4 @@
From 51f1bdec59b8f62ac00a37e97a7bb8ebfc9f61d7 Mon Sep 17 00:00:00 2001
From 6ae9e30259812a3cbc8d4990a5acfe459053a225 Mon Sep 17 00:00:00 2001
From: syan <syan.cham@gmail.com>
Date: Mon, 31 Jul 2023 09:39:55 +0000
Subject: [PATCH] green: spl loader uboot order: sd-emmc-spi_nor
@ -8,7 +8,7 @@ Subject: [PATCH] green: spl loader uboot order: sd-emmc-spi_nor
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
index fa98078fce..48d7b61513 100644
index fa98078fce2..48d7b615137 100644
--- a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
+++ b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
@@ -9,7 +9,7 @@
@ -20,6 +20,3 @@ index fa98078fce..48d7b61513 100644
};
};
--
2.43.0

View File

@ -1,4 +1,4 @@
From 0142d1a99d2aa4a6dad7181dcd74958b2ee0fe31 Mon Sep 17 00:00:00 2001
From b6c7fc08198300d8620f9896db468e0e50e8838a Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 17 Aug 2023 17:51:07 +0200
Subject: [PATCH] green: Fix SPI Flash alias
@ -12,7 +12,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/configs/green_defconfig b/configs/green_defconfig
index a97391f295..71c9257d7d 100644
index a97391f2954..71c9257d7d4 100644
--- a/configs/green_defconfig
+++ b/configs/green_defconfig
@@ -55,6 +55,7 @@ CONFIG_CMD_REGULATOR=y
@ -38,6 +38,3 @@ index a97391f295..71c9257d7d 100644
CONFIG_ETH_DESIGNWARE=y
CONFIG_GMAC_ROCKCHIP=y
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
--
2.43.0

View File

@ -1,4 +1,4 @@
From 846df62342a4904a91aace66e9204ae3ed4ca0af Mon Sep 17 00:00:00 2001
From 71ad7d9b73ff14283e61fbb1d3d214982f8c9967 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Fri, 18 Aug 2023 10:06:24 +0200
Subject: [PATCH] arch: arm: dts: green: drop SPI NOR flash partitions
@ -8,7 +8,7 @@ Subject: [PATCH] arch: arm: dts: green: drop SPI NOR flash partitions
1 file changed, 27 deletions(-)
diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts
index 91afadf0e6..68d836911e 100644
index 91afadf0e65..68d836911ec 100644
--- a/arch/arm/dts/rk3566-ha-green.dts
+++ b/arch/arm/dts/rk3566-ha-green.dts
@@ -576,33 +576,6 @@
@ -45,6 +45,3 @@ index 91afadf0e6..68d836911e 100644
};
};
--
2.43.0

View File

@ -1,4 +1,4 @@
From 331826e0c52d6bdd65d862e06834f23b3a750276 Mon Sep 17 00:00:00 2001
From bda29ba9030c8ad9aa245d68033a83106de4f633 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Wed, 12 Jun 2024 15:20:46 +0200
Subject: [PATCH] green: Do not use eMMC DDR52 mode, enable HS200
@ -22,7 +22,7 @@ Signed-off-by: Jan Čermák <sairon@sairon.cz>
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
index 48d7b61513..8dc1585aac 100644
index 48d7b615137..8dc1585aacd 100644
--- a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
+++ b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi
@@ -71,10 +71,7 @@
@ -44,7 +44,7 @@ index 48d7b61513..8dc1585aac 100644
\ No newline at end of file
+};
diff --git a/configs/green_defconfig b/configs/green_defconfig
index 71c9257d7d..7b5a705686 100644
index 71c9257d7d4..7b5a7056868 100644
--- a/configs/green_defconfig
+++ b/configs/green_defconfig
@@ -65,6 +65,8 @@ CONFIG_MISC=y

View File

@ -1,4 +1,4 @@
From d3fb1ec2364b20025d71e2263514a71208cfb61e Mon Sep 17 00:00:00 2001
From 2bdc5718a00ce5cb9c1fa27c8a1ff6893b016455 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Tue, 13 Aug 2024 17:51:29 +0200
Subject: [PATCH] arch: arm64: dts: green: Improve LED representation
@ -15,7 +15,7 @@ Co-authored-by: Stefan Agner <stefan@agner.ch>
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts
index 68d836911e..c3adc59904 100644
index 68d836911ec..c3adc599049 100644
--- a/arch/arm/dts/rk3566-ha-green.dts
+++ b/arch/arm/dts/rk3566-ha-green.dts
@@ -48,16 +48,18 @@

View File

@ -0,0 +1,93 @@
From a05b87fa8cd6716a07514c64d8816272418d74e8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Fri, 14 Feb 2025 18:09:29 +0100
Subject: [PATCH] configs: green: fix bss and stack address and disable
OF_UPSTREAM
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Some addresses defined in Green defconfig are wrong after upstream
changes [1] for Rockchip platform present since U-Boot 2024.04+. Remove
them to apply upstream changes and disable OF_UPSTREAM, as we don't have
upstream device tree for Green. Also refresh the defconfig
[1] https://lore.kernel.org/u-boot/20240302191629.322562-1-jonas@kwiboo.se/
Signed-off-by: Jan Čermák <sairon@sairon.cz>
---
configs/green_defconfig | 21 +++------------------
1 file changed, 3 insertions(+), 18 deletions(-)
diff --git a/configs/green_defconfig b/configs/green_defconfig
index 7b5a7056868..1f61c172f01 100644
--- a/configs/green_defconfig
+++ b/configs/green_defconfig
@@ -2,27 +2,20 @@ CONFIG_ARM=y
CONFIG_SKIP_LOWLEVEL_INIT=y
CONFIG_COUNTER_FREQUENCY=24000000
CONFIG_ARCH_ROCKCHIP=y
-CONFIG_TEXT_BASE=0x00a00000
-CONFIG_SPL_LIBCOMMON_SUPPORT=y
-CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_NR_DRAM_BANKS=2
-CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
-CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
CONFIG_SF_DEFAULT_SPEED=24000000
CONFIG_SF_DEFAULT_MODE=0x2000
CONFIG_DEFAULT_DEVICE_TREE="rk3566-ha-green"
CONFIG_ROCKCHIP_RK3568=y
-CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
CONFIG_ROCKCHIP_SPI_IMAGE=y
CONFIG_SPL_SERIAL=y
-CONFIG_SPL_STACK_R_ADDR=0x600000
CONFIG_TARGET_NABU_CASA_HA_GREEN_RK3566=y
-CONFIG_SPL_STACK=0x400000
+CONFIG_SYS_LOAD_ADDR=0xc00800
+CONFIG_SF_DEFAULT_BUS=4
CONFIG_DEBUG_UART_BASE=0xFE660000
CONFIG_DEBUG_UART_CLOCK=24000000
CONFIG_SPL_SPI_FLASH_SUPPORT=y
CONFIG_SPL_SPI=y
-CONFIG_SYS_LOAD_ADDR=0xc00800
CONFIG_DEBUG_UART=y
CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
@@ -34,12 +27,7 @@ CONFIG_DEFAULT_FDT_FILE="rockchip/rk3566-ha-green.dtb"
CONFIG_DISPLAY_BOARDINFO_LATE=y
CONFIG_SPL_MAX_SIZE=0x40000
CONFIG_SPL_PAD_TO=0x7f8000
-CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
-CONFIG_SPL_BSS_START_ADDR=0x4000000
-CONFIG_SPL_BSS_MAX_SIZE=0x4000
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-CONFIG_SPL_STACK_R=y
CONFIG_SPL_SPI_LOAD=y
CONFIG_SYS_SPI_U_BOOT_OFFS=0x60000
CONFIG_SPL_ATF=y
@@ -54,6 +42,7 @@ CONFIG_CMD_REGULATOR=y
# CONFIG_SPL_DOS_PARTITION is not set
CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_LIVE=y
+# CONFIG_OF_UPSTREAM is not set
CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
CONFIG_SPL_DM_SEQ_ALIAS=y
CONFIG_SPL_REGMAP=y
@@ -63,16 +52,12 @@ CONFIG_ROCKCHIP_GPIO=y
CONFIG_SYS_I2C_ROCKCHIP=y
CONFIG_MISC=y
CONFIG_I2C_EEPROM=y
-CONFIG_SYS_I2C_EEPROM_ADDR=0x0
CONFIG_SUPPORT_EMMC_RPMB=y
-CONFIG_MMC_HS200_SUPPORT=y
-CONFIG_SPL_MMC_HS200_SUPPORT=y
CONFIG_MMC_DW=y
CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_MMC_SDHCI_ROCKCHIP=y
-CONFIG_SF_DEFAULT_BUS=4
CONFIG_SPI_FLASH_SFDP_SUPPORT=y
CONFIG_SPI_FLASH_GIGADEVICE=y
CONFIG_SPI_FLASH_MACRONIX=y

View File

@ -1,4 +1,4 @@
From 3d9bd29941ce291e44aab60be1339d4c116ebda5 Mon Sep 17 00:00:00 2001
From 1e59538810162eca0e902e024dde599c15f36cde Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Tue, 29 Dec 2020 23:34:52 +0100
Subject: [PATCH] rpi: add NVMe to boot order
@ -12,7 +12,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/board/raspberrypi/rpi/rpi.env b/board/raspberrypi/rpi/rpi.env
index 30228285ed..89f6c5a839 100644
index 30228285edd..89f6c5a8392 100644
--- a/board/raspberrypi/rpi/rpi.env
+++ b/board/raspberrypi/rpi/rpi.env
@@ -74,4 +74,4 @@ pxefile_addr_r=0x02500000

View File

@ -1,4 +1,4 @@
From ab13da2df9f86517df45da293ed8002e07a3d5ec Mon Sep 17 00:00:00 2001
From 16508d6d1a166ac2c7c03550876633cf9828e0e0 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 23 Sep 2021 23:43:31 +0200
Subject: [PATCH] Revert "nvme: Correct the prps per page calculation method"
@ -23,7 +23,7 @@ Cc: Wesley Sheng <wesleyshenggit@sina.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
index 7c58ceb78f..0b2496cf26 100644
index 7c58ceb78f5..0b2496cf26f 100644
--- a/drivers/nvme/nvme.c
+++ b/drivers/nvme/nvme.c
@@ -52,7 +52,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,

View File

@ -1,4 +1,4 @@
From 9de58838106829b8caa47b6fd6b42ba3435c2ce6 Mon Sep 17 00:00:00 2001
From 725fef2ebd8a23f68c2574ca799593596d1ef6fd Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 7 Oct 2021 12:02:39 +0200
Subject: [PATCH] usb: xhci-brcm: Make driver compatible with downstream device
@ -13,7 +13,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c
index 2ffad148de..2a063ccc9e 100644
index 2ffad148dea..2a063ccc9eb 100644
--- a/drivers/usb/host/xhci-brcm.c
+++ b/drivers/usb/host/xhci-brcm.c
@@ -81,7 +81,7 @@ static int xhci_brcm_deregister(struct udevice *dev)

View File

@ -1,4 +1,4 @@
From 8c5910539c7e4e97f233789c2489c800f87ddf81 Mon Sep 17 00:00:00 2001
From cd66ee3e5f0a3c86702cf898c5b6d13227cd29b7 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 23 Sep 2021 23:52:44 +0200
Subject: [PATCH] nvme: improve readability of nvme_setup_prps()
@ -12,7 +12,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
index 0b2496cf26..b1d8eecdca 100644
index 0b2496cf26f..b1d8eecdcaf 100644
--- a/drivers/nvme/nvme.c
+++ b/drivers/nvme/nvme.c
@@ -47,12 +47,12 @@ static int nvme_wait_csts(struct nvme_dev *dev, u32 mask, u32 val)

View File

@ -1,4 +1,4 @@
From e3f73d6ddba46f3b4ec8833c11f9ad831e57d394 Mon Sep 17 00:00:00 2001
From 76cde18c3c80d4f7c2d53e4731e1c5d9689a6f49 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 23 Sep 2021 23:58:35 +0200
Subject: [PATCH] nvme: Use pointer for CPU addressed buffers
@ -15,7 +15,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
3 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
index b1d8eecdca..f626a472ff 100644
index b1d8eecdcaf..f626a472ffa 100644
--- a/drivers/nvme/nvme.c
+++ b/drivers/nvme/nvme.c
@@ -45,11 +45,11 @@ static int nvme_wait_csts(struct nvme_dev *dev, u32 mask, u32 val)
@ -184,7 +184,7 @@ index b1d8eecdca..f626a472ff 100644
goto free_id;
}
diff --git a/drivers/nvme/nvme_show.c b/drivers/nvme/nvme_show.c
index b06cb5c6d5..ad1a260f9a 100644
index b06cb5c6d51..ad1a260f9ab 100644
--- a/drivers/nvme/nvme_show.c
+++ b/drivers/nvme/nvme_show.c
@@ -113,7 +113,7 @@ int nvme_print_info(struct udevice *udev)
@ -206,7 +206,7 @@ index b06cb5c6d5..ad1a260f9a 100644
goto free_id;
}
diff --git a/include/nvme.h b/include/nvme.h
index 2cdf8ce320..8ff823cd81 100644
index 2cdf8ce320c..8ff823cd81c 100644
--- a/include/nvme.h
+++ b/include/nvme.h
@@ -18,12 +18,12 @@ struct nvme_dev;

View File

@ -1,4 +1,4 @@
From 1c9ebd44d5af878719f041d6a2329cc81674134c Mon Sep 17 00:00:00 2001
From 9d2676a8fad6d92e5c761c125b069c90a9ef6587 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Fri, 24 Sep 2021 00:27:39 +0200
Subject: [PATCH] nvme: translate virtual addresses into the bus's address
@ -26,7 +26,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
2 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
index f626a472ff..70ce63f205 100644
index f626a472ffa..70ce63f2053 100644
--- a/drivers/nvme/nvme.c
+++ b/drivers/nvme/nvme.c
@@ -66,7 +66,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
@ -143,7 +143,7 @@ index f626a472ff..70ce63f205 100644
status = nvme_submit_sync_cmd(dev->queues[NVME_IO_Q],
&c, NULL, IO_TIMEOUT);
diff --git a/drivers/nvme/nvme.h b/drivers/nvme/nvme.h
index bc1d612dde..f52103c009 100644
index bc1d612dde4..f52103c0095 100644
--- a/drivers/nvme/nvme.h
+++ b/drivers/nvme/nvme.h
@@ -7,8 +7,11 @@

View File

@ -1,4 +1,4 @@
From 418664bb1dfa61b8fc1a0292adb00ec93e1a7619 Mon Sep 17 00:00:00 2001
From c77c55c6975af3ff5210559b1c5a89e76de0cceb Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Mon, 24 Apr 2023 15:44:15 +0200
Subject: [PATCH] Revert "pci: Check region ranges are addressable"
@ -15,7 +15,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c
index 6571e65304..803d5c25fc 100644
index 59894d2430b..f1f7e525efe 100644
--- a/drivers/pci/pci-uclass.c
+++ b/drivers/pci/pci-uclass.c
@@ -1038,22 +1038,7 @@ static int decode_regions(struct pci_controller *hose, ofnode parent_node,

View File

@ -1,4 +1,4 @@
From 81100e760c8ed3d697696de5353d51e8e1af2be4 Mon Sep 17 00:00:00 2001
From ad9ce9d8ba273fffeff3d98ae1fc978dd217ab1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Mon, 30 Sep 2024 17:56:45 +0200
Subject: [PATCH] reset: reset-brcmstb: Add Broadcom STB reset controller
@ -20,7 +20,7 @@ Signed-off-by: Jan Čermák <sairon@sairon.cz>
create mode 100644 drivers/reset/reset-brcmstb.c
diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
index fe5c1214f5..10a364b2a8 100644
index fe5c1214f57..186dd963bc4 100644
--- a/drivers/reset/Kconfig
+++ b/drivers/reset/Kconfig
@@ -63,6 +63,12 @@ config RESET_BCM6345
@ -37,7 +37,7 @@ index fe5c1214f5..10a364b2a8 100644
bool "Reset controller driver for UniPhier SoCs"
depends on ARCH_UNIPHIER
diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile
index 2eb639e4a6..d7e9ac1a88 100644
index d99a78c9828..8d9181e8af7 100644
--- a/drivers/reset/Makefile
+++ b/drivers/reset/Makefile
@@ -13,6 +13,7 @@ obj-$(CONFIG_TEGRA186_RESET) += tegra186-reset.o
@ -50,7 +50,7 @@ index 2eb639e4a6..d7e9ac1a88 100644
obj-$(CONFIG_RESET_AST2600) += reset-ast2600.o
diff --git a/drivers/reset/reset-brcmstb.c b/drivers/reset/reset-brcmstb.c
new file mode 100644
index 0000000000..c0aef5f124
index 00000000000..c0aef5f1241
--- /dev/null
+++ b/drivers/reset/reset-brcmstb.c
@@ -0,0 +1,89 @@

View File

@ -1,4 +1,4 @@
From eb7dd5b1afa4831e6eca2edb2650bd9db9a6d6eb Mon Sep 17 00:00:00 2001
From d7f2d45fa63507cef65e86aeb79e1f47733e981c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Mon, 30 Sep 2024 18:09:29 +0200
Subject: [PATCH] reset: reset-brcmstb-rescal: Add Broadcom RESCAL reset
@ -21,7 +21,7 @@ Signed-off-by: Jan Čermák <sairon@sairon.cz>
create mode 100644 drivers/reset/reset-brcmstb-rescal.c
diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
index 10a364b2a8..fd1eb05a41 100644
index 186dd963bc4..85776ba234d 100644
--- a/drivers/reset/Kconfig
+++ b/drivers/reset/Kconfig
@@ -69,6 +69,12 @@ config RESET_BRCMSTB
@ -38,7 +38,7 @@ index 10a364b2a8..fd1eb05a41 100644
bool "Reset controller driver for UniPhier SoCs"
depends on ARCH_UNIPHIER
diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile
index d7e9ac1a88..45cf2f1b4d 100644
index 8d9181e8af7..8f926c52c42 100644
--- a/drivers/reset/Makefile
+++ b/drivers/reset/Makefile
@@ -14,6 +14,7 @@ obj-$(CONFIG_RESET_TI_SCI) += reset-ti-sci.o
@ -51,7 +51,7 @@ index d7e9ac1a88..45cf2f1b4d 100644
obj-$(CONFIG_RESET_AST2600) += reset-ast2600.o
diff --git a/drivers/reset/reset-brcmstb-rescal.c b/drivers/reset/reset-brcmstb-rescal.c
new file mode 100644
index 0000000000..37096bb9ff
index 00000000000..37096bb9fff
--- /dev/null
+++ b/drivers/reset/reset-brcmstb-rescal.c
@@ -0,0 +1,101 @@

View File

@ -1,4 +1,4 @@
From 6e16ad9e01d746f78f8a2391dec9aae3f39a96e5 Mon Sep 17 00:00:00 2001
From 62d5ad02aa91d4f8e5343869439c0e2302b59301 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Mon, 30 Sep 2024 18:13:09 +0200
Subject: [PATCH] pci: pcie-brcmstb: Add basic support for BCM2712 PCIe
@ -25,12 +25,48 @@ in a similar fashion as in upstream/downstream Linux drivers.
Signed-off-by: Jan Čermák <sairon@sairon.cz>
---
arch/arm/mach-bcm283x/init.c | 10 +-
drivers/pci/pcie_brcmstb.c | 191 +++++++++++++++++++++++++++++++++--
2 files changed, 189 insertions(+), 12 deletions(-)
.../mach-bcm283x/include/mach/acpi/bcm2711.h | 10 +
arch/arm/mach-bcm283x/init.c | 10 +-
drivers/pci/pcie_brcmstb.c | 179 +++++++++++++++++-
3 files changed, 188 insertions(+), 11 deletions(-)
diff --git a/arch/arm/mach-bcm283x/include/mach/acpi/bcm2711.h b/arch/arm/mach-bcm283x/include/mach/acpi/bcm2711.h
index a86875b1833..a810b91906e 100644
--- a/arch/arm/mach-bcm283x/include/mach/acpi/bcm2711.h
+++ b/arch/arm/mach-bcm283x/include/mach/acpi/bcm2711.h
@@ -49,6 +49,10 @@
#define PCIE_RC_DL_MDIO_WR_DATA 0x1104
#define PCIE_RC_DL_MDIO_RD_DATA 0x1108
+#define PCIE_RC_PL_PHY_CTL_15 0x184c
+#define PCIE_RC_PL_PHY_CTL_15_DIS_PLL_PD_MASK 0x400000
+#define PCIE_RC_PL_PHY_CTL_15_PM_CLK_PERIOD_MASK 0xff
+
#define PCIE_MISC_MISC_CTRL 0x4008
#define MISC_CTRL_SCB_ACCESS_EN_MASK 0x1000
#define MISC_CTRL_CFG_READ_UR_MODE_MASK 0x2000
@@ -70,6 +74,9 @@
#define PCIE_MISC_RC_BAR2_CONFIG_HI 0x4038
#define PCIE_MISC_RC_BAR3_CONFIG_LO 0x403c
#define RC_BAR3_CONFIG_LO_SIZE_MASK 0x1f
+#define PCIE_MISC_PCIE_CTRL 0x4064
+#define PCIE_MISC_PCIE_CTRL_PCIE_L23_REQUEST_MASK 1
+#define PCIE_MISC_PCIE_CTRL_PCIE_PERSTB_MASK 4
#define PCIE_MISC_PCIE_STATUS 0x4068
#define STATUS_PCIE_PORT_MASK 0x80
#define STATUS_PCIE_PORT_SHIFT 7
@@ -93,6 +100,9 @@
#define PCIE_MEM_WIN0_LIMIT_HI(win) \
PCIE_MISC_CPU_2_PCIE_MEM_WIN0_LIMIT_HI + ((win) * 8)
+#define PCIE_MISC_UBUS_BAR2_CONFIG_REMAP 0x40b4
+#define PCIE_MISC_UBUS_BAR2_CONFIG_REMAP_ACCESS_ENABLE_MASK BIT(0)
+
#define PCIE_MISC_HARD_PCIE_HARD_DEBUG 0x4204
#define PCIE_HARD_DEBUG_SERDES_IDDQ_MASK 0x08000000
diff --git a/arch/arm/mach-bcm283x/init.c b/arch/arm/mach-bcm283x/init.c
index 1b459707bc..2d34d67075 100644
index 7a1de22e0ae..7c7c4e75032 100644
--- a/arch/arm/mach-bcm283x/init.c
+++ b/arch/arm/mach-bcm283x/init.c
@@ -18,7 +18,7 @@
@ -58,10 +94,10 @@ index 1b459707bc..2d34d67075 100644
/* SoC bus */
.virt = 0x107c000000UL,
diff --git a/drivers/pci/pcie_brcmstb.c b/drivers/pci/pcie_brcmstb.c
index f978c64365..df3e177629 100644
index f089c48f028..51b7351b8ce 100644
--- a/drivers/pci/pcie_brcmstb.c
+++ b/drivers/pci/pcie_brcmstb.c
@@ -16,6 +16,7 @@
@@ -17,6 +17,7 @@
#include <dm.h>
#include <dm/ofnode.h>
#include <pci.h>
@ -69,46 +105,11 @@ index f978c64365..df3e177629 100644
#include <asm/io.h>
#include <linux/bitfield.h>
#include <linux/log2.h>
@@ -39,6 +40,10 @@
#define PCIE_RC_DL_MDIO_WR_DATA 0x1104
#define PCIE_RC_DL_MDIO_RD_DATA 0x1108
+#define PCIE_RC_PL_PHY_CTL_15 0x184c
+#define PCIE_RC_PL_PHY_CTL_15_DIS_PLL_PD_MASK 0x400000
+#define PCIE_RC_PL_PHY_CTL_15_PM_CLK_PERIOD_MASK 0xff
+
#define PCIE_MISC_MISC_CTRL 0x4008
#define MISC_CTRL_SCB_ACCESS_EN_MASK 0x1000
#define MISC_CTRL_CFG_READ_UR_MODE_MASK 0x2000
@@ -64,6 +69,10 @@
#define PCIE_MISC_RC_BAR3_CONFIG_LO 0x403c
#define RC_BAR3_CONFIG_LO_SIZE_MASK 0x1f
+#define PCIE_MISC_PCIE_CTRL 0x4064
+#define PCIE_MISC_PCIE_CTRL_PCIE_L23_REQUEST_MASK 0x1
+#define PCIE_MISC_PCIE_CTRL_PCIE_PERSTB_MASK 0x4
+
#define PCIE_MISC_PCIE_STATUS 0x4068
#define STATUS_PCIE_PORT_MASK 0x80
#define STATUS_PCIE_PORT_SHIFT 7
@@ -89,9 +98,11 @@
#define PCIE_MEM_WIN0_LIMIT_HI(win) \
PCIE_MISC_CPU_2_PCIE_MEM_WIN0_LIMIT_HI + ((win) * 8)
-#define PCIE_MISC_HARD_PCIE_HARD_DEBUG 0x4204
#define PCIE_HARD_DEBUG_SERDES_IDDQ_MASK 0x08000000
+#define PCIE_MISC_UBUS_BAR2_CONFIG_REMAP 0x40b4
+#define PCIE_MISC_UBUS_BAR2_CONFIG_REMAP_ACCESS_ENABLE_MASK BIT(0)
+
#define PCIE_MSI_INTR2_CLR 0x4508
#define PCIE_MSI_INTR2_MASK_SET 0x4510
@@ -130,6 +141,26 @@
@@ -49,6 +50,26 @@
#define SSC_STATUS_PLL_LOCK_MASK 0x800
#define SSC_STATUS_PLL_LOCK_SHIFT 11
+#define HARD_DEBUG(pcie) ((pcie)->reg_offsets[PCIE_HARD_DEBUG])
+#define HARD_DEBUG(pcie) ((pcie)->reg_offsets[PCIE_HARD_DEBUG])
+
+struct brcm_pcie;
+
@ -131,7 +132,7 @@ index f978c64365..df3e177629 100644
/**
* struct brcm_pcie - the PCIe controller state
* @base: Base address of memory mapped IO registers of the controller
@@ -140,8 +171,15 @@
@@ -59,8 +80,15 @@
struct brcm_pcie {
void __iomem *base;
@ -147,7 +148,7 @@ index f978c64365..df3e177629 100644
};
/**
@@ -367,6 +405,27 @@ static int brcm_pcie_set_ssc(void __iomem *base)
@@ -286,6 +314,27 @@ static int brcm_pcie_set_ssc(void __iomem *base)
return ssc && pll ? 0 : -EIO;
}
@ -175,16 +176,16 @@ index f978c64365..df3e177629 100644
/**
* brcm_pcie_set_gen() - Limits operation to a specific generation (1, 2 or 3)
* @pcie: pointer to the PCIe controller state
@@ -426,6 +485,52 @@ static void brcm_pcie_set_outbound_win(struct brcm_pcie *pcie,
@@ -345,6 +394,52 @@ static void brcm_pcie_set_outbound_win(struct brcm_pcie *pcie,
writel(tmp, base + PCIE_MEM_WIN0_LIMIT_HI(win));
}
+static int brcm_pcie_perst_set_generic(struct brcm_pcie *pcie, u32 val)
+{
+ if (val)
+ setbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_PERST_MASK);
+ setbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_PERST_MASK);
+ else
+ clrbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_PERST_MASK);
+ clrbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_PERST_MASK);
+
+ return 0;
+}
@ -207,9 +208,9 @@ index f978c64365..df3e177629 100644
+ }
+
+ if (val)
+ setbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_INIT_MASK);
+ setbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_INIT_MASK);
+ else
+ clrbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_INIT_MASK);
+ clrbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_INIT_MASK);
+
+ return ret;
+}
@ -228,7 +229,7 @@ index f978c64365..df3e177629 100644
static int brcm_pcie_probe(struct udevice *dev)
{
struct udevice *ctlr = pci_get_controller(dev);
@@ -441,13 +546,17 @@ static int brcm_pcie_probe(struct udevice *dev)
@@ -360,13 +455,17 @@ static int brcm_pcie_probe(struct udevice *dev)
u16 nlw, cls, lnksta;
u32 tmp;
@ -241,18 +242,18 @@ index f978c64365..df3e177629 100644
* This will need to be changed when support for other SoCs is added.
*/
- setbits_le32(base + PCIE_RGR1_SW_INIT_1,
- RGR1_SW_INIT_1_INIT_MASK | RGR1_SW_INIT_1_PERST_MASK);
- PCIE_RGR1_SW_INIT_1_INIT_MASK | PCIE_RGR1_SW_INIT_1_PERST_MASK);
+ pcie->perst_set(pcie, 1);
+ pcie->bridge_sw_init_set(pcie, 1);
+
/*
* The delay is a safety precaution to preclude the reset signal
* from looking like a glitch.
@@ -455,14 +564,26 @@ static int brcm_pcie_probe(struct udevice *dev)
@@ -374,14 +473,26 @@ static int brcm_pcie_probe(struct udevice *dev)
udelay(100);
/* Take the bridge out of reset */
- clrbits_le32(base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_INIT_MASK);
- clrbits_le32(base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_INIT_MASK);
+ pcie->bridge_sw_init_set(pcie, 0);
- clrbits_le32(base + PCIE_MISC_HARD_PCIE_HARD_DEBUG,
@ -277,7 +278,7 @@ index f978c64365..df3e177629 100644
/* Set SCB_MAX_BURST_SIZE, CFG_READ_UR_MODE, SCB_ACCESS_EN */
clrsetbits_le32(base + PCIE_MISC_MISC_CTRL,
MISC_CTRL_MAX_BURST_SIZE_MASK,
@@ -481,6 +602,13 @@ static int brcm_pcie_probe(struct udevice *dev)
@@ -400,6 +511,13 @@ static int brcm_pcie_probe(struct udevice *dev)
writel(upper_32_bits(rc_bar2_offset),
base + PCIE_MISC_RC_BAR2_CONFIG_HI);
@ -291,21 +292,21 @@ index f978c64365..df3e177629 100644
scb_size_val = rc_bar2_size ?
ilog2(rc_bar2_size) - 15 : 0xf; /* 0xf is 1GB */
@@ -507,8 +635,7 @@ static int brcm_pcie_probe(struct udevice *dev)
@@ -426,8 +544,7 @@ static int brcm_pcie_probe(struct udevice *dev)
brcm_pcie_set_gen(pcie, pcie->gen);
/* Unassert the fundamental reset */
- clrbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1,
- RGR1_SW_INIT_1_PERST_MASK);
- PCIE_RGR1_SW_INIT_1_PERST_MASK);
+ pcie->perst_set(pcie, 0);
/*
* Wait for 100ms after PERST# deassertion; see PCIe CEM specification
@@ -595,20 +722,23 @@ static int brcm_pcie_remove(struct udevice *dev)
@@ -514,20 +631,23 @@ static int brcm_pcie_remove(struct udevice *dev)
void __iomem *base = pcie->base;
/* Assert fundamental reset */
- setbits_le32(base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_PERST_MASK);
- setbits_le32(base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_PERST_MASK);
+ pcie->perst_set(pcie, 1);
/* Turn off SerDes */
@ -314,7 +315,7 @@ index f978c64365..df3e177629 100644
PCIE_HARD_DEBUG_SERDES_IDDQ_MASK);
/* Shutdown bridge */
- setbits_le32(base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_INIT_MASK);
- setbits_le32(base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_INIT_MASK);
+ /* On BCM2712 it will block access to the RESCAL, so don't do it. */
+ if (pcie->soc_base != BCM2712)
+ pcie->bridge_sw_init_set(pcie, 1);
@ -328,7 +329,7 @@ index f978c64365..df3e177629 100644
struct brcm_pcie *pcie = dev_get_priv(dev);
ofnode dn = dev_ofnode(dev);
u32 max_link_speed;
@@ -619,6 +749,22 @@ static int brcm_pcie_of_to_plat(struct udevice *dev)
@@ -538,6 +658,22 @@ static int brcm_pcie_of_to_plat(struct udevice *dev)
if (!pcie->base)
return -EINVAL;
@ -351,7 +352,7 @@ index f978c64365..df3e177629 100644
pcie->ssc = ofnode_read_bool(dn, "brcm,enable-ssc");
ret = ofnode_read_u32(dn, "max-link-speed", &max_link_speed);
@@ -635,8 +781,31 @@ static const struct dm_pci_ops brcm_pcie_ops = {
@@ -554,8 +690,31 @@ static const struct dm_pci_ops brcm_pcie_ops = {
.write_config = brcm_pcie_write_config,
};

View File

@ -1,4 +1,4 @@
From 61693f4e8db08d263c6036afeecd6d30e7b23660 Mon Sep 17 00:00:00 2001
From 4302f18da75c7138ce8abc2c67eb6aaf0205e109 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Thu, 3 Oct 2024 11:09:53 +0200
Subject: [PATCH] ARM: bcm2835: add BCM2712 config option
@ -17,12 +17,12 @@ Signed-off-by: Jan Čermák <sairon@sairon.cz>
2 files changed, 7 insertions(+)
diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig
index b3287ce8bc..3b8672cfe0 100644
index d9303e8c281..0adc881d238 100644
--- a/arch/arm/mach-bcm283x/Kconfig
+++ b/arch/arm/mach-bcm283x/Kconfig
@@ -44,6 +44,11 @@ config BCM2711_64B
select BCM2711
select ARM64
@@ -56,6 +56,11 @@ config BCM2711_64B
select BLOBLIST_ALLOC if GENERATE_ACPI_TABLE
select BLOBLIST_TABLES if GENERATE_ACPI_TABLE
+config BCM2712
+ bool "Broadcom BCM2712 SoC support (64-bit only)"
@ -31,12 +31,12 @@ index b3287ce8bc..3b8672cfe0 100644
+
menu "Broadcom BCM283X family"
depends on ARCH_BCM283X
choice
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig
index 22a56f4ca3..6badc60d13 100644
index 41901433e8c..89bc332b626 100644
--- a/drivers/pci/Kconfig
+++ b/drivers/pci/Kconfig
@@ -386,6 +386,8 @@ config PCIE_DW_ROCKCHIP
@@ -392,6 +392,8 @@ config PCIE_DW_ROCKCHIP
config PCI_BRCMSTB
bool "Broadcom STB PCIe controller"
depends on ARCH_BCM283X

View File

@ -1,4 +1,4 @@
From d613be9ca405b2e65ac03b137cf6351b1aae7154 Mon Sep 17 00:00:00 2001
From 57a416a55ebd7ab43fbebd972f984470f7f71973 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Mon, 7 Oct 2024 15:13:40 +0200
Subject: [PATCH] pci: pcie-brcmstb: HACK - add DT property for skipping device
@ -21,10 +21,10 @@ Signed-off-by: Jan Čermák <sairon@sairon.cz>
1 file changed, 7 insertions(+)
diff --git a/drivers/pci/pcie_brcmstb.c b/drivers/pci/pcie_brcmstb.c
index df3e177629..02d9e7a1b3 100644
index 51b7351b8ce..cd2d395947a 100644
--- a/drivers/pci/pcie_brcmstb.c
+++ b/drivers/pci/pcie_brcmstb.c
@@ -175,6 +175,7 @@ struct brcm_pcie {
@@ -84,6 +84,7 @@ struct brcm_pcie {
enum pcie_soc_base soc_base;
int gen;
bool ssc;
@ -32,7 +32,7 @@ index df3e177629..02d9e7a1b3 100644
struct reset_ctl *rescal;
struct reset_ctl *bridge_reset;
@@ -546,6 +547,11 @@ static int brcm_pcie_probe(struct udevice *dev)
@@ -455,6 +456,11 @@ static int brcm_pcie_probe(struct udevice *dev)
u16 nlw, cls, lnksta;
u32 tmp;
@ -44,7 +44,7 @@ index df3e177629..02d9e7a1b3 100644
if (pcie->rescal)
reset_deassert(pcie->rescal);
@@ -766,6 +772,7 @@ static int brcm_pcie_of_to_plat(struct udevice *dev)
@@ -675,6 +681,7 @@ static int brcm_pcie_of_to_plat(struct udevice *dev)
}
pcie->ssc = ofnode_read_bool(dn, "brcm,enable-ssc");

View File

@ -1,82 +0,0 @@
From 45df955b5aa0460b9c93f63fb4a38f10807c0694 Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Tue, 10 Dec 2019 09:48:46 +0000
Subject: [PATCH] rpi: Use CONFIG_OF_BOARD instead of CONFIG_EMBED
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
---
configs/rpi_0_w_defconfig | 2 +-
configs/rpi_2_defconfig | 2 +-
configs/rpi_3_32b_defconfig | 2 +-
configs/rpi_3_defconfig | 2 +-
configs/rpi_defconfig | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig
index ac3b40c1c1..e6765878d1 100644
--- a/configs/rpi_0_w_defconfig
+++ b/configs/rpi_0_w_defconfig
@@ -24,7 +24,7 @@ CONFIG_CMD_GPIO=y
CONFIG_CMD_MMC=y
CONFIG_CMD_USB=y
CONFIG_CMD_FS_UUID=y
-CONFIG_OF_EMBED=y
+CONFIG_OF_BOARD=y
CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
diff --git a/configs/rpi_2_defconfig b/configs/rpi_2_defconfig
index b6e06cfe20..0650344526 100644
--- a/configs/rpi_2_defconfig
+++ b/configs/rpi_2_defconfig
@@ -25,7 +25,7 @@ CONFIG_CMD_GPIO=y
CONFIG_CMD_MMC=y
CONFIG_CMD_USB=y
CONFIG_CMD_FS_UUID=y
-CONFIG_OF_EMBED=y
+CONFIG_OF_BOARD=y
CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
diff --git a/configs/rpi_3_32b_defconfig b/configs/rpi_3_32b_defconfig
index eadc418927..7f52b508c4 100644
--- a/configs/rpi_3_32b_defconfig
+++ b/configs/rpi_3_32b_defconfig
@@ -24,7 +24,7 @@ CONFIG_CMD_GPIO=y
CONFIG_CMD_MMC=y
CONFIG_CMD_USB=y
CONFIG_CMD_FS_UUID=y
-CONFIG_OF_EMBED=y
+CONFIG_OF_BOARD=y
CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
diff --git a/configs/rpi_3_defconfig b/configs/rpi_3_defconfig
index 6890af4d1d..0767518279 100644
--- a/configs/rpi_3_defconfig
+++ b/configs/rpi_3_defconfig
@@ -23,7 +23,7 @@ CONFIG_CMD_GPIO=y
CONFIG_CMD_MMC=y
CONFIG_CMD_USB=y
CONFIG_CMD_FS_UUID=y
-CONFIG_OF_EMBED=y
+CONFIG_OF_BOARD=y
CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
diff --git a/configs/rpi_defconfig b/configs/rpi_defconfig
index 29c10060cf..79b507405d 100644
--- a/configs/rpi_defconfig
+++ b/configs/rpi_defconfig
@@ -24,7 +24,7 @@ CONFIG_CMD_GPIO=y
CONFIG_CMD_MMC=y
CONFIG_CMD_USB=y
CONFIG_CMD_FS_UUID=y
-CONFIG_OF_EMBED=y
+CONFIG_OF_BOARD=y
CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
--
2.43.0

View File

@ -1,26 +0,0 @@
From f53b9a545132686b0286ce166203a57935502dbc Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Tue, 29 Dec 2020 23:34:52 +0100
Subject: [PATCH] rpi: add NVMe to boot order
The Compute Module 4 I/O Board can support a NVMe. Add NVMe to the boot
order.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
board/raspberrypi/rpi/rpi.env | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/board/raspberrypi/rpi/rpi.env b/board/raspberrypi/rpi/rpi.env
index 30228285ed..89f6c5a839 100644
--- a/board/raspberrypi/rpi/rpi.env
+++ b/board/raspberrypi/rpi/rpi.env
@@ -74,4 +74,4 @@ pxefile_addr_r=0x02500000
fdt_addr_r=0x02600000
ramdisk_addr_r=0x02700000
-boot_targets=mmc usb pxe dhcp
+boot_targets=mmc nvme usb pxe dhcp
--
2.43.0

View File

@ -1,40 +0,0 @@
From 8e63cbe8892eb6edc02674d42078a9f116ee8224 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 23 Sep 2021 23:43:31 +0200
Subject: [PATCH] Revert "nvme: Correct the prps per page calculation method"
This reverts commit 859b33c948945f7904f60a2c12a3792d356d51ad.
If there is more than one PRP List the last entry is a pointer to
the next list. From the NVM Express specification:
"The last entry within a memory page, as indicated by the memory page
size in the CC.MPS field, shall be a PRP List pointer if there is more
than a single memory page of data to be transferred."
For the purpose of calculating the number of pages required for PRP
lists we should always assume that the last entry is required for
the next PRP list.
Signed-off-by: Stefan Agner <stefan@agner.ch>
Cc: Wesley Sheng <wesleyshenggit@sina.com>
---
drivers/nvme/nvme.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
index c39cd41aa3..03a652863c 100644
--- a/drivers/nvme/nvme.c
+++ b/drivers/nvme/nvme.c
@@ -53,7 +53,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
u64 *prp_pool;
int length = total_len;
int i, nprps;
- u32 prps_per_page = page_size >> 3;
+ u32 prps_per_page = (page_size >> 3) - 1;
u32 num_pages;
length -= (page_size - offset);
--
2.43.0

View File

@ -1,30 +0,0 @@
From c4f0a3c6147e7f8c32cb8806a0c2531b9d3852b7 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 7 Oct 2021 12:02:39 +0200
Subject: [PATCH] usb: xhci-brcm: Make driver compatible with downstream device
tree
The downstream device tree uses just "generic-xhci" as compatible
string. Use this string to make U-Boot work with the downstream Kernel.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
drivers/usb/host/xhci-brcm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c
index fe17924028..0c6938187b 100644
--- a/drivers/usb/host/xhci-brcm.c
+++ b/drivers/usb/host/xhci-brcm.c
@@ -82,7 +82,7 @@ static int xhci_brcm_deregister(struct udevice *dev)
}
static const struct udevice_id xhci_brcm_ids[] = {
- { .compatible = "brcm,generic-xhci" },
+ { .compatible = "generic-xhci" },
{ }
};
--
2.43.0

View File

@ -1,46 +0,0 @@
From 66e2d5b7ba776587a4ebaca100f27798fa804c54 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 23 Sep 2021 23:52:44 +0200
Subject: [PATCH] nvme: improve readability of nvme_setup_prps()
Improve readability by introducing consts, reuse consts where
appropriate and adding variables with discriptive name.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
drivers/nvme/nvme.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
index 03a652863c..5c4fbd08dc 100644
--- a/drivers/nvme/nvme.c
+++ b/drivers/nvme/nvme.c
@@ -48,12 +48,12 @@ static int nvme_wait_csts(struct nvme_dev *dev, u32 mask, u32 val)
static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
int total_len, u64 dma_addr)
{
- u32 page_size = dev->page_size;
+ const u32 page_size = dev->page_size;
+ const u32 prps_per_page = (page_size >> 3) - 1;
int offset = dma_addr & (page_size - 1);
u64 *prp_pool;
int length = total_len;
int i, nprps;
- u32 prps_per_page = (page_size >> 3) - 1;
u32 num_pages;
length -= (page_size - offset);
@@ -92,8 +92,8 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
i = 0;
while (nprps) {
if ((i == (prps_per_page - 1)) && nprps > 1) {
- *(prp_pool + i) = cpu_to_le64((ulong)prp_pool +
- page_size);
+ u64 next_prp_list = (u64)prp_pool + page_size;
+ *(prp_pool + i) = cpu_to_le64(next_prp_list);
i = 0;
prp_pool += page_size;
}
--
2.43.0

View File

@ -1,261 +0,0 @@
From 4e7236a0e4a75dfca366ffc4ffb23a4bd43a52e7 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 23 Sep 2021 23:58:35 +0200
Subject: [PATCH] nvme: Use pointer for CPU addressed buffers
Pass buffers which use CPU addressing as void pointers. This aligns with
DMA APIs which use void pointers as argument. It will avoid unnecessary
type casts when adding support bus address translations.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
drivers/nvme/nvme.c | 50 ++++++++++++++++++++--------------------
drivers/nvme/nvme_show.c | 4 ++--
include/nvme.h | 12 +++++-----
3 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
index 5c4fbd08dc..43ef819d11 100644
--- a/drivers/nvme/nvme.c
+++ b/drivers/nvme/nvme.c
@@ -46,11 +46,11 @@ static int nvme_wait_csts(struct nvme_dev *dev, u32 mask, u32 val)
}
static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
- int total_len, u64 dma_addr)
+ int total_len, void *buffer)
{
const u32 page_size = dev->page_size;
const u32 prps_per_page = (page_size >> 3) - 1;
- int offset = dma_addr & (page_size - 1);
+ int offset = (uintptr_t)buffer & (page_size - 1);
u64 *prp_pool;
int length = total_len;
int i, nprps;
@@ -64,10 +64,10 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
}
if (length)
- dma_addr += (page_size - offset);
+ buffer += (page_size - offset);
if (length <= page_size) {
- *prp2 = dma_addr;
+ *prp2 = (u64)buffer;
return 0;
}
@@ -97,11 +97,11 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
i = 0;
prp_pool += page_size;
}
- *(prp_pool + i++) = cpu_to_le64(dma_addr);
- dma_addr += page_size;
+ *(prp_pool + i++) = cpu_to_le64((u64)buffer);
+ buffer += page_size;
nprps--;
}
- *prp2 = (ulong)dev->prp_pool;
+ *prp2 = (u64)dev->prp_pool;
flush_dcache_range((ulong)dev->prp_pool, (ulong)dev->prp_pool +
num_pages * page_size);
@@ -448,42 +448,42 @@ static int nvme_alloc_sq(struct nvme_dev *dev, u16 qid,
}
int nvme_identify(struct nvme_dev *dev, unsigned nsid,
- unsigned cns, dma_addr_t dma_addr)
+ unsigned int cns, void *buffer)
{
struct nvme_command c;
u32 page_size = dev->page_size;
- int offset = dma_addr & (page_size - 1);
+ int offset = (uintptr_t)buffer & (page_size - 1);
int length = sizeof(struct nvme_id_ctrl);
int ret;
memset(&c, 0, sizeof(c));
c.identify.opcode = nvme_admin_identify;
c.identify.nsid = cpu_to_le32(nsid);
- c.identify.prp1 = cpu_to_le64(dma_addr);
+ c.identify.prp1 = cpu_to_le64((u64)buffer);
length -= (page_size - offset);
if (length <= 0) {
c.identify.prp2 = 0;
} else {
- dma_addr += (page_size - offset);
- c.identify.prp2 = cpu_to_le64(dma_addr);
+ buffer += (page_size - offset);
+ c.identify.prp2 = cpu_to_le64((u64)buffer);
}
c.identify.cns = cpu_to_le32(cns);
- invalidate_dcache_range(dma_addr,
- dma_addr + sizeof(struct nvme_id_ctrl));
+ invalidate_dcache_range((uintptr_t)buffer,
+ (uintptr_t)buffer + sizeof(struct nvme_id_ctrl));
ret = nvme_submit_admin_cmd(dev, &c, NULL);
if (!ret)
- invalidate_dcache_range(dma_addr,
- dma_addr + sizeof(struct nvme_id_ctrl));
+ invalidate_dcache_range((uintptr_t)buffer,
+ (uintptr_t)buffer + sizeof(struct nvme_id_ctrl));
return ret;
}
int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
- dma_addr_t dma_addr, u32 *result)
+ void *buffer, u32 *result)
{
struct nvme_command c;
int ret;
@@ -491,7 +491,7 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
memset(&c, 0, sizeof(c));
c.features.opcode = nvme_admin_get_features;
c.features.nsid = cpu_to_le32(nsid);
- c.features.prp1 = cpu_to_le64(dma_addr);
+ c.features.prp1 = cpu_to_le64((u64)buffer);
c.features.fid = cpu_to_le32(fid);
ret = nvme_submit_admin_cmd(dev, &c, result);
@@ -511,13 +511,13 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
}
int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11,
- dma_addr_t dma_addr, u32 *result)
+ void *buffer, u32 *result)
{
struct nvme_command c;
memset(&c, 0, sizeof(c));
c.features.opcode = nvme_admin_set_features;
- c.features.prp1 = cpu_to_le64(dma_addr);
+ c.features.prp1 = cpu_to_le64((u64)buffer);
c.features.fid = cpu_to_le32(fid);
c.features.dword11 = cpu_to_le32(dword11);
@@ -568,7 +568,7 @@ static int nvme_set_queue_count(struct nvme_dev *dev, int count)
u32 q_count = (count - 1) | ((count - 1) << 16);
status = nvme_set_features(dev, NVME_FEAT_NUM_QUEUES,
- q_count, 0, &result);
+ q_count, NULL, &result);
if (status < 0)
return status;
@@ -629,7 +629,7 @@ static int nvme_get_info_from_identify(struct nvme_dev *dev)
if (!ctrl)
return -ENOMEM;
- ret = nvme_identify(dev, 0, 1, (dma_addr_t)(long)ctrl);
+ ret = nvme_identify(dev, 0, 1, ctrl);
if (ret) {
free(ctrl);
return -EIO;
@@ -717,7 +717,7 @@ static int nvme_blk_probe(struct udevice *udev)
ns->dev = ndev;
/* extract the namespace id from the block device name */
ns->ns_id = trailing_strtol(udev->name);
- if (nvme_identify(ndev, ns->ns_id, 0, (dma_addr_t)(long)id)) {
+ if (nvme_identify(ndev, ns->ns_id, 0, id)) {
free(id);
return -EIO;
}
@@ -751,7 +751,7 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr,
u64 prp2;
u64 total_len = blkcnt << desc->log2blksz;
u64 temp_len = total_len;
- uintptr_t temp_buffer = (uintptr_t)buffer;
+ void *temp_buffer = buffer;
u64 slba = blknr;
u16 lbas = 1 << (dev->max_transfer_shift - ns->lba_shift);
@@ -889,7 +889,7 @@ int nvme_init(struct udevice *udev)
char name[20];
memset(id, 0, sizeof(*id));
- if (nvme_identify(ndev, i, 0, (dma_addr_t)(long)id)) {
+ if (nvme_identify(ndev, i, 0, id)) {
ret = -EIO;
goto free_id;
}
diff --git a/drivers/nvme/nvme_show.c b/drivers/nvme/nvme_show.c
index 72cbac82bc..ac9b5cc9bd 100644
--- a/drivers/nvme/nvme_show.c
+++ b/drivers/nvme/nvme_show.c
@@ -114,7 +114,7 @@ int nvme_print_info(struct udevice *udev)
if (!ctrl)
return -ENOMEM;
- if (nvme_identify(dev, 0, 1, (dma_addr_t)(long)ctrl)) {
+ if (nvme_identify(dev, 0, 1, ctrl)) {
ret = -EIO;
goto free_ctrl;
}
@@ -129,7 +129,7 @@ int nvme_print_info(struct udevice *udev)
goto free_ctrl;
}
- if (nvme_identify(dev, ns->ns_id, 0, (dma_addr_t)(long)id)) {
+ if (nvme_identify(dev, ns->ns_id, 0, id)) {
ret = -EIO;
goto free_id;
}
diff --git a/include/nvme.h b/include/nvme.h
index 2cdf8ce320..8ff823cd81 100644
--- a/include/nvme.h
+++ b/include/nvme.h
@@ -18,12 +18,12 @@ struct nvme_dev;
* @dev: NVMe controller device
* @nsid: 0 for controller, namespace id for namespace to identify
* @cns: 1 for controller, 0 for namespace
- * @dma_addr: dma buffer address to store the identify result
+ * @buffer: dma buffer address to store the identify result
* @return: 0 on success, -ETIMEDOUT on command execution timeout,
* -EIO on command execution fails
*/
int nvme_identify(struct nvme_dev *dev, unsigned nsid,
- unsigned cns, dma_addr_t dma_addr);
+ unsigned int cns, void *buffer);
/**
* nvme_get_features - retrieve the attributes of the feature specified
@@ -33,13 +33,13 @@ int nvme_identify(struct nvme_dev *dev, unsigned nsid,
* @dev: NVMe controller device
* @fid: feature id to provide data
* @nsid: namespace id the command applies to
- * @dma_addr: data structure used as part of the specified feature
+ * @buffer: data structure used as part of the specified feature
* @result: command-specific result in the completion queue entry
* @return: 0 on success, -ETIMEDOUT on command execution timeout,
* -EIO on command execution fails
*/
int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
- dma_addr_t dma_addr, u32 *result);
+ void *buffer, u32 *result);
/**
* nvme_set_features - specify the attributes of the feature indicated
@@ -49,13 +49,13 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
* @dev: NVMe controller device
* @fid: feature id to provide data
* @dword11: command-specific input parameter
- * @dma_addr: data structure used as part of the specified feature
+ * @buffer: data structure used as part of the specified feature
* @result: command-specific result in the completion queue entry
* @return: 0 on success, -ETIMEDOUT on command execution timeout,
* -EIO on command execution fails
*/
int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11,
- dma_addr_t dma_addr, u32 *result);
+ void *buffer, u32 *result);
/**
* nvme_scan_namespace - scan all namespaces attached to NVMe controllers
--
2.43.0

View File

@ -1,173 +0,0 @@
From f992eee16640831a3b2d8c093395a4dcaceff647 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Fri, 24 Sep 2021 00:27:39 +0200
Subject: [PATCH] nvme: translate virtual addresses into the bus's address
space
So far we've been content with passing physical/CPU addresses when
configuring memory addresses into NVMe controllers, but not all
platforms have buses with transparent mappings. Specifically the
Raspberry Pi 4 might introduce an offset to memory accesses incoming
from its PCIe port.
Introduce nvme_virt_to_bus() and nvme_bus_to_virt() to cater with these
limitations, and make sure we don't break non DM users.
For devices where PCIe's view of host memory doesn't match the memory
as seen by the CPU.
A similar change has been introduced for XHCI controller with
commit 1a474559d90a ("xhci: translate virtual addresses into the bus's
address space").
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
drivers/nvme/nvme.c | 31 +++++++++++++++++--------------
drivers/nvme/nvme.h | 8 ++++++++
2 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
index 43ef819d11..9cd9037630 100644
--- a/drivers/nvme/nvme.c
+++ b/drivers/nvme/nvme.c
@@ -67,7 +67,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
buffer += (page_size - offset);
if (length <= page_size) {
- *prp2 = (u64)buffer;
+ *prp2 = nvme_virt_to_bus(dev, buffer);
return 0;
}
@@ -92,16 +92,16 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
i = 0;
while (nprps) {
if ((i == (prps_per_page - 1)) && nprps > 1) {
- u64 next_prp_list = (u64)prp_pool + page_size;
- *(prp_pool + i) = cpu_to_le64(next_prp_list);
+ u64 next = nvme_virt_to_bus(dev, prp_pool + page_size);
+ *(prp_pool + i) = cpu_to_le64(next);
i = 0;
prp_pool += page_size;
}
- *(prp_pool + i++) = cpu_to_le64((u64)buffer);
+ *(prp_pool + i++) = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
buffer += page_size;
nprps--;
}
- *prp2 = (u64)dev->prp_pool;
+ *prp2 = nvme_virt_to_bus(dev, dev->prp_pool);
flush_dcache_range((ulong)dev->prp_pool, (ulong)dev->prp_pool +
num_pages * page_size);
@@ -354,6 +354,7 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev)
int result;
u32 aqa;
u64 cap = dev->cap;
+ u64 dma_addr;
struct nvme_queue *nvmeq;
/* most architectures use 4KB as the page size */
unsigned page_shift = 12;
@@ -394,8 +395,10 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev)
dev->ctrl_config |= NVME_CC_IOSQES | NVME_CC_IOCQES;
writel(aqa, &dev->bar->aqa);
- nvme_writeq((ulong)nvmeq->sq_cmds, &dev->bar->asq);
- nvme_writeq((ulong)nvmeq->cqes, &dev->bar->acq);
+ dma_addr = nvme_virt_to_bus(dev, nvmeq->sq_cmds);
+ nvme_writeq(dma_addr, &dev->bar->asq);
+ dma_addr = nvme_virt_to_bus(dev, nvmeq->cqes);
+ nvme_writeq(dma_addr, &dev->bar->acq);
result = nvme_enable_ctrl(dev);
if (result)
@@ -421,7 +424,7 @@ static int nvme_alloc_cq(struct nvme_dev *dev, u16 qid,
memset(&c, 0, sizeof(c));
c.create_cq.opcode = nvme_admin_create_cq;
- c.create_cq.prp1 = cpu_to_le64((ulong)nvmeq->cqes);
+ c.create_cq.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, nvmeq->cqes));
c.create_cq.cqid = cpu_to_le16(qid);
c.create_cq.qsize = cpu_to_le16(nvmeq->q_depth - 1);
c.create_cq.cq_flags = cpu_to_le16(flags);
@@ -438,7 +441,7 @@ static int nvme_alloc_sq(struct nvme_dev *dev, u16 qid,
memset(&c, 0, sizeof(c));
c.create_sq.opcode = nvme_admin_create_sq;
- c.create_sq.prp1 = cpu_to_le64((ulong)nvmeq->sq_cmds);
+ c.create_sq.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, nvmeq->sq_cmds));
c.create_sq.sqid = cpu_to_le16(qid);
c.create_sq.qsize = cpu_to_le16(nvmeq->q_depth - 1);
c.create_sq.sq_flags = cpu_to_le16(flags);
@@ -459,14 +462,14 @@ int nvme_identify(struct nvme_dev *dev, unsigned nsid,
memset(&c, 0, sizeof(c));
c.identify.opcode = nvme_admin_identify;
c.identify.nsid = cpu_to_le32(nsid);
- c.identify.prp1 = cpu_to_le64((u64)buffer);
+ c.identify.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
length -= (page_size - offset);
if (length <= 0) {
c.identify.prp2 = 0;
} else {
buffer += (page_size - offset);
- c.identify.prp2 = cpu_to_le64((u64)buffer);
+ c.identify.prp2 = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
}
c.identify.cns = cpu_to_le32(cns);
@@ -491,7 +494,7 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
memset(&c, 0, sizeof(c));
c.features.opcode = nvme_admin_get_features;
c.features.nsid = cpu_to_le32(nsid);
- c.features.prp1 = cpu_to_le64((u64)buffer);
+ c.features.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
c.features.fid = cpu_to_le32(fid);
ret = nvme_submit_admin_cmd(dev, &c, result);
@@ -517,7 +520,7 @@ int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11,
memset(&c, 0, sizeof(c));
c.features.opcode = nvme_admin_set_features;
- c.features.prp1 = cpu_to_le64((u64)buffer);
+ c.features.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
c.features.fid = cpu_to_le32(fid);
c.features.dword11 = cpu_to_le32(dword11);
@@ -784,7 +787,7 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr,
c.rw.slba = cpu_to_le64(slba);
slba += lbas;
c.rw.length = cpu_to_le16(lbas - 1);
- c.rw.prp1 = cpu_to_le64(temp_buffer);
+ c.rw.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, temp_buffer));
c.rw.prp2 = cpu_to_le64(prp2);
status = nvme_submit_sync_cmd(dev->queues[NVME_IO_Q],
&c, NULL, IO_TIMEOUT);
diff --git a/drivers/nvme/nvme.h b/drivers/nvme/nvme.h
index bc1d612dde..f52103c009 100644
--- a/drivers/nvme/nvme.h
+++ b/drivers/nvme/nvme.h
@@ -7,8 +7,11 @@
#ifndef __DRIVER_NVME_H__
#define __DRIVER_NVME_H__
+#include <phys2bus.h>
#include <asm/io.h>
+#define nvme_to_dev(_dev) _dev->udev
+
struct nvme_id_power_state {
__le16 max_power; /* centiwatts */
__u8 rsvd2;
@@ -705,4 +708,9 @@ int nvme_init(struct udevice *udev);
*/
int nvme_shutdown(struct udevice *udev);
+static inline dma_addr_t nvme_virt_to_bus(struct nvme_dev *dev, void *addr)
+{
+ return dev_phys_to_bus(nvme_to_dev(dev)->parent, virt_to_phys(addr));
+}
+
#endif /* __DRIVER_NVME_H__ */
--
2.43.0

View File

@ -1,47 +0,0 @@
From 5743e55d697959bcdcb58744bfc75d2fa99cca61 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Mon, 24 Apr 2023 15:44:15 +0200
Subject: [PATCH] Revert "pci: Check region ranges are addressable"
This reverts commit ec8eba8c2d4e10e77699c56918d2078210aa1339.
This commit seems to cause boot hangs when USB via XHCI is enabled on
Raspberry Pi 4 32-bit. Reverting the commit fixes USB device detection
and makes the devices boot again.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
drivers/pci/pci-uclass.c | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c
index e0d01f6a85..ed3513480a 100644
--- a/drivers/pci/pci-uclass.c
+++ b/drivers/pci/pci-uclass.c
@@ -1039,22 +1039,7 @@ static int decode_regions(struct pci_controller *hose, ofnode parent_node,
if (!IS_ENABLED(CONFIG_SYS_PCI_64BIT) &&
type == PCI_REGION_MEM && upper_32_bits(pci_addr)) {
- debug(" - pci_addr beyond the 32-bit boundary, ignoring\n");
- continue;
- }
-
- if (!IS_ENABLED(CONFIG_PHYS_64BIT) && upper_32_bits(addr)) {
- debug(" - addr beyond the 32-bit boundary, ignoring\n");
- continue;
- }
-
- if (~((pci_addr_t)0) - pci_addr < size) {
- debug(" - PCI range exceeds max address, ignoring\n");
- continue;
- }
-
- if (~((phys_addr_t)0) - addr < size) {
- debug(" - phys range exceeds max address, ignoring\n");
+ debug(" - beyond the 32-bit boundary, ignoring\n");
continue;
}
--
2.43.0

View File

@ -1,5 +1,4 @@
From d93052cd62449759535c295d5b77dbd73d644478 Mon Sep 17 00:00:00 2001
Message-ID: <d93052cd62449759535c295d5b77dbd73d644478.1705959834.git.stefan@agner.ch>
From c3b3682d6314eee9b7d42926f96e1559b8bb91dd Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 14 Apr 2022 12:15:26 +0200
Subject: [PATCH] drivers: bcm283x: don't explicitly disable init
@ -19,10 +18,10 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/drivers/serial/serial_bcm283x_pl011.c b/drivers/serial/serial_bcm283x_pl011.c
index 09a9868a38..cad24aab08 100644
index 2abc1c4658f..cfafa5fed91 100644
--- a/drivers/serial/serial_bcm283x_pl011.c
+++ b/drivers/serial/serial_bcm283x_pl011.c
@@ -51,12 +51,6 @@ static int bcm283x_pl011_serial_probe(struct udevice *dev)
@@ -50,12 +50,6 @@ static int bcm283x_pl011_serial_probe(struct udevice *dev)
if (ret)
return ret;
@ -36,7 +35,7 @@ index 09a9868a38..cad24aab08 100644
}
diff --git a/include/configs/rpi.h b/include/configs/rpi.h
index 8e56bdc84a..c137bd7e19 100644
index 8e56bdc84a8..c137bd7e19a 100644
--- a/include/configs/rpi.h
+++ b/include/configs/rpi.h
@@ -31,4 +31,7 @@
@ -47,6 +46,3 @@ index 8e56bdc84a..c137bd7e19 100644
+#define CFG_PL011_CLOCK 48000000
+
#endif
--
2.43.0

View File

@ -1,7 +1,4 @@
From 6ec30bbcaff0f45ce9a25f75e741eb3971d457b9 Mon Sep 17 00:00:00 2001
Message-ID: <6ec30bbcaff0f45ce9a25f75e741eb3971d457b9.1705959834.git.stefan@agner.ch>
In-Reply-To: <d93052cd62449759535c295d5b77dbd73d644478.1705959834.git.stefan@agner.ch>
References: <d93052cd62449759535c295d5b77dbd73d644478.1705959834.git.stefan@agner.ch>
From a13e5a0ea3fcb66663d5aa641aaaa59de5b7c6a5 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 14 Apr 2022 12:18:41 +0200
Subject: [PATCH] drivers: bcm283x: allow to spawn any PL011 UART
@ -22,10 +19,10 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
1 file changed, 27 deletions(-)
diff --git a/drivers/serial/serial_bcm283x_pl011.c b/drivers/serial/serial_bcm283x_pl011.c
index cad24aab08..1ca2c5d831 100644
index cfafa5fed91..31d854189c5 100644
--- a/drivers/serial/serial_bcm283x_pl011.c
+++ b/drivers/serial/serial_bcm283x_pl011.c
@@ -11,37 +11,10 @@
@@ -10,37 +10,10 @@
#include <serial.h>
#include "serial_pl01x_internal.h"
@ -63,6 +60,3 @@ index cad24aab08..1ca2c5d831 100644
/*
* Read the ofdata here rather than in an of_to_plat() method
* since we need the soc simple-bus to be probed so that the 'ranges'
--
2.43.0

View File

@ -18,3 +18,6 @@ CONFIG_CMD_SETEXPR=y
CONFIG_CMD_FILEENV=y
CONFIG_CMD_SQUASHFS=y
CONFIG_LZO=y
# CONFIG_DFU is not set
# CONFIG_CMD_DFU is not set
# CONFIG_TOOLS_MKEFICAPSULE is not set

View File

@ -141,7 +141,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="green"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/nabucasa/green/uboot.config"
BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y

View File

@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="khadas-vim3"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/khadas/vim3/uboot.config"
BR2_PACKAGE_HOST_DOSFSTOOLS=y

View File

@ -4,7 +4,7 @@ BR2_DL_DIR="/cache/dl"
BR2_CCACHE=y
BR2_CCACHE_DIR="/cache/cc"
BR2_ENABLE_LTO=y
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches"
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches-meson"
BR2_SSP_REGULAR=y
BR2_TARGET_GENERIC_HOSTNAME="homeassistant"
BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant"
@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c2"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/uboot.config"
BR2_PACKAGE_HOST_DOSFSTOOLS=y

View File

@ -4,7 +4,7 @@ BR2_DL_DIR="/cache/dl"
BR2_CCACHE=y
BR2_CCACHE_DIR="/cache/cc"
BR2_ENABLE_LTO=y
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches"
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches-meson"
BR2_SSP_REGULAR=y
BR2_TARGET_GENERIC_HOSTNAME="homeassistant"
BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant"
@ -134,7 +134,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c4"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4/uboot.config"
BR2_PACKAGE_HOST_DOSFSTOOLS=y

View File

@ -4,7 +4,7 @@ BR2_DL_DIR="/cache/dl"
BR2_CCACHE=y
BR2_CCACHE_DIR="/cache/cc"
BR2_ENABLE_LTO=y
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/patches-rockchip $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1/patches"
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/patches-rockchip"
BR2_SSP_REGULAR=y
BR2_TARGET_GENERIC_HOSTNAME="homeassistant"
BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant"
@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-m1-rk3568"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1/uboot.config"
BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y

View File

@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-m1s-rk3566"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1s/uboot.config"
BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y

View File

@ -4,7 +4,7 @@ BR2_DL_DIR="/cache/dl"
BR2_CCACHE=y
BR2_CCACHE_DIR="/cache/cc"
BR2_ENABLE_LTO=y
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches"
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches-meson"
BR2_SSP_REGULAR=y
BR2_TARGET_GENERIC_HOSTNAME="homeassistant"
BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant"
@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-n2"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-n2/uboot.config"
BR2_PACKAGE_HOST_DOSFSTOOLS=y

View File

@ -5,7 +5,7 @@ BR2_DL_DIR="/cache/dl"
BR2_CCACHE=y
BR2_CCACHE_DIR="/cache/cc"
BR2_ENABLE_LTO=y
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4/patches"
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4/patches"
BR2_SSP_REGULAR=y
BR2_TARGET_GENERIC_HOSTNAME="homeassistant"
BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant"
@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-xu3"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4/uboot.config"
BR2_TARGET_UBOOT_NEEDS_DTC=y

View File

@ -139,7 +139,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_2"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
BR2_PACKAGE_HOST_DOSFSTOOLS=y

View File

@ -140,7 +140,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
BR2_PACKAGE_HOST_DOSFSTOOLS=y

View File

@ -141,7 +141,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3_32b"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
BR2_PACKAGE_HOST_DOSFSTOOLS=y

View File

@ -141,7 +141,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_4"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi4-64/uboot.config"
BR2_PACKAGE_HOST_DOSFSTOOLS=y

View File

@ -140,7 +140,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_4_32b"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi4/uboot.config"
BR2_PACKAGE_HOST_DOSFSTOOLS=y

View File

@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="tinker-s-rk3288"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/uboot.config"
BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y

View File

@ -143,7 +143,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.10"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_arm64"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/yellow/uboot.config"
BR2_PACKAGE_HOST_DOSFSTOOLS=y

View File

@ -1,4 +1,4 @@
From 01d614198feedef81ce60e61bbdf5f1ddc62be52 Mon Sep 17 00:00:00 2001
From 4af7bcd52d0b6c8df3129a2f35035c6a1b62848d Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Sun, 5 Aug 2018 20:43:03 +0000
Subject: [PATCH] CMD: read string from fileinto env
@ -12,10 +12,10 @@ Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
create mode 100644 cmd/fileenv.c
diff --git a/cmd/Kconfig b/cmd/Kconfig
index df6d71c103..6cda4909d5 100644
index 1d7ddb4ed36..0c0ce749000 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1689,6 +1689,11 @@ config CMD_XXD
@@ -1792,6 +1792,11 @@ config CMD_XXD
help
Print file as hexdump to standard output
@ -26,22 +26,22 @@ index df6d71c103..6cda4909d5 100644
+
endmenu
menu "Android support commands"
if NET || NET_LWIP
diff --git a/cmd/Makefile b/cmd/Makefile
index 9a6790cc17..a521653ff8 100644
index d1f369deec0..7ad9d3720c0 100644
--- a/cmd/Makefile
+++ b/cmd/Makefile
@@ -164,6 +164,7 @@ obj-$(CONFIG_CMD_SHA1SUM) += sha1sum.o
@@ -170,6 +170,7 @@ obj-$(CONFIG_CMD_SHA1SUM) += sha1sum.o
obj-$(CONFIG_CMD_SEAMA) += seama.o
obj-$(CONFIG_CMD_SETEXPR) += setexpr.o
obj-$(CONFIG_CMD_SETEXPR_FMT) += printf.o
+obj-$(CONFIG_CMD_FILEENV) += fileenv.o
obj-$(CONFIG_CMD_SPI) += spi.o
obj-$(CONFIG_CMD_STRINGS) += strings.o
obj-$(CONFIG_CMD_SMC) += smccc.o
obj-$(CONFIG_CMD_SMBIOS) += smbios.o
diff --git a/cmd/fileenv.c b/cmd/fileenv.c
new file mode 100644
index 0000000000..4154c8df0f
index 00000000000..4154c8df0f0
--- /dev/null
+++ b/cmd/fileenv.c
@@ -0,0 +1,45 @@