zephyr/include/arch/x86
Andrew Boie e34f1cee06 x86: implement kernel page table isolation
Implement a set of per-cpu trampoline stacks which all
interrupts and exceptions will initially land on, and also
as an intermediate stack for privilege changes as we need
some stack space to swap page tables.

Set up the special trampoline page which contains all the
trampoline stacks, TSS, and GDT. This page needs to be
present in the user page tables or interrupts don't work.

CPU exceptions, with KPTI turned on, are treated as interrupts
and not traps so that we have IRQs locked on exception entry.

Add some additional macros for defining IDT entries.

Add special handling of locore text/rodata sections when
creating user mode page tables on x86-64.

Restore qemu_x86_64 to use KPTI, and remove restrictions on
enabling user mode on x86-64.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2020-01-17 16:17:39 -05:00
..
ia32 x86: remove retpoline code 2020-01-13 16:35:10 -05:00
intel64 x86: implement kernel page table isolation 2020-01-17 16:17:39 -05:00
acpi.h arch/x86: rename CONFIG_X86_ACPI and related to CONFIG_ACPI 2019-09-29 12:30:34 -07:00
arch_inlines.h kernel: rename z_arch_ to arch_ 2019-11-07 15:21:46 -08:00
arch.h dts: Rename generated_dts_board*.{h,conf} to devicetree*.{h,conf} 2020-01-17 17:57:59 +01:00
memmap.h arch/x86: add support for non-trivial memory maps 2019-09-29 12:30:34 -07:00
mmustructs.h x86: expose APIs for dumping MMU entry flags 2020-01-13 16:35:10 -05:00
msr.h x86: add MSR defintions needed for syscalls 2020-01-13 16:35:10 -05:00
multiboot.h arch/x86: multiboot.h: use BIT() macros instead of explicit shifts 2019-09-29 12:30:34 -07:00
thread_stack.h x86: fix 64-bit issues in thread_stack.h 2020-01-13 16:35:10 -05:00