From: Xavier Drudis Ferran <xdrudis@tinet.cat>
To: Jerome Forissier <jerome.forissier@linaro.org>
Cc: u-boot@lists.denx.de, Deepak Das <deepakdas.linux@gmail.com>,
Jagan Teki <jagan@amarulasolutions.com>,
Simon Glass <sjg@chromium.org>,
Philipp Tomsich <philipp.tomsich@vrull.eu>,
Kever Yang <kever.yang@rock-chips.com>,
Alexandru Gagniuc <mr.nuke.me@gmail.com>,
Jaehoon Chung <jh80.chung@samsung.com>,
Heiko Schocher <hs@denx.de>, Tero Kristo <kristo@kernel.org>,
Nishanth Menon <nm@ti.com>, Lokesh Vutla <lokeshvutla@ti.com>,
Michal Simek <michal.simek@amd.com>
Subject: Re: [PATCH 2/2] rockchip: rk3399: enable spl-fifo-mode for sdmmc only when needed
Date: Wed, 15 Jun 2022 19:05:55 +0200 [thread overview]
Message-ID: <20220615170555.GA1806@begut> (raw)
In-Reply-To: <c963f7f1-1a7c-28cc-cab2-b2c3014f15d1@linaro.org>
El Tue, Jun 14, 2022 at 11:16:42AM -0700, Jerome Forissier deia:
> Oops, that should rather be:
>
> +#if (CONFIG_SPL_LOAD_FIT_IMAGE_BUFFER_SIZE == 0)
>
I tested with this change, not that my opinion counts much, but
anyway:
Reviewed-by: Xavier Drudis Ferran <xdrudis@tinet.cat>
Tested-by: Xavier Drudis Ferran <xdrudis@tinet.cat>
This changes reduce some 0.2 s the boot time of my Rock Pi 4B.
Before this series, just with u-boot/master from today
c18e5fb055 dtoc: Update test_src_scan.py for new tegra compatibles
plus the patches I sent to this list (I can't boot from MMC without
them)
https://lists.denx.de/pipermail/u-boot/2022-June/485497.html
and bootstage configured, I get :
Timer summary in microseconds (10 records):
Mark Elapsed Stage
1,903,436 1,903,436 board_init_f
1,903,436 0 board_init_f
2,900,331 996,895 board_init_r
4,091,657 1,191,326 id=64
4,930,650 838,993 id=65
4,930,827 177 main_loop
7,946,715 3,015,888 bootm_start
9,010,637 1,063,922 id=15
9,010,639 2 start_kernel
Accumulated time:
22,700 dm_r
479,397 dm_f
With that plus 1/2 in this series and
CONFIG_SPL_LOAD_FIT_IMAGE_BUFFER_SIZE=0x3000
I get something similar (slightly slower because of >=3 correct reads
instead of 1 overwriting read per image):
Timer summary in microseconds (10 records):
Mark Elapsed Stage
1,979,414 1,979,414 board_init_f
1,979,414 0 board_init_f
2,976,429 997,015 board_init_r
4,166,623 1,190,194 id=64
5,005,623 839,000 id=65
5,005,800 177 main_loop
8,020,791 3,014,991 bootm_start
9,084,116 1,063,325 id=15
9,084,118 2 start_kernel
Accumulated time:
22,699 dm_r
479,480 dm_f
With that plus this 2/2 it's faster (while safer) than initially.
Timer summary in microseconds (10 records):
Mark Elapsed Stage
1,709,384 1,709,384 board_init_f
1,709,384 0 board_init_f
2,706,192 996,808 board_init_r
3,895,269 1,189,077 id=64
4,733,786 838,517 id=65
4,733,963 177 main_loop
7,751,063 3,017,100 bootm_start
8,814,449 1,063,386 id=15
8,814,451 2 start_kernel
Accumulated time:
22,703 dm_r
479,520 dm_f
With this change your 2/2 patch becomes
---
From: Jerome Forissier <jerome.forissier@linaro.org>
Date: Thu, 9 Jun 2022 17:23:22 +0200
Subject: [PATCH] rockchip: rk3399: enable spl-fifo-mode for sdmmc only when
needed
Commit 5c606ca35c42 ("rockchip: rk3399: enable spl-fifo-mode for sdmmc")
mentions that the RK3399 SoC can't do DMA between SDMMC and SRAM.
According to the TRM "7.3.2 Embedded SRAM access path" [1], only the
8KB SRAM at 0xff3b0000 (INTMEM1) is in this situation. The 192KB SRAM
can be accessed by both DMA controllers.
Assuming the only use case for writing from MMC to INTMEM1 is loading
a FIT image, and with the introduction of a temporary buffer for that
purpose (CONFIG_SPL_LOAD_FIT_IMAGE_BUFFER_SIZE, which is required
anyways to ensure the destination boundaries are enforced), then
spl-fifo-mode is not needed anymore and DMA can be enabled safely.
Link: [1] https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.4%20Part1.pdf
CC: Deepak Das <deepakdas.linux@gmail.com>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
---
arch/arm/dts/rk3399-u-boot.dtsi | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm/dts/rk3399-u-boot.dtsi b/arch/arm/dts/rk3399-u-boot.dtsi
index 716b9a433a..e0bb230022 100644
--- a/arch/arm/dts/rk3399-u-boot.dtsi
+++ b/arch/arm/dts/rk3399-u-boot.dtsi
@@ -124,9 +124,10 @@
&sdmmc {
u-boot,dm-pre-reloc;
+#if (CONFIG_SPL_LOAD_FIT_IMAGE_BUFFER_SIZE == 0)
/* mmc to sram can't do dma, prevent aborts transferring TF-A parts */
u-boot,spl-fifo-mode;
+#endif
};
&spi1 {
--
2.20.1
next prev parent reply other threads:[~2022-06-15 17:06 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-09 15:23 [PATCH 0/2] spl, rk3399: fix FIT image loadingg out-of-range Jerome Forissier
2022-06-09 15:23 ` [PATCH 1/2] spl: fit: add config option for temporary buffer when loading image Jerome Forissier
2022-06-09 15:23 ` [PATCH 2/2] rockchip: rk3399: enable spl-fifo-mode for sdmmc only when needed Jerome Forissier
2022-06-14 18:16 ` Jerome Forissier
2022-06-15 17:05 ` Xavier Drudis Ferran [this message]
2022-06-29 3:01 ` Kever Yang
2022-06-29 7:59 ` Jerome Forissier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220615170555.GA1806@begut \
--to=xdrudis@tinet.cat \
--cc=deepakdas.linux@gmail.com \
--cc=hs@denx.de \
--cc=jagan@amarulasolutions.com \
--cc=jerome.forissier@linaro.org \
--cc=jh80.chung@samsung.com \
--cc=kever.yang@rock-chips.com \
--cc=kristo@kernel.org \
--cc=lokeshvutla@ti.com \
--cc=michal.simek@amd.com \
--cc=mr.nuke.me@gmail.com \
--cc=nm@ti.com \
--cc=philipp.tomsich@vrull.eu \
--cc=sjg@chromium.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox