diff mbox series

[v2,08/15] rockchip: rk3328: Fix loading FIT from SD-card when booting from eMMC

Message ID 20240217002304.2141064-9-jonas@kwiboo.se
State Accepted
Commit 1e21f569304573759b61ca8ee38087c5509ef070
Delegated to: Kever Yang
Headers show
Series rockchip: rk3328: Update defconfigs, DTs and enable boot from SPI | expand

Commit Message

Jonas Karlman Feb. 17, 2024, 12:22 a.m. UTC
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>
---
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(-)

Comments

Kever Yang March 14, 2024, 3:30 a.m. UTC | #1
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;
> +};
diff mbox series

Patch

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;
+};