[v6 01/12] sandbox: efi_loader: Correct use of addresses as pointers

Heinrich Schuchardt xypron.glpk at gmx.de
Wed Nov 27 20:38:15 CET 2024


On 27.11.24 19:40, Heinrich Schuchardt wrote:
> On 27.11.24 18:17, Tom Rini wrote:
>> From: Simon Glass <sjg at chromium.org>
>>
>> The cache-flush function is incorrect which causes a crash in the
>> remoteproc tests with arm64.
>>
>> Fix both problems by using map_sysmem() to convert an address to a
>> pointer and map_to_sysmem() to convert a pointer to an address.
>>
>> Also update the image-loader's cache-flushing logic.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> Fixes: 3286d223fd7 ("sandbox: implement invalidate_icache_all()")
>> Acked-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>>
>> Changes in v6:
>> - Re-introduce
>>
>> Changes in v2:
>> - Drop message about EFI_LOADER
>>
>>   arch/sandbox/cpu/cache.c              |  8 +++++++-
>>   drivers/remoteproc/rproc-elf-loader.c | 18 +++++++++++-------
>>   lib/efi_loader/efi_image_loader.c     |  3 ++-
>>   3 files changed, 20 insertions(+), 9 deletions(-)
>> ---
>>   arch/sandbox/cpu/cache.c              |  8 +++++++-
>>   drivers/remoteproc/rproc-elf-loader.c | 18 +++++++++++-------
>>   lib/efi_loader/efi_image_loader.c     |  3 ++-
>>   3 files changed, 20 insertions(+), 9 deletions(-)
>>
>> diff --git a/arch/sandbox/cpu/cache.c b/arch/sandbox/cpu/cache.c
>> index c8a5e64214b6..96b3da47e8ed 100644
>> --- a/arch/sandbox/cpu/cache.c
>> +++ b/arch/sandbox/cpu/cache.c
>> @@ -4,12 +4,18 @@
>>    */
>>
>>   #include <cpu_func.h>
>> +#include <mapmem.h>
>>   #include <asm/state.h>
>>
>>   void flush_cache(unsigned long addr, unsigned long size)
>>   {
>> +    void *ptr;
>> +
>> +    ptr = map_sysmem(addr, size);
>> +
>>       /* Clang uses (char *) parameters, GCC (void *) */
>> -    __builtin___clear_cache((void *)addr, (void *)(addr + size));
>> +    __builtin___clear_cache(map_sysmem(addr, size), ptr + size);
>> +    unmap_sysmem(ptr);
>>   }

I missed this part when looking at the EFI change.

Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>



More information about the U-Boot mailing list