
On 2024/2/17 08:22, Jonas Karlman wrote:
When RK3328 boards run SPL from eMMC and fail to load FIT from eMMC due to it being missing or checksum validation fails there is a fallback to read FIT from SD-card. However, without proper pinctrl configuration reading FIT from SD-card will fail:
U-Boot SPL 2024.04-rc1 (Feb 05 2024 - 22:18:22 +0000) Trying to boot from MMC1 mmc_load_image_raw_sector: mmc block read error Trying to boot from MMC2 Card did not respond to voltage select! : -110 spl: mmc init failed with error: -95 Trying to boot from MMC1 mmc_load_image_raw_sector: mmc block read error SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ###
Fix this by tagging related emmc and sdmmc pinctrl nodes with bootph props. Also sort and move common nodes shared by all boards to the SoC u-boot.dtsi.
Signed-off-by: Jonas Karlman jonas@kwiboo.se
Reviewed-by: Kever Yang kever.yang@rock-chips.com
Thanks, - Kever
v2:
- Add missing UART2 pinctrl nodes to soc u-boot.dtsi
- Mark the pinctrl node to be included in U-Boot proper pre-reloc phase
- Add SD-card IO-voltage related nodes to nanopi-r2 u-boot.dtsi
arch/arm/dts/rk3328-evb-u-boot.dtsi | 4 + arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi | 13 +-- .../rk3328-orangepi-r1-plus-lts-u-boot.dtsi | 25 ++--- .../dts/rk3328-orangepi-r1-plus-u-boot.dtsi | 25 ++--- arch/arm/dts/rk3328-roc-cc-u-boot.dtsi | 17 ---- arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi | 17 ---- arch/arm/dts/rk3328-rock64-u-boot.dtsi | 25 ++--- arch/arm/dts/rk3328-u-boot.dtsi | 91 +++++++++++++++++-- 8 files changed, 107 insertions(+), 110 deletions(-)
diff --git a/arch/arm/dts/rk3328-evb-u-boot.dtsi b/arch/arm/dts/rk3328-evb-u-boot.dtsi index 12b68df1ac67..38ad3cc16d09 100644 --- a/arch/arm/dts/rk3328-evb-u-boot.dtsi +++ b/arch/arm/dts/rk3328-evb-u-boot.dtsi @@ -44,3 +44,7 @@ /* Integrated PHY unsupported by U-Boot */ status = "broken"; };
+&vcc_sd {
- bootph-pre-ram;
+}; diff --git a/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi b/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi index 0a1152e8b52d..cca4f06145cf 100644 --- a/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi +++ b/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi @@ -7,23 +7,18 @@ #include "rk3328-u-boot.dtsi" #include "rk3328-sdram-ddr4-666.dtsi"
-&gpio0 { +&gpio1 { bootph-pre-ram; };
-&pinctrl {
- bootph-pre-ram;
-};
-&sdmmc0m1_pin {
- bootph-pre-ram;
+&sdio_vcc_pin {
- bootph-all; };
-&pcfg_pull_up_4ma { +&vcc_io_sdio { bootph-pre-ram; };
-/* Need this and all the pinctrl/gpio stuff above to set pinmux */ &vcc_sd { bootph-pre-ram; }; diff --git a/arch/arm/dts/rk3328-orangepi-r1-plus-lts-u-boot.dtsi b/arch/arm/dts/rk3328-orangepi-r1-plus-lts-u-boot.dtsi index 8a4189c6f1cc..7cdf6913795d 100644 --- a/arch/arm/dts/rk3328-orangepi-r1-plus-lts-u-boot.dtsi +++ b/arch/arm/dts/rk3328-orangepi-r1-plus-lts-u-boot.dtsi @@ -7,29 +7,16 @@ #include "rk3328-u-boot.dtsi" #include "rk3328-sdram-lpddr3-666.dtsi"
-&gpio0 {
- bootph-pre-ram;
-};
-&pinctrl {
- bootph-pre-ram;
-};
-&sdmmc0m1_pin { +&spi0 { bootph-pre-ram; -};
- bootph-some-ram;
-&pcfg_pull_up_4ma {
- bootph-pre-ram;
- flash@0 {
bootph-pre-ram;
bootph-some-ram;
- }; };
-/* Need this and all the pinctrl/gpio stuff above to set pinmux */ &vcc_sd { bootph-pre-ram; };
-&spi0 {
- spi_flash: spiflash@0 {
bootph-all;
- };
-}; diff --git a/arch/arm/dts/rk3328-orangepi-r1-plus-u-boot.dtsi b/arch/arm/dts/rk3328-orangepi-r1-plus-u-boot.dtsi index 2e3b6a77a268..35baeb2464bc 100644 --- a/arch/arm/dts/rk3328-orangepi-r1-plus-u-boot.dtsi +++ b/arch/arm/dts/rk3328-orangepi-r1-plus-u-boot.dtsi @@ -7,29 +7,16 @@ #include "rk3328-u-boot.dtsi" #include "rk3328-sdram-ddr4-666.dtsi"
-&gpio0 {
- bootph-pre-ram;
-};
-&pinctrl {
- bootph-pre-ram;
-};
-&sdmmc0m1_pin { +&spi0 { bootph-pre-ram; -};
- bootph-some-ram;
-&pcfg_pull_up_4ma {
- bootph-pre-ram;
- flash@0 {
bootph-pre-ram;
bootph-some-ram;
- }; };
-/* Need this and all the pinctrl/gpio stuff above to set pinmux */ &vcc_sd { bootph-pre-ram; };
-&spi0 {
- spi_flash: spiflash@0 {
bootph-all;
- };
-}; diff --git a/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi b/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi index 8bc2f134f8f4..47d74964fd0c 100644 --- a/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi +++ b/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi @@ -29,23 +29,6 @@ }; };
-&gpio0 {
- bootph-pre-ram;
-};
-&pinctrl {
- bootph-pre-ram;
-};
-&sdmmc0m1_pin {
- bootph-pre-ram;
-};
-&pcfg_pull_up_4ma {
- bootph-pre-ram;
-};
-/* Need this and all the pinctrl/gpio stuff above to set pinmux */ &vcc_sd { bootph-pre-ram; }; diff --git a/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi b/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi index 1f220c6dcd0f..9ed0aef1ecc9 100644 --- a/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi +++ b/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi @@ -29,23 +29,6 @@ }; };
-&gpio0 {
- bootph-pre-ram;
-};
-&pinctrl {
- bootph-pre-ram;
-};
-&sdmmc0m1_pin {
- bootph-pre-ram;
-};
-&pcfg_pull_up_4ma {
- bootph-pre-ram;
-};
-/* Need this and all the pinctrl/gpio stuff above to set pinmux */ &vcc_sd { bootph-pre-ram; }; diff --git a/arch/arm/dts/rk3328-rock64-u-boot.dtsi b/arch/arm/dts/rk3328-rock64-u-boot.dtsi index bfe506fd2249..9de645d8d7ab 100644 --- a/arch/arm/dts/rk3328-rock64-u-boot.dtsi +++ b/arch/arm/dts/rk3328-rock64-u-boot.dtsi @@ -29,29 +29,16 @@ }; };
-&gpio0 {
- bootph-pre-ram;
-};
-&pinctrl {
- bootph-pre-ram;
-};
-&sdmmc0m1_pin { +&spi0 { bootph-pre-ram; -};
- bootph-some-ram;
-&pcfg_pull_up_4ma {
- bootph-pre-ram;
- flash@0 {
bootph-pre-ram;
bootph-some-ram;
- }; };
-/* Need this and all the pinctrl/gpio stuff above to set pinmux */ &vcc_sd { bootph-pre-ram; };
-&spi0 {
- spi_flash: flash@0 {
bootph-all;
- };
-}; diff --git a/arch/arm/dts/rk3328-u-boot.dtsi b/arch/arm/dts/rk3328-u-boot.dtsi index a12be7876db0..687c16da5135 100644 --- a/arch/arm/dts/rk3328-u-boot.dtsi +++ b/arch/arm/dts/rk3328-u-boot.dtsi @@ -38,33 +38,104 @@ bootph-all; };
+&emmc {
- bootph-pre-ram;
- bootph-some-ram;
- /* mmc to sram can't do dma, prevent aborts transferring TF-A parts */
- u-boot,spl-fifo-mode;
+};
+&emmc_bus8 {
- bootph-pre-ram;
+};
+&emmc_clk {
- bootph-pre-ram;
+};
+&emmc_cmd {
- bootph-pre-ram;
+};
+&gpio0 {
- bootph-pre-ram;
+};
- &grf { bootph-all; };
-&uart2 { +&pcfg_pull_none { bootph-all;
- clock-frequency = <24000000>; };
-&emmc { +&pcfg_pull_none_8ma {
- bootph-pre-ram;
+};
+&pcfg_pull_none_12ma {
- bootph-pre-ram;
+};
+&pcfg_pull_up { bootph-all; +};
- /* mmc to sram can't do dma, prevent aborts transfering TF-A parts */
- u-boot,spl-fifo-mode;
+&pcfg_pull_up_4ma {
- bootph-pre-ram;
+};
+&pcfg_pull_up_8ma {
- bootph-pre-ram;
+};
+&pcfg_pull_up_12ma {
- bootph-pre-ram;
+};
+&pinctrl {
bootph-pre-ram;
bootph-some-ram; };
&sdmmc {
- bootph-all;
- bootph-pre-ram;
- bootph-some-ram;
- /* mmc to sram can't do dma, prevent aborts transfering TF-A parts */
- /* mmc to sram can't do dma, prevent aborts transferring TF-A parts */ u-boot,spl-fifo-mode; };
-&usb20_otg {
- hnp-srp-disable;
+&sdmmc0_bus4 {
- bootph-pre-ram;
+};
+&sdmmc0_clk {
- bootph-pre-ram;
+};
+&sdmmc0_cmd {
- bootph-pre-ram;
+};
+&sdmmc0_dectn {
- bootph-pre-ram;
+};
+&sdmmc0m1_pin {
- bootph-pre-ram;
+};
+&uart2 {
- bootph-all;
- clock-frequency = <24000000>; };
-&spi0 { +&uart2m1_xfer { bootph-all; };
+&usb20_otg {
- hnp-srp-disable;
+};