[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