mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-21 05:02:24 +00:00
HV: Fix boot failure of partition mode
When drdh_info_array[0].ignore = false with partition mode enabled,the following assert error will be triggered when trying to boot vm: Assertion failed in file arch/x86/vtd.c: fatal error The root cause is that root_table_addr reading from CPU3(vm2's bsp) is NULL. This patch move the init_iommu which initialize root_table_addr before starting secondary cores and flush the cache at the end if the function to avoid getting NULL pointer from secondary cores. Tracked-On: #1160 Signed-off-by: Kaige Fu <kaige.fu@intel.com> Reviewed-by: Binin Wu <binbin.wu@intel.com>
This commit is contained in:
parent
70e13bf8f4
commit
05834927cc
@ -482,6 +482,8 @@ static void bsp_boot_post(void)
|
|||||||
/* Initialize interrupts */
|
/* Initialize interrupts */
|
||||||
interrupt_init(BOOT_CPU_ID);
|
interrupt_init(BOOT_CPU_ID);
|
||||||
|
|
||||||
|
init_iommu();
|
||||||
|
|
||||||
timer_init();
|
timer_init();
|
||||||
setup_notification();
|
setup_notification();
|
||||||
setup_posted_intr_notification();
|
setup_posted_intr_notification();
|
||||||
@ -495,8 +497,6 @@ static void bsp_boot_post(void)
|
|||||||
|
|
||||||
ASSERT(get_cpu_id() == BOOT_CPU_ID, "");
|
ASSERT(get_cpu_id() == BOOT_CPU_ID, "");
|
||||||
|
|
||||||
init_iommu();
|
|
||||||
|
|
||||||
console_setup_timer();
|
console_setup_timer();
|
||||||
|
|
||||||
exec_vmxon_instr(BOOT_CPU_ID);
|
exec_vmxon_instr(BOOT_CPU_ID);
|
||||||
|
@ -1286,6 +1286,8 @@ void init_iommu(void)
|
|||||||
register_hrhd_units();
|
register_hrhd_units();
|
||||||
|
|
||||||
enable_iommu();
|
enable_iommu();
|
||||||
|
|
||||||
|
cache_flush_invalidate_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_iommu_vm0_domain(struct vm *vm0)
|
void init_iommu_vm0_domain(struct vm *vm0)
|
||||||
|
Loading…
Reference in New Issue
Block a user