As stated in the title, getting the EFI Memory Map in a UEFI bootloader is yielding no sections of EFIConventionalMemory. If I'm not mistaken, this should be the majority of the memory?
It is returning this on both QEMU and on real hardware. Setting QEMU to have 2GB RAM causes a memory segment of ACPIReclaimMemory to be made up of most of this memory (2009MB of ACPI reclaimable) which seems absurd to me. Is this the intended behaviour or is there something wrong?
Thanks.
Edit: this is the type list that I'm using
const char* EFI_MEMORY_TYPE_STRINGS[] {
"EfiReservedMemoryType",
"EfiRuntimeServicesCode",
"EfiRuntimeServicesData",
"EfiMemoryMappedIO",
"EfiMemoryMappedIOPortSpace",
"EfiPalCode",
"EfiUnusableMemory",
"EfiACPIReclaimMemory",
"EfiLoaderCode",
"EfiLoaderData",
"EfiBootServicesCode",
"EfiBootServicesData",
"EfiConventionalMemory",
"EfiACPIMemoryNVS"
};
The memory type list was incorrect. Here is the correct EFI_MEMORY_TYPE_STRINGS:
const char* EFI_MEMORY_TYPE_STRINGS[] {
"EfiReservedMemoryType",
"EfiLoaderCode",
"EfiLoaderData",
"EfiBootServicesCode",
"EfiBootServicesData",
"EfiRuntimeServicesCode",
"EfiRuntimeServicesData",
"EfiConventionalMemory",
"EfiUnusableMemory",
"EfiACPIReclaimMemory",
"EfiACPIMemoryNVS",
"EfiMemoryMappedIO",
"EfiMemoryMappedIOPortSpace",
"EfiPalCode",
};
Thanks everyone for your help