[U-Boot] [PATCH] spl: fit: handle mmc read to sram case in rockchip SoCs
Simon Goldschmidt
simon.k.r.goldschmidt at gmail.com
Fri Mar 29 15:33:58 UTC 2019
On 29.03.19 15:09, Kever Yang wrote:
> Rockchip fit image with atf may have firmware for sram,
> so the fit driver need to read data from mmc to sram,
> but Rockchip mmc controller does not support this data
> path, we have to read into ddr first and then copy it
> to sram.
>
> Signed-off-by: Kever Yang <kever.yang at rock-chips.com>
> ---
>
> common/spl/spl_fit.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
> index c9bfe0cc8a..5c5b58f69d 100644
> --- a/common/spl/spl_fit.c
> +++ b/common/spl/spl_fit.c
> @@ -9,6 +9,7 @@
> #include <fpga.h>
> #include <image.h>
> #include <linux/libfdt.h>
> +#include <malloc.h>
> #include <spl.h>
>
> #ifndef CONFIG_SYS_BOOTM_LEN
> @@ -215,6 +216,15 @@ static int spl_load_fit_image(struct spl_load_info *info, ulong sector,
> return -ENOENT;
>
> load_ptr = (load_addr + align_len) & ~align_len;
> +#if defined(CONFIG_ROCKCHIP_RK3399) || defined(CONFIG_ROCKCHIP_RK3368)
This looks hacky. I don't think we should clutter platform independent
code with platform dependent ifdefs. You're totally violating code
abstraction here.
Regards,
Simon
> + /*
> + * Rockchip SOC's mmc controller does not support read data
> + * from mmc to sram, we have to read to sdram first, and then
> + * copy to sram.
> + */
> + if ((load_ptr & 0xffff0000) != CONFIG_SYS_SDRAM_BASE)
> + load_ptr = (ulong)memalign(ARCH_DMA_MINALIGN, len);
> +#endif
> length = len;
>
> overhead = get_aligned_image_overhead(info, offset);
>
More information about the U-Boot
mailing list