mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-08 12:19:06 +00:00
EFI: Allocate EFI boot related struct from EFI allocation pool
Current EFI boot related structs are allocated right after HV binary, and marked as EfiResered. In fact, the memory should be reclaimed and managed by HV once EFI boot is done, Moreover, HV is doing 2M alignment, which is overwriting this allocated memory. This patch is to allocate EFI info from EFI allocation pool and marked as EFiloaderdata, so that the memory is used by HV, also, it will reduce the fragmentation. Tracked-On: #2349 Signed-off-by: Chaohong guo <chaohong.guo@intel.com> Reviewed-by: Eddie Dong <eddie.dong@intel.com> Reviewed-by: Zheng, Gen <gen.zheng@intel.com>
This commit is contained in:
@@ -77,14 +77,14 @@ typedef void(*hv_func)(int32_t, struct multiboot_info*);
|
||||
#define MBOOT_MMAP_SIZE (sizeof(struct multiboot_mmap) * MBOOT_MMAP_NUMS)
|
||||
#define MBOOT_INFO_SIZE (sizeof(struct multiboot_info))
|
||||
#define BOOT_CTX_SIZE (sizeof(struct efi_context))
|
||||
#define HV_RUNTIME_MEM_SIZE \
|
||||
(CONFIG_HV_RAM_SIZE + MBOOT_MMAP_SIZE + MBOOT_INFO_SIZE + BOOT_CTX_SIZE)
|
||||
#define EFI_BOOT_MEM_SIZE \
|
||||
(MBOOT_MMAP_SIZE + MBOOT_INFO_SIZE + BOOT_CTX_SIZE)
|
||||
#define MBOOT_MMAP_PTR(addr) \
|
||||
((struct multiboot_mmap *)((VOID *)addr + CONFIG_HV_RAM_SIZE))
|
||||
#define MBOOT_INFO_PTR(addr) ((struct multiboot_info *) \
|
||||
((VOID *)addr + CONFIG_HV_RAM_SIZE + MBOOT_MMAP_SIZE))
|
||||
#define BOOT_CTX_PTR(addr) ((struct efi_context *) \
|
||||
((VOID *)addr + CONFIG_HV_RAM_SIZE + MBOOT_MMAP_SIZE + MBOOT_INFO_SIZE))
|
||||
((struct multiboot_mmap *)((VOID *)(addr)))
|
||||
#define MBOOT_INFO_PTR(addr) \
|
||||
((struct multiboot_info *)((VOID *)(addr) + MBOOT_MMAP_SIZE))
|
||||
#define BOOT_CTX_PTR(addr) \
|
||||
((struct efi_context *)((VOID *)(addr) + MBOOT_MMAP_SIZE + MBOOT_INFO_SIZE))
|
||||
|
||||
|
||||
struct efi_info {
|
||||
|
Reference in New Issue
Block a user