acrn-hypervisor/hypervisor/arch/x86
Yonghua Huang 4d13ad9d08 hv: enable NX in hypervisor
- enable NX feature in hypervisor:
  1. Set 'XD' bit for all pages, including pages for guests
     when initialize MMU tables in hypervisor.
  2. remove 'XD' bit for pages that contain hypervisor instructions.
  3. enable MSR EFER.NXE,which will enable page access restriction by
     preventing instruction fetches form pages with XD bit set.

- remove "-Wl -z noexecstack" GCC flag option in hypervisor
  Makefile as it would not affect stack attribute in hyervisor,
  which setup stack itself, instead of by loader.

Tracked-On: #1122
Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
2018-12-12 12:53:18 +08:00
..
boot hv: enable NX in hypervisor 2018-12-12 12:53:18 +08:00
configs HV: replace serial PCI MMIO base with BDF config 2018-12-03 13:20:35 +08:00
guest HV: improve e820 interfaces and their usages 2018-12-12 09:12:12 +08:00
assign.c hv: replace CPU_PAGE_SHIFT with PAGE_SHIFT 2018-12-03 15:14:57 +08:00
cpu_state_tbl.c HV: add px cx data of bxt n3350 SOC 2018-11-09 13:07:53 +08:00
cpu.c HV: improve e820 interfaces and their usages 2018-12-12 09:12:12 +08:00
cpuid.c hv: cpu: fix "Procedure has more than one exit point" 2018-12-03 11:10:04 +08:00
e820.c HV: rename e820_entries to e820_entries_count 2018-12-12 09:12:12 +08:00
ept.c hv: replace CPU_PAGE_SIZE with PAGE_SIZE 2018-12-03 15:14:57 +08:00
gdt.c fix "Procedure is not pure assembler" 2018-11-13 16:28:58 +08:00
idt.S move idt.S and idt.h out of boot component 2018-12-12 09:07:43 +08:00
io.c hv: fix "No prototype for non-static function" 2018-12-04 09:12:49 +08:00
ioapic.c hv: change the param type of mmio_write** 2018-12-04 09:10:54 +08:00
irq.c move idt fixup out of cpu_primary.S 2018-12-12 09:07:43 +08:00
Kconfig HV: replace serial PCI MMIO base with BDF config 2018-12-03 13:20:35 +08:00
lapic.c hv: lapic: fix a theoretic infinite loop when clear lapic isr 2018-11-22 12:44:21 +08:00
mmu.c hv: enable NX in hypervisor 2018-12-12 12:53:18 +08:00
mtrr.c hv: fix one MISRA-C violation in mtrr.c 2018-12-06 10:54:01 +08:00
notify.c hv: remove the theoretic infinite loop 2018-12-05 13:17:38 +08:00
page.c hv: minimize the case of "identifier reuse" 2018-12-07 15:21:39 +08:00
pagetable.c hv: mmu: replace dynamic memory allocation in memory 2018-11-02 13:15:48 +08:00
pm.c hv: remove the theoretic infinite loop 2018-12-05 13:17:38 +08:00
retpoline-thunk.S license: Replace license text with SPDX tag 2018-06-01 10:43:06 +08:00
static_checks.c modularization: boot component 2018-12-03 09:09:44 +08:00
timer.c fix "Procedure is not pure assembler" 2018-11-13 16:28:58 +08:00
trampoline.c HV: separate e820 related code as e820.c/h 2018-12-12 09:12:12 +08:00
trusty.c hv: cleanup IA32_PAT emulation code r.w.t. to the refactored guest_msrs[] 2018-12-09 21:32:03 +08:00
virq.c hv: remove dead code 2018-12-04 09:12:49 +08:00
vmexit.c hypervisor: use "wbinvd" carefully in RT environment 2018-11-16 10:24:23 +08:00
vmx_asm.S fix spec_ctrl msr save/restore 2018-08-16 16:24:13 +08:00
vmx.c hv: cleanup IA32_PAT emulation code r.w.t. to the refactored guest_msrs[] 2018-12-09 21:32:03 +08:00
vtd.c hv: minimize the case of "identifier reuse" 2018-12-07 15:21:39 +08:00
wakeup.S hv: fix 'User name starts with underscore' 2018-09-30 14:45:37 +08:00