diff --git a/hypervisor/bsp/uefi/cmdline.c b/hypervisor/bsp/uefi/cmdline.c index 70a45be7b..9b498a8f7 100644 --- a/hypervisor/bsp/uefi/cmdline.c +++ b/hypervisor/bsp/uefi/cmdline.c @@ -103,7 +103,7 @@ int parse_hv_cmdline(void) return -EINVAL; } - mbi = (struct multiboot_info *)((uint64_t)boot_regs[1]); + mbi = (struct multiboot_info *)(HPA2HVA((uint64_t)boot_regs[1])); dev_dbg(ACRN_DBG_PARSE, "Multiboot detected, flag=0x%x", mbi->mi_flags); if (!(mbi->mi_flags & MULTIBOOT_INFO_HAS_CMDLINE)) { @@ -111,7 +111,7 @@ int parse_hv_cmdline(void) return -EINVAL; } - start = (char *)(uint64_t)mbi->mi_cmdline; + start = (char *)HPA2HVA((uint64_t)mbi->mi_cmdline); dev_dbg(ACRN_DBG_PARSE, "hv cmdline: %s", start); do { diff --git a/hypervisor/bsp/uefi/uefi.c b/hypervisor/bsp/uefi/uefi.c index a9892b9bb..5d549e511 100644 --- a/hypervisor/bsp/uefi/uefi.c +++ b/hypervisor/bsp/uefi/uefi.c @@ -176,12 +176,12 @@ static void efi_init(void) if (boot_regs[0] != MULTIBOOT_INFO_MAGIC) ASSERT(0, "no multiboot info found"); - mbi = (struct multiboot_info *)((uint64_t)(uint32_t)boot_regs[1]); + mbi = (struct multiboot_info *)HPA2HVA(((uint64_t)(uint32_t)boot_regs[1])); if (!(mbi->mi_flags & MULTIBOOT_INFO_HAS_DRIVES)) ASSERT(0, "no multiboot drivers for uefi found"); - efi_ctx = (struct efi_ctx *)(uint64_t)mbi->mi_drives_addr; + efi_ctx = (struct efi_ctx *)HPA2HVA((uint64_t)mbi->mi_drives_addr); ASSERT(efi_ctx != NULL, "no uefi context found"); vm_sw_loader = uefi_sw_loader;