zephyr/include/arch
Immo Birnbaum 70c403c215 arch: arm: core: aarch32: introduce basic ARMv7 MMU support
An initial implementation for memory management using the ARMv7 MMU.
A single L1 translation table for the whole 4 GB address space is al-
ways present, a configurable number of L2 page tables are linked to
the L1 table based on the static memory area configuration at boot
time, or whenever arch_mem_map/arch_mem_unmap are called at run-time.

Currently, a CPU with the Multiprocessor Extensions and execution at
PL1 are always assumed. Userspace-related features or thread stack
guard pages are not yet supported. Neither are LPAE, PXN or TEX re-
mapping. All mappings are currently assigned to the same domain. Re-
garding the permissions model, access permissions are specified using
the AP[2:1] model rather than the older AP[2:0] model, which, accor-
ding to ARM's documentation, is deprecated and should no longer be
used. The newer model adds some complexity when it comes to mapping
pages as unaccessible (the AP[2:1] model doesn't support explicit
specification of "no R, no W" permissions, it's always at least "RO"),
this is accomplished by invalidating the ID bits of the respective
page's PTE.

Includes sources, Kconfig integration, adjusted CMakeLists and the
modified linker command file (proper section alignment!).

Signed-off-by: Immo Birnbaum <Immo.Birnbaum@weidmueller.com>
2021-10-28 15:26:50 +02:00
..
arc arch: arc: Add _ARCH_MEM_PARTITION_ALIGN_CHECK for arc mpu v3 v6 2021-10-21 10:50:03 -04:00
arm/aarch32 arch: arm: core: aarch32: introduce basic ARMv7 MMU support 2021-10-28 15:26:50 +02:00
arm64 scripts: Add align for empty _app_smem region 2021-09-28 20:06:06 -04:00
common include: common: Add sys_set_bits and set_clear_bits inline functions 2021-10-12 08:37:03 -04:00
nios2 linker: align _image_rodata and _image_rom start/end/size linker symbols 2021-08-28 08:48:03 -04:00
posix linker: align __data_ram/rom_start/end linker symbol names 2021-08-28 08:48:03 -04:00
riscv riscv: linker: fix PMP support on non-XIP system. 2021-09-29 14:44:04 -04:00
sparc linker: __data_region_start equal to __data_start 2021-09-24 15:13:13 -04:00
x86 thread: set mxcsr bit 6 DAZ to zero to disable denormals-are-zeros 2021-09-22 08:34:18 -04:00
xtensa xtensa: cache: XCC needs to declare variable outside for loop 2021-07-22 15:41:11 +03:00
arch_inlines.h arm/arm64: Make ARM64 a standalone architecture 2021-03-31 10:34:33 -05:00
cpu.h arm/arm64: Make ARM64 a standalone architecture 2021-03-31 10:34:33 -05:00
structs.h kernel: add an architecture specific structs header 2021-04-21 09:03:47 -04:00
syscall.h arm/arm64: Make ARM64 a standalone architecture 2021-03-31 10:34:33 -05:00