[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