diff --git a/src/system/boot/platform/efi/arch/arm/arch_start.cpp b/src/system/boot/platform/efi/arch/arm/arch_start.cpp index e6ea75b8e4..b43e5029d1 100644 --- a/src/system/boot/platform/efi/arch/arm/arch_start.cpp +++ b/src/system/boot/platform/efi/arch/arm/arch_start.cpp @@ -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.