acrn-hypervisor/hypervisor/arch/x86
Victor Sun 9dfac7a7a3 HV: init hv_e820 from efi mmap if boot from uefi
Hypervisor use e820_alloc_memory() api to allocate memory for trampoline code
and ept pages, whereas the usable ram in hv_e820 might include efi boot service
region if system boot from uefi environment, this would result in some uefi
service broken in SOS. These boot service region should be filtered from
hv_e820.
This patch will parse the efi memory descriptor entries info from efi memory
map pointer when system boot from uefi environment, and then initialize hv_e820
accordingly, that all efi boot service region would be kept as reserved in
hv_e820.

Please note the original efi memory map could be above 4GB address space,
so the efi memory parsing process must be done after enable_paging().

Tracked-On: #5626

Signed-off-by: Victor Sun <victor.sun@intel.com>
Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
2021-06-11 10:06:02 +08:00
..
boot HV: modularization: rename multiboot.h to boot.h 2021-06-11 10:06:02 +08:00
configs hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
guest HV: modularization: rename multiboot.h to boot.h 2021-06-11 10:06:02 +08:00
lib HV: rewrite memcpy_s to be iso c11 compliant 2020-06-08 13:30:04 +08:00
seed HV: modularization: use cmdline char array in acrn boot info 2021-06-11 10:06:02 +08:00
cpu_caps.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
cpu_state_tbl.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
cpu.c HV: init paging before init e820 2021-06-11 10:06:02 +08:00
e820.c HV: init hv_e820 from efi mmap if boot from uefi 2021-06-11 10:06:02 +08:00
exception.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
gdt.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
idt.S hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
init.c HV: modularization: add boot.c to wrap multiboot module 2021-06-11 10:06:02 +08:00
ioapic.c hv: paging: rename ppt_set/clear_ATTR to set_paging_ATTR 2021-05-14 09:18:00 +08:00
irq.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
Kconfig config-tool: rename PSRARM to SSRAM 2021-05-17 14:31:42 +08:00
lapic.c hv/mod_timer: separate delay functions from the timer module 2021-05-18 16:43:28 +08:00
mmu.c HV: init paging before init e820 2021-06-11 10:06:02 +08:00
nmi.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
notify.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
page.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
pagetable.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
platform_caps.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
pm.c hv/mod_timer: make timer into an arch-independent module 2021-05-18 16:43:28 +08:00
rdt.c hv: some coding style fixes 2021-05-12 16:50:34 +08:00
rtcm.c hv: update RTCT ACPI table detecting 2021-06-01 08:22:20 +08:00
sched.S
security.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
sgx.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
trampoline.c hv: cache: wrap common APIs 2021-05-14 09:18:00 +08:00
tsc_deadline_timer.c hv/mod_timer: make timer into an arch-independent module 2021-05-18 16:43:28 +08:00
tsc.c hv/mod_timer: split tsc handling code from timer. 2021-05-18 16:43:28 +08:00
vmx.c hv: VMPTRLD and VMCLEAR VMCS with the common APIs 2021-05-26 11:22:26 +08:00
vtd.c hv: validate input for dmar_free_irte function 2021-06-08 09:03:10 +08:00
wakeup.S