On 6/6/20 7:15 PM, Ard Biesheuvel wrote: > Add an override for enable_caches to enable the I and D caches, along > with the cached 1:1 mapping of all of DRAM. This is needed for running > U-Boot under virtualization with QEMU/kvm. > > Signed-off-by: Ard Biesheuvel <a...@kernel.org> > --- > board/emulation/qemu-arm/qemu-arm.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/board/emulation/qemu-arm/qemu-arm.c > b/board/emulation/qemu-arm/qemu-arm.c > index 69e8ef46f1f5..1b0d543b93c1 100644 > --- a/board/emulation/qemu-arm/qemu-arm.c > +++ b/board/emulation/qemu-arm/qemu-arm.c > @@ -4,6 +4,7 @@ > */ > > #include <common.h> > +#include <cpu_func.h> > #include <dm.h> > #include <fdtdec.h> > #include <init.h> > @@ -94,6 +95,12 @@ void *board_fdt_blob_setup(void) > return (void *)CONFIG_SYS_SDRAM_BASE; > } > > +void enable_caches(void) > +{ > + icache_enable(); > + dcache_enable(); > +} > +
For other ARM architectures I have seen: int arch_cpu_init(void) { icache_enable(); return 0; } void enable_caches(void) { dcache_enable(); } Some boards have if (!icache_status()) icache_enable(); others #if !CONFIG_IS_ENABLED(SYS_ICACHE_OFF) icache_enable(); #endif Tom could you, please, advice what is the correct way to do it. Best regards Heinrich > #if defined(CONFIG_EFI_RNG_PROTOCOL) > #include <efi_loader.h> > #include <efi_rng.h> >