acrn-hypervisor/hypervisor/arch/x86
Zide Chen 9323f811ea HV: Prepare cpu_secondary.S for AP trampoline code relocation
V1->V2: removed CONFIG_LOW_RAM_START and added ".org 0" to
cpu_secondary.S

The assumption is trampoline code is relocated while HV is not, so:

trampoline code is built at address 0, and CS register is updated
by SIPI to reflect the correct vector

in real mode part, added extra pointers for page tables and long jump buffer
so it's possible for HV code to patch the relocation offset

in long mode part, use absolute addressing when referring HV symbols,
and use relative addressing for symbols within trampoline code

Signed-off-by: Zheng, Gen <gen.zheng@intel.com>
Signed-off-by: Jason Chen CJ <jason.cj.chen@intel.com>
Signed-off-by: Zide Chen <zide.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong>
Acked-by: Xu, Anthony <anthony.xu@intel.com>
2018-05-15 17:25:58 +08:00
..
guest rename 'req_buf' field in 'struct vm_sw_info' 2018-05-15 17:25:58 +08:00
assign.c security: fix issues reported by Klocwork 2018-05-15 17:25:57 +08:00
cpu_primary.S UEFI: change the efi_ctx passing method 2018-05-15 17:19:39 +08:00
cpu_secondary.S HV: Prepare cpu_secondary.S for AP trampoline code relocation 2018-05-15 17:25:58 +08:00
cpu_state_tbl.c HV Cx: add cx data of bxt j3455 SOC 2018-05-15 17:25:57 +08:00
cpu.c hv: add build type and detail time to version string 2018-05-15 17:25:57 +08:00
cpuid.c hv: cpuid: don't reference the crossed array 2018-05-15 17:25:57 +08:00
ept.c rename 'req_buf' field in 'struct vm_sw_info' 2018-05-15 17:25:58 +08:00
gdt.c initial import 2018-05-11 14:44:28 +08:00
idt.S initial import 2018-05-11 14:44:28 +08:00
interrupt.c refine external interrupt VM exit handler 2018-05-15 17:25:58 +08:00
intr_lapic.c MMU: bug fix on operating va <=> pa convertion 2018-05-15 17:25:55 +08:00
intr_main.c uefi: init vlapic according to native lapic 2018-05-15 17:19:37 +08:00
io.c rename 'req_buf' field in 'struct vm_sw_info' 2018-05-15 17:25:58 +08:00
ioapic.c ptdev: change remapping entry from virtual to physical based 2018-05-15 17:25:57 +08:00
irq.c cpu: change cpu_halt name to cpu_dead 2018-05-15 17:25:27 +08:00
mmu.c HV: correct the handling of MU_MEM_ATTR_READ MMU flag 2018-05-15 17:25:58 +08:00
notify.c initial import 2018-05-11 14:44:28 +08:00
retpoline-thunk.S retpoline: add indirect thunk support 2018-05-15 17:19:36 +08:00
softirq.c initial import 2018-05-11 14:44:28 +08:00
timer.c hv: timer: add periodic timer setup support 2018-05-15 17:25:56 +08:00
trusty.c security: fix issues reported by Klocwork 2018-05-15 17:25:57 +08:00
vmexit.c enable rdtscp instruction for guest OS all vCPUs 2018-05-15 17:25:55 +08:00
vmx_asm.S Jmp to vm_exit directly to avoid calling vmlaunch again if vm-entry fails in vmresume 2018-05-15 17:19:37 +08:00
vmx.c enable rdtscp instruction for guest OS all vCPUs 2018-05-15 17:25:55 +08:00
vtd.c MMU: bug fix on operating va <=> pa convertion 2018-05-15 17:25:55 +08:00