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.y...@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);
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot