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:
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);
|
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
|
void
|
||||||
arch_start_kernel(addr_t kernelEntry)
|
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) {
|
for (size_t i = 0; i < memory_map_size / descriptor_size; ++i) {
|
||||||
efi_memory_descriptor *entry
|
efi_memory_descriptor *entry
|
||||||
= (efi_memory_descriptor *)(addr + i * descriptor_size);
|
= (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->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.
|
// Generate page tables for use after ExitBootServices.
|
||||||
|
|||||||
Reference in New Issue
Block a user