zephyr/arch/xtensa/core
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
..
include arch/xtensa: Add new MMU layer 2023-11-21 15:49:48 +01:00
offsets xtensa: Enable userspace 2023-11-21 15:49:48 +01:00
startup
CMakeLists.txt arch/xtensa: Add new MMU layer 2023-11-21 15:49:48 +01:00
coredump.c gdbstub: xtensa: add support for dc233c core 2023-09-27 19:30:15 -05:00
cpu_idle.c arch/xtensa: clean up arch_cpu_idle function 2023-11-20 11:14:41 +01:00
crt1.S xtensa: mmu: Simplify initialization 2023-11-21 15:49:48 +01:00
debug_helpers_asm.S
fatal.c arch/xtensa: #include cleanup 2023-11-21 15:49:48 +01:00
gdbstub.c
gen_zsr.py xtensa: mmu: allocate scratch registers for MMU 2023-11-21 15:49:48 +01:00
irq_manage.c
irq_offload.c
mem_manage.c kernel: mm: move kernel mm functions under kernel includes 2023-11-20 09:19:14 +01:00
mmu.c arch/xtensa: Add new MMU layer 2023-11-21 15:49:48 +01:00
ptables.c arch/xtensa: Add new MMU layer 2023-11-21 15:49:48 +01:00
README-MMU.txt arch/xtensa: Add new MMU layer 2023-11-21 15:49:48 +01:00
README-WINDOWS.rst
syscall_helper.c xtensa: userspace: simplify syscall helper 2023-11-21 15:49:48 +01:00
timing.c
tls.c
userspace.S xtensa: userspace: Supports tls on userspace 2023-11-21 15:49:48 +01:00
window_vectors.S arch/xtensa: Rename "ALLOCA" ZSR to "A0SAVE" 2023-11-21 15:49:48 +01:00
xcc_stubs.c
xtensa_backtrace.c xtensa: dc233c: enable backtrace support 2023-09-26 08:37:43 +02:00
xtensa_intgen.py
xtensa_intgen.tmpl
xtensa-asm2-util.S xtensa: rework kernel oops exception path 2023-11-21 15:49:48 +01:00
xtensa-asm2.c xtensa: userspace: Supports tls on userspace 2023-11-21 15:49:48 +01:00