mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-01-13 11:33:58 +00:00
HV: modularizatoin: refine efi_info struct usage in acrn boot info
This patch has below changes: 1. rename mi_efi_info to uefi_info in struct acrn_boot_info; 2. remove redundant "efi_" prefix for efi_info struct members; 3. The efi_info structure in acrn_boot_info struct is defined as same as Linux kernel so the native efi info from boot loader is passed to SOS zeropage with memcpy() api directly. Now replace memcpy() with detailed struct member assignment; 4. add boot_from_uefi() api; Tracked-On: #5661 Signed-off-by: Victor Sun <victor.sun@intel.com> Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
This commit is contained in:
@@ -52,10 +52,8 @@ static void mb2_mods_to_abi(struct acrn_boot_info *abi,
|
||||
*/
|
||||
static void mb2_efi64_to_abi(struct acrn_boot_info *abi, const struct multiboot2_tag_efi64 *mb2_tag_efi64)
|
||||
{
|
||||
const uint32_t efiloader_sig = 0x34364c45; /* "EL64" */
|
||||
abi->mi_efi_info.efi_systab = (uint32_t)(uint64_t)mb2_tag_efi64->pointer;
|
||||
abi->mi_efi_info.efi_systab_hi = (uint32_t)((uint64_t)mb2_tag_efi64->pointer >> 32U);
|
||||
abi->mi_efi_info.efi_loader_signature = efiloader_sig;
|
||||
abi->uefi_info.systab = (uint32_t)(uint64_t)mb2_tag_efi64->pointer;
|
||||
abi->uefi_info.systab_hi = (uint32_t)((uint64_t)mb2_tag_efi64->pointer >> 32U);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -64,11 +62,11 @@ static void mb2_efi64_to_abi(struct acrn_boot_info *abi, const struct multiboot2
|
||||
static void mb2_efimmap_to_abi(struct acrn_boot_info *abi,
|
||||
const struct multiboot2_tag_efi_mmap *mb2_tag_efimmap)
|
||||
{
|
||||
abi->mi_efi_info.efi_memdesc_size = mb2_tag_efimmap->descr_size;
|
||||
abi->mi_efi_info.efi_memdesc_version = mb2_tag_efimmap->descr_vers;
|
||||
abi->mi_efi_info.efi_memmap = (uint32_t)(uint64_t)mb2_tag_efimmap->efi_mmap;
|
||||
abi->mi_efi_info.efi_memmap_size = mb2_tag_efimmap->size - 16U;
|
||||
abi->mi_efi_info.efi_memmap_hi = (uint32_t)(((uint64_t)mb2_tag_efimmap->efi_mmap) >> 32U);
|
||||
abi->uefi_info.memdesc_size = mb2_tag_efimmap->descr_size;
|
||||
abi->uefi_info.memdesc_version = mb2_tag_efimmap->descr_vers;
|
||||
abi->uefi_info.memmap = (uint32_t)(uint64_t)mb2_tag_efimmap->efi_mmap;
|
||||
abi->uefi_info.memmap_size = mb2_tag_efimmap->size - 16U;
|
||||
abi->uefi_info.memmap_hi = (uint32_t)(((uint64_t)mb2_tag_efimmap->efi_mmap) >> 32U);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user