[U-Boot] [PATCH] spl: fit: handle mmc read to sram case in rockchip SoCs
Kever Yang
kever.yang at rock-chips.com
Sat Mar 30 01:43:53 UTC 2019
Hi Simon,
On 03/29/2019 11:33 PM, Simon Goldschmidt wrote:
>
>
> 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.
>
Thanks for your comment, I know this looks hacky, could you share you
idea about how to implement this better?
We do need this to make things work.
Thanks,
- Kever
> 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