[RFC PATCH 3/3] mips: spl: Flush cache before jumping to U-Boot proper

Stefan Roese sr at denx.de
Wed Apr 15 14:14:06 CEST 2020


On 15.04.20 13:43, Daniel Schwierzeck wrote:
> 
> 
> Am 10.04.20 um 13:04 schrieb Stefan Roese:
>> This patch adds a MIPS specific jump_to_image_no_args() implementation,
>> which flushes the U-Boot proper image loaded from the boot device in
>> SPL before jumping to it.
>>
>> It has been noticed on MT76x8, that this cache flush is needed. Other
>> MIPS platforms might need it as well.
>>
>> Signed-off-by: Stefan Roese <sr at denx.de>
>> Cc: Weijie Gao <weijie.gao at mediatek.com>
>> Cc: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>
>> Cc: Simon Goldschmidt <simon.k.r.goldschmidt at gmail.com>
>> ---
>>   arch/mips/lib/boot.c | 14 ++++++++++++++
>>   1 file changed, 14 insertions(+)
>>
>> diff --git a/arch/mips/lib/boot.c b/arch/mips/lib/boot.c
>> index db862f6379..bc620abd9b 100644
>> --- a/arch/mips/lib/boot.c
>> +++ b/arch/mips/lib/boot.c
>> @@ -6,6 +6,7 @@
>>   #include <common.h>
>>   #include <command.h>
>>   #include <cpu_func.h>
>> +#include <spl.h>
>>   
>>   DECLARE_GLOBAL_DATA_PTR;
>>   
>> @@ -21,3 +22,16 @@ unsigned long do_go_exec(ulong (*entry)(int, char * const []),
>>   
>>   	return entry(argc, argv);
>>   }
>> +
>> +void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
>> +{
>> +	typedef void __noreturn (*image_entry_noargs_t)(void);
>> +	image_entry_noargs_t image_entry =
>> +		(image_entry_noargs_t)spl_image->entry_point;
>> +
>> +	/* Flush cache before jumping to application */
>> +	flush_cache((unsigned long)spl_image->load_addr, spl_image->size);
>> +
>> +	debug("image entry point: 0x%lx\n", spl_image->entry_point);
>> +	image_entry();
>> +}
>>
> 
> the function itself looks good. But arch/mips/lib/boot.c depends on
> CONFIG_CMD_GO (from Makefile: obj-$(CONFIG_CMD_GO) += boot.o)
> 
> I think it's better if we establish an arch/mips/lib/spl.c for generic
> but MIPS specific SPL stuff and wrap it with CONFIG_SPL_BUILD.

Yes, makes sense. I'll make this change in v7 of the patchset.

Thanks,
Stefan


More information about the U-Boot mailing list