hv: Prepare trampline.S trampoline code relocation

in real mode part, add 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@intel.com>
Acked-by: Xu, Anthony <anthony.xu@intel.com>
This commit is contained in:
Zide Chen
2018-05-02 23:09:19 -07:00
committed by lijinxia
parent 77580edff0
commit 40c8c4d3c3
3 changed files with 29 additions and 8 deletions

View File

@@ -158,10 +158,17 @@ int cpu_find_logical_id(uint32_t lapic_id);
/**********************************/
extern const uint8_t _ld_trampline_load[];
extern uint8_t _ld_trampline_start[];
extern uint8_t _ld_trampline_end[];
extern const uint64_t _ld_trampline_size;
extern uint8_t _ld_bss_start[];
extern uint8_t _ld_bss_end[];
extern uint8_t CPU_Boot_Page_Tables_Start[];
extern uint8_t CPU_Boot_Page_Tables_ptr[];
extern uint8_t trampline_pdpt_addr[];
extern uint8_t trampline_gdt_ptr[];
extern uint8_t trampline_start64_fixup[];
extern int ibrs_type;
/*