u-boot-brain/arch
Andrew F. Davis 864e285739 arm: mach-k3: Clean non-coherent lines out of L3 cache
When switching on or off the ARM caches some care must be taken to ensure
existing cache line allocations are not left in an inconsistent state.
An example of this is when cache lines are considered non-shared by
and L3 controller even though the lines are shared. To prevent these
and other issues all cache lines should be cleared before enabling
or disabling a coherent master's cache. ARM cores and many L3 controllers
provide a way to efficiently clean out all cache lines to allow for
this, unfortunately there is no such easy way to do this on current K3
MSMC based systems.

We could explicitly clean out every valid external address tracked by
MSMC (all of DRAM), or we could attempt to identify only the set of
addresses accessed by a given boot stage and flush only those
specifically. This patch attempts the latter. We start with cleaning the
SPL load address. More addresses can be added here later as they are
identified.

Note that we perform a flush operation for both the flush and invalidate
operations, this is not a typo. We do this to avoid the situation that
some ARM cores will promote an invalidate to a clean+invalidate, but only
emit the invalidation operation externally, leading to a loss of data.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Tested-by: Faiz Abbas <faiz_abbas@ti.com>
2020-08-11 10:18:27 +05:30
..
arc board_f: Factor out bdinfo bi_mem{start, size} to setup_bdinfo 2020-08-06 14:26:35 -04:00
arm arm: mach-k3: Clean non-coherent lines out of L3 cache 2020-08-11 10:18:27 +05:30
m68k board_f: m68k: Factor out m68k-specific bdinfo setup 2020-08-06 14:26:35 -04:00
microblaze efi_loader: use CONFIG_STACK_SIZE in the UEFI sub-system 2020-08-01 11:58:23 +02:00
mips - doc: fix qemu-mips build instructions 2020-08-04 11:07:16 -04:00
nds32 treewide: convert bd_t to struct bd_info by coccinelle 2020-07-17 09:30:13 -04:00
nios2 cpu: Convert the methods to use a const udevice * 2020-07-25 14:46:57 -06:00
powerpc board_f: ppc: Factor out ppc-specific bdinfo setup 2020-08-06 14:26:35 -04:00
riscv sifive: reset: add DM based reset driver for SiFive SoC's 2020-08-04 09:19:41 +08:00
sandbox test/py: add tests for the button commands 2020-07-28 19:30:39 -06:00
sh sh: r2dplus: Add SCIF1 to the basic DT 2020-08-02 19:58:27 +02:00
x86 sf: Drop dm.h header file from spi_flash.h 2020-08-03 22:19:54 -04:00
xtensa board_f: Factor out bdinfo bi_mem{start, size} to setup_bdinfo 2020-08-06 14:26:35 -04:00
.gitignore
Kconfig board_f: Factor out bdinfo bi_mem{start, size} to setup_bdinfo 2020-08-06 14:26:35 -04:00
u-boot-elf.lds arch: Add explicit linker script for u-boot-elf 2020-04-03 11:52:55 -04:00