boot/efi: better logging for system memory map

Change-Id: Ie35061f5c80f8b82071bbbf6fdaa006aca50a8a2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4651
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
David Karoly
2021-10-24 09:04:55 +00:00
committed by Adrien Destugues
parent 286a9c991c
commit 5ac73692f2
@@ -24,6 +24,46 @@ extern uint32_t arch_mmu_generate_post_efi_page_tables(size_t memory_map_size,
uint32_t descriptor_version);
static const char*
memory_region_type_str(int type)
{
switch (type) {
case EfiReservedMemoryType:
return "ReservedMemoryType";
case EfiLoaderCode:
return "LoaderCode";
case EfiLoaderData:
return "LoaderData";
case EfiBootServicesCode:
return "BootServicesCode";
case EfiBootServicesData:
return "BootServicesData";
case EfiRuntimeServicesCode:
return "RuntimeServicesCode";
case EfiRuntimeServicesData:
return "RuntimeServicesData";
case EfiConventionalMemory:
return "ConventionalMemory";
case EfiUnusableMemory:
return "UnusableMemory";
case EfiACPIReclaimMemory:
return "ACPIReclaimMemory";
case EfiACPIMemoryNVS:
return "ACPIMemoryNVS";
case EfiMemoryMappedIO:
return "MMIO";
case EfiMemoryMappedIOPortSpace:
return "MMIOPortSpace";
case EfiPalCode:
return "PalCode";
case EfiPersistentMemory:
return "PersistentMemory";
default:
return "unknown";
}
}
void
arch_start_kernel(addr_t kernelEntry)
{
@@ -62,9 +102,13 @@ arch_start_kernel(addr_t kernelEntry)
for (size_t i = 0; i < memory_map_size / descriptor_size; ++i) {
efi_memory_descriptor *entry
= (efi_memory_descriptor *)(addr + i * descriptor_size);
dprintf(" %#lx-%#lx %#lx %#x %#lx\n", entry->PhysicalStart,
dprintf(" phys: 0x%08llx-0x%08llx, virt: 0x%08llx-0x%08llx, type: %s (%#x), attr: %#llx\n",
entry->PhysicalStart,
entry->PhysicalStart + entry->NumberOfPages * B_PAGE_SIZE,
entry->VirtualStart, entry->Type, entry->Attribute);
entry->VirtualStart,
entry->VirtualStart + entry->NumberOfPages * B_PAGE_SIZE,
memory_region_type_str(entry->Type), entry->Type,
entry->Attribute);
}
// Generate page tables for use after ExitBootServices.