arm-trusted-firmware/lib
Antonio Nino Diaz 2644103063 Invalidate TLB entries during warm boot
During the warm boot sequence:

1. The MMU is enabled with the data cache disabled. The MMU table walker
   is set up to access the translation tables as in cacheable memory,
   but its accesses are non-cacheable because SCTLR_EL3.C controls them
   as well.
2. The interconnect is set up and the CPU enters coherency with the
   rest of the system.
3. The data cache is enabled.

If the support for dynamic translation tables is enabled and another CPU
makes changes to a region, the changes may only be present in the data
cache, not in RAM. The CPU that is booting isn't in coherency with the
rest of the system, so the table walker of that CPU isn't either. This
means that it may read old entries from RAM and it may have invalid TLB
entries corresponding to the dynamic mappings.

This is not a problem for the boot code because the mapping is 1:1 and
the regions are static. However, the code that runs after the boot
sequence may need to access the dynamically mapped regions.

This patch invalidates all TLBs during warm boot when the dynamic
translation tables support is enabled to prevent this problem.

Change-Id: I80264802dc0aa1cb3edd77d0b66b91db6961af3d
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
2018-02-27 17:00:41 +00:00
..
aarch32 ARMv7: division support for missing __aeabi_*divmod 2017-11-08 14:42:07 +01:00
aarch64 misc_helpers: fix zero_normalmem() for BL2_AT_EL3 2018-02-01 13:17:29 +09:00
compiler-rt Import ctzdi2.c from LLVM compiler-rt 2017-07-26 09:28:23 +01:00
coreboot coreboot: Add support for CBMEM console 2018-01-19 15:21:12 -08:00
cpus Fixup AArch32 errata printing framework 2018-02-22 15:19:52 +00:00
el3_runtime Enable SVE for Non-secure world 2017-11-30 17:45:09 +00:00
extensions AMU: Implement context save/restore for aarch32 2018-01-31 14:08:22 +00:00
libfdt Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
locks ARMv7 does not support STL instruction 2017-11-08 13:49:29 +01:00
optee optee: print header info before validate 2018-02-08 02:17:24 +09:00
pmf Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
psci Invalidate TLB entries during warm boot 2018-02-27 17:00:41 +00:00
semihosting Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
stack_protector Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
stdlib Use standard UNIX file:line format in assert 2017-07-19 05:57:40 +01:00
utils Add mem_region utility functions 2017-09-25 13:32:20 +01:00
xlat_tables Merge pull request #1145 from etienne-lms/rfc-armv7-2 2017-11-23 23:41:24 +00:00
xlat_tables_v2 xlat v2: Correctly unmap regions on map error 2018-01-10 15:39:37 +00:00
zlib zlib: Fix build error when LOG_LEVEL=50 2018-02-08 09:36:48 +01:00