zephyr/soc
Flavio Ceolin c47880af0d arch/xtensa: Add new MMU layer
Andy Ross re-implementation of MMU layer with some subtle changes,
like re-using existent macros, fix page table cache property when
direct mapping it in TLB.

From Andy's original commit message:

This is a reworked MMU layer, sitting cleanly below the page table
handling in the OS.  Notable differences from the original work:

+ Significantly smaller code and simpler API (just three functions to
  be called from the OS/userspace/ptable layer).

+ Big README-MMU document containing my learnings over the process, so
  hopefully fewer people need to go through this in the future.

+ No TLB flushing needed.  Clean separation of ASIDs, just requires
  that the upper levels match the ASID to the L1 page table page
  consistently.

+ Vector mapping is done with a 4k page and not a 4M page, leading to
  much more flexibility with hardware memory layout.  The original
  scheme required that the 4M region containing vecbase be mapped
  virtually to a location other than the hardware address, which makes
  confusing linkage with call0 and difficult initialization
  constraints where the exception vectors run at different addresses
  before and after MMU setup (effectively forcing them to be PIC
  code).

+ More provably correct initialization, all MMU changes happen in a
  single asm block with no memory accesses which would generate a
  refill.

Signed-off-by: Andy Ross <andyross@google.com>
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2023-11-21 15:49:48 +01:00
..
arc cmake: arc: update arc SoC to use SOC_LINKER_SCRIPT variable 2023-11-03 11:01:23 +01:00
arm pm: add power management for stm32f4x 2023-11-21 08:46:17 +00:00
arm64 soc: arm64: mimx8m & 9: define SOC name followed by Core name 2023-11-15 11:42:06 +01:00
mips cmake: mips: update mips SoC to use SOC_LINKER_SCRIPT variable 2023-11-03 11:01:23 +01:00
nios2 cmake: cleanup and simplify the standard include logic in Zephyr 2023-11-06 18:57:30 -05:00
posix cmake: posix: update posix SoC to use SOC_LINKER_SCRIPT variable 2023-11-03 11:01:23 +01:00
riscv drivers: plic: support multiple instances for multi-level 2023-11-09 18:20:43 +01:00
sparc cmake: sparc: update sparc SoC to use SOC_LINKER_SCRIPT variable 2023-11-03 11:01:23 +01:00
x86 cmake: x86: update x86 SoC to use SOC_LINKER_SCRIPT variable 2023-11-03 11:01:23 +01:00
xtensa arch/xtensa: Add new MMU layer 2023-11-21 15:49:48 +01:00
CMakeLists.txt cmake: enable -Wshadow partially for in-tree code 2023-08-22 11:39:58 +02:00
Kconfig nrf5x_bsim: Add helper kconfig symbols for simulated nrf5340 2023-09-20 08:56:49 +02:00