zephyr/tests/kernel
Andrew Boie f0ddbd7eee x86: abstract toplevel page table pointer
This patch is a preparatory step in enabling the MMU in
long mode; no steps are taken to implement long mode support.

We introduce struct x86_page_tables, which represents the
top-level data structure for page tables:

- For 32-bit, this will contain a four-entry page directory
  pointer table (PDPT)
- For 64-bit, this will (eventually) contain a page map level 4
  table (PML4)

In either case, this pointer value is what gets programmed into
CR3 to activate a set of page tables. There are extra bits in
CR3 to set for long mode, we'll get around to that later.

This abstraction will allow us to use the same APIs that work
with page tables in either mode, rather than hard-coding that
the top level data structure is a PDPT.

z_x86_mmu_validate() has been re-written to make it easier to
add another level of paging for long mode, to support 2MB
PDPT entries, and correctly validate regions which span PDPTE
entries.

Some MMU-related APIs moved out of 32-bit x86's arch.h into
mmustructs.h.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-10-04 15:53:49 -07:00
..
boot_page_table x86: abstract toplevel page table pointer 2019-10-04 15:53:49 -07:00
common coccinelle: standardize kernel API timeout arguments 2019-10-03 11:55:44 -07:00
context tests: Never disable SMP 2019-09-26 16:54:06 -04:00
critical tests: Never disable SMP 2019-09-26 16:54:06 -04:00
device tests: enable native_posix_64 testing 2019-07-16 10:41:11 -07:00
early_sleep tests: Never disable SMP 2019-09-26 16:54:06 -04:00
fatal coccinelle: standardize kernel API timeout arguments 2019-10-03 11:55:44 -07:00
fifo tests: Never disable SMP 2019-09-26 16:54:06 -04:00
fp_sharing tests/kernel/fp_sharing: Fix static analysis warning 2019-08-22 07:07:31 -04:00
gen_isr_table riscv32: rename to riscv 2019-08-02 13:54:48 -07:00
interrupt coccinelle: standardize kernel API timeout arguments 2019-10-03 11:55:44 -07:00
lifo tests: Never disable SMP 2019-09-26 16:54:06 -04:00
mbox tests: Never disable SMP 2019-09-26 16:54:06 -04:00
mem_heap/mheap_api_concept malloc: make sure returned memory is properly aligned 2019-07-03 14:17:29 -07:00
mem_pool coccinelle: standardize kernel API timeout arguments 2019-10-03 11:55:44 -07:00
mem_protect x86: abstract toplevel page table pointer 2019-10-04 15:53:49 -07:00
mem_slab coccinelle: standardize kernel API timeout arguments 2019-10-03 11:55:44 -07:00
mp license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
msgq/msgq_api tests: Never disable SMP 2019-09-26 16:54:06 -04:00
mutex tests: Never disable SMP 2019-09-26 16:54:06 -04:00
obj_tracing coccinelle: standardize kernel API timeout arguments 2019-10-03 11:55:44 -07:00
pending coccinelle: standardize kernel API timeout arguments 2019-10-03 11:55:44 -07:00
pipe kernel: tests: Increased TX/RX buf size in pipe test 2019-10-01 17:56:02 -04:00
poll coccinelle: standardize kernel API timeout arguments 2019-10-03 11:55:44 -07:00
profiling/profiling_api tests: Never disable SMP 2019-09-26 16:54:06 -04:00
queue tests: Never disable SMP 2019-09-26 16:54:06 -04:00
sched coccinelle: standardize kernel API timeout arguments 2019-10-03 11:55:44 -07:00
semaphore coccinelle: standardize kernel API timeout arguments 2019-10-03 11:55:44 -07:00
sleep tests: Never disable SMP 2019-09-26 16:54:06 -04:00
smp tests: enable hsdk and nsim_hs_smp for smp test 2019-08-11 21:18:38 +02:00
spinlock license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
stack tests: Never disable SMP 2019-09-26 16:54:06 -04:00
threads kernel: tests: Added header with common declarations 2019-10-01 09:16:01 -04:00
tickless boards: arm: qemu_cortex_m0: filter out a couple of failing tests 2019-10-02 21:06:54 -04:00
timer coccinelle: standardize kernel API timeout arguments 2019-10-03 11:55:44 -07:00
workq coccinelle: standardize kernel API timeout arguments 2019-10-04 16:23:57 -04:00
xip x86: fix XIP SOC support and defaults 2019-09-11 21:11:38 -04:00