zephyr/arch
Mykola Kvach c9b534c4eb arch: arm64: mmu: avoid using of set/way cache instructions
Architecturally, Set/Way operations are not guaranteed to affect all
caches prior to the PoC, and may require other IMPLEMENTATION DEFINED
maintenance (e.g. MMIO control of system-level caches).

First of all this patch was designed for Xen domain Zephyr build, set/way
ops are not easily virtualized by Xen. S/W emulation is disabled, because
IP-MMU is active for Dom0. IP-MMU is a IO-MMU made by Renesas, as any good
IO-MMU, it shares page-tables with CPU. Trying to emulate S/W with IP-MMU
active will lead to IO-MMU faults. So if we build Zephyr as a Xen Initial
domain, it won't work with cache management support enabled.

Exposing set/way cache maintenance to a virtual machine is unsafe, not
least because the instructions are not permission-checked, but also
because they are not broadcast between CPUs.

In this commit, VA data invalidate invoked after every mapping instead of
using set/way instructions on init MMU. So, it was easy to delete
sys_cache_data_invd_all from enable MMU function, becase every adding of
a new memory region to xclat tabes will cause invalidating of this memory
and in this way we sure that there are not any stale data inside.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
2023-08-17 15:15:15 +02:00
..
arc kernel: spinlock: LOCKED -> K_SPINLOCK 2023-07-10 09:27:21 +02:00
arm clang: Don't specify FP16 format 2023-08-01 11:24:07 +02:00
arm64 arch: arm64: mmu: avoid using of set/way cache instructions 2023-08-17 15:15:15 +02:00
common arch: common: use zephyr_library for all source files 2023-08-16 15:00:49 +02:00
mips include: types: remove ulong_t 2022-09-06 18:16:33 +02:00
nios2 arch: nios2: Remove unused absolute symbols 2023-04-18 10:51:28 -04:00
posix POSIX arch: Fix literal floating comparison in 32bit targets 2023-08-14 13:37:27 +00:00
riscv riscv: renames shadow variables 2023-08-10 08:14:12 +00:00
sparc arch: sparc: Remove unused absolute symbols 2023-04-18 10:51:28 -04:00
x86 x86-64: Early TLS initialization 2023-08-08 19:08:04 -04:00
xtensa soc: xtensa,riscv: esp32xx: refactor folder structure 2023-07-25 18:12:33 +02:00
CMakeLists.txt cmake: fix include directories to work with out-of-tree arch 2020-08-05 08:06:07 -04:00
Kconfig kernel: canaries: Allow using TLS to store it 2023-08-08 19:08:04 -04:00