mn-r740xd-55-1-1# sysctl machdep.efi_map machdep.efi_map: Type Physical Virtual #Pages Attr BootServicesCode 000000000000 0x0 00000001 UC WC WT WB ConventionalMemory 000000001000 0x0 0000000f UC WC WT WB BootServicesCode 000000010000 0x0 00000004 UC WC WT WB ConventionalMemory 000000014000 0x0 0000004e UC WC WT WB BootServicesCode 000000062000 0x0 0000002c UC WC WT WB ConventionalMemory 00000008e000 0x0 00000002 UC WC WT WB BootServicesCode 000000090000 0x0 00000010 UC WC WT WB ConventionalMemory 000000100000 0x0 00000b00 UC WC WT WB BootServicesCode 000000c00000 0x0 00000400 UC WC WT WB ConventionalMemory 000001000000 0x0 00020ffc UC WC WT WB LoaderData 000021ffc000 0x0 0001e004 UC WC WT WB ConventionalMemory 000040000000 0x0 00008300 UC WC WT WB BootServicesData 000048300000 0x0 00000100 UC WC WT WB ConventionalMemory 000048400000 0x0 00003c9c UC WC WT WB LoaderData 00004c09c000 0x0 00004000 UC WC WT WB LoaderCode 00005009c000 0x0 00000060 UC WC WT WB LoaderData 0000500fc000 0x0 00000059 UC WC WT WB LoaderCode 000050155000 0x0 0000001c UC WC WT WB BootServicesCode 000050171000 0x0 000002bc UC WC WT WB Reserved 00005042d000 0x0 00000177 UC WC WT WB BootServicesCode 0000505a4000 0x0 00001859 UC WC WT WB BootServicesData 000051dfd000 0x0 00000203 UC WC WT WB BootServicesCode 000052000000 0x0 00000200 UC WC WT WB BootServicesData 000052200000 0x0 00000202 UC WC WT WB BootServicesCode 000052402000 0x0 000001fe UC WC WT WB BootServicesData 000052600000 0x0 00000201 UC WC WT WB LoaderData 000052801000 0x0 00000001 UC WC WT WB BootServicesCode 000052802000 0x0 0000007f UC WC WT WB BootServicesData 000052881000 0x0 00000020 UC WC WT WB BootServicesCode 0000528a1000 0x0 00000087 UC WC WT WB BootServicesData 000052928000 0x0 00000261 UC WC WT WB BootServicesCode 000052b89000 0x0 0000000e UC WC WT WB BootServicesData 000052b97000 0x0 00003293 UC WC WT WB BootServicesCode 000055e2a000 0x0 00000037 UC WC WT WB BootServicesData 000055e61000 0x0 0000009f UC WC WT WB LoaderData 000055f00000 0x0 00000002 UC WC WT WB BootServicesCode 000055f02000 0x0 000003fd UC WC WT WB ConventionalMemory 0000562ff000 0x0 00009d09 UC WC WT WB BootServicesData 000060008000 0x0 000082f7 UC WC WT WB RuntimeServicesData 0000682ff000 0x682ff000 00000100 UC WC WT WB RUNTIME RuntimeServicesCode 0000683ff000 0x683ff000 00000800 UC WC WT WB RUNTIME Reserved 000068bff000 0x0 00006000 UC WC WT WB ACPIMemoryNVS 00006ebff000 0x0 00000e00 UC WC WT WB ACPIReclaimMemory 00006f9ff000 0x0 00000600 UC WC WT WB BootServicesData 00006ffff000 0x0 00000001 UC WC WT WB ConventionalMemory 000100000000 0x0 0b770000 UC WC WT WB Reserved 0000000a0000 0x0 00000060 Reserved 000070000000 0x0 00008000 Reserved 000078000000 0x0 00007c00 UC WB Reserved 00007fc00000 0x0 00000400 MemoryMappedIO 000080000000 0x80000000 00010000 UC RUNTIME MemoryMappedIO 0000fe000000 0xfe000000 00000011 UC RUNTIME PersistentMemory 00b870000000 0x0 00400000 SRAT: Ignoring memory at addr 0xb870000000 PHYS_AVAIL INITIAL: 0x0000000000010000 - 0x000000000009efff, 585728 bytes (143 pages) PHYS_AVAIL INITIAL: 0x0000000000100000 - 0x00000000001fffff, 1048576 bytes (256 pages) PHYS_AVAIL INITIAL: 0x0000000004f00000 - 0x000000005042cfff, 1263718400 bytes (308525 pages) PHYS_AVAIL INITIAL: 0x00000000505a7000 - 0x00000000682fefff, 399867904 bytes (97624 pages) PHYS_AVAIL INITIAL: 0x000000006ffff000 - 0x000000006fffffff, 4096 bytes (1 pages) PHYS_AVAIL INITIAL: 0x0000000100000000 - 0x000000b86ffbeffe, 787857797119 bytes (192348094 pages) EARLY_SEGS: 0x0000000000200000 to 0x0000000004c39000, 19001 pages Dom 0. EARLY_SEGS: 0x0000000004c42000 to 0x0000000004c8a000, 72 pages Dom 0. PHYSMAP[0]: 0x0000000000010000 to 0x000000000009f000. PHYSMAP[2]: 0x0000000000100000 to 0x000000005042d000. PHYSMAP[4]: 0x00000000505a7000 to 0x00000000682ff000. PHYSMAP[6]: 0x000000006ffff000 to 0x0000000070000000. PHYSMAP[8]: 0x0000000100000000 to 0x000000b870000000. PHYS_AVAIL POST EARLY STARTUP: 0x0000000000010000 - 0x000000000009efff, 585728 bytes (143 pages) PHYS_AVAIL POST EARLY STARTUP: 0x0000000000100000 - 0x00000000001fffff, 1048576 bytes (256 pages) PHYS_AVAIL POST EARLY STARTUP: 0x0000000004f00000 - 0x000000005042cfff, 1263718400 bytes (308525 pages) PHYS_AVAIL POST EARLY STARTUP: 0x00000000505a7000 - 0x00000000682fefff, 399867904 bytes (97624 pages) PHYS_AVAIL POST EARLY STARTUP: 0x000000006ffff000 - 0x000000006fffffff, 4096 bytes (1 pages) PHYS_AVAIL POST EARLY STARTUP: 0x0000000100000000 - 0x000000606fffffff, 409900941312 bytes (100073472 pages) PHYS_AVAIL POST EARLY STARTUP: 0x0000006070000000 - 0x000000906fffffff, 206158430208 bytes (50331648 pages) PHYS_AVAIL POST EARLY STARTUP: 0x0000009070000000 - 0x000000b06fffffff, 137438953472 bytes (33554432 pages) PHYS_AVAIL POST EARLY STARTUP: 0x000000b070000000 - 0x000000b86ffbdfff, 34359468032 bytes (8388542 pages) SEGS: 0x0000000000200000 to 0x0000000001000000, 3584 pages Dom 0. SEGS: 0x0000000001000000 to 0x0000000004c39000, 15417 pages Dom 0. SEGS: 0x0000000004c42000 to 0x0000000004c8a000, 72 pages Dom 0. PHYSMAP[0]: 0x0000000000010000 to 0x000000000009f000. PHYSMAP[2]: 0x0000000000100000 to 0x000000005042d000. PHYSMAP[4]: 0x00000000505a7000 to 0x00000000682ff000. PHYSMAP[6]: 0x000000006ffff000 to 0x0000000070000000. PHYSMAP[8]: 0x0000000100000000 to 0x000000b870000000. PHYS_AVAIL PRE PHYS_INIT: 0x0000000000010000 - 0x000000000009efff, 585728 bytes (143 pages) PHYS_AVAIL PRE PHYS_INIT: 0x0000000000100000 - 0x00000000001fffff, 1048576 bytes (256 pages) PHYS_AVAIL PRE PHYS_INIT: 0x0000000004f00000 - 0x000000005042cfff, 1263718400 bytes (308525 pages) PHYS_AVAIL PRE PHYS_INIT: 0x00000000505a7000 - 0x00000000682fefff, 399867904 bytes (97624 pages) PHYS_AVAIL PRE PHYS_INIT: 0x000000006ffff000 - 0x000000006fffffff, 4096 bytes (1 pages) PHYS_AVAIL PRE PHYS_INIT: 0x000000010000b000 - 0x0000005dc7c5cfff, 398488576000 bytes (97287250 pages) PHYS_AVAIL PRE PHYS_INIT: 0x000000606e800000 - 0x000000606e8f1fff, 991232 bytes (242 pages) PHYS_AVAIL PRE PHYS_INIT: 0x000000607000a000 - 0x0000008e07ffffff, 195823624192 bytes (47808502 pages) PHYS_AVAIL PRE PHYS_INIT: 0x0000009070000000 - 0x000000b06fffffff, 137438953472 bytes (33554432 pages) PHYS_AVAIL PRE PHYS_INIT: 0x000000b070000000 - 0x000000b86ffbdfff, 34359468032 bytes (8388542 pages) SEGS: 0x0000000000010000 to 0x000000000009f000, 143 pages Dom 0. SEGS: 0x0000000000100000 to 0x0000000000200000, 256 pages Dom 0. SEGS: 0x0000000000200000 to 0x0000000001000000, 3584 pages Dom 0. SEGS: 0x0000000001000000 to 0x0000000004c39000, 15417 pages Dom 0. SEGS: 0x0000000004c42000 to 0x0000000004c8a000, 72 pages Dom 0. SEGS: 0x0000000004f00000 to 0x000000005042d000, 308525 pages Dom 0. SEGS: 0x00000000505a7000 to 0x00000000682ff000, 97624 pages Dom 0. SEGS: 0x000000006ffff000 to 0x0000000070000000, 1 pages Dom 0. SEGS: 0x000000010000b000 to 0x0000005dc7c5d000, 97287250 pages Dom 0. SEGS: 0x000000606e800000 to 0x000000606e8f2000, 242 pages Dom 0. SEGS: 0x000000607000a000 to 0x0000008e08000000, 47808502 pages Dom 1. SEGS: 0x0000009070000000 to 0x000000b070000000, 33554432 pages Dom 1. SEGS: 0x000000b070000000 to 0x000000b86ffbe000, 8388542 pages Dom 1. PHYSMAP[0]: 0x0000000000010000 to 0x000000000009f000. PHYSMAP[2]: 0x0000000000100000 to 0x000000005042d000. PHYSMAP[4]: 0x00000000505a7000 to 0x00000000682ff000. PHYSMAP[6]: 0x000000006ffff000 to 0x0000000070000000. PHYSMAP[8]: 0x0000000100000000 to 0x000000b870000000. PHYS_AVAIL AFTER PHYS_INIT: 0x0000000000010000 - 0x000000000009efff, 585728 bytes (143 pages) PHYS_AVAIL AFTER PHYS_INIT: 0x0000000000100000 - 0x00000000001fffff, 1048576 bytes (256 pages) PHYS_AVAIL AFTER PHYS_INIT: 0x0000000004f00000 - 0x000000005042cfff, 1263718400 bytes (308525 pages) PHYS_AVAIL AFTER PHYS_INIT: 0x00000000505a7000 - 0x00000000682fefff, 399867904 bytes (97624 pages) PHYS_AVAIL AFTER PHYS_INIT: 0x000000006ffff000 - 0x000000006fffffff, 4096 bytes (1 pages) PHYS_AVAIL AFTER PHYS_INIT: 0x000000010000b000 - 0x0000005dc7c5cfff, 398488576000 bytes (97287250 pages) PHYS_AVAIL AFTER PHYS_INIT: 0x000000606e800000 - 0x000000606e8f1fff, 991232 bytes (242 pages) PHYS_AVAIL AFTER PHYS_INIT: 0x000000607000a000 - 0x0000008e07ffffff, 195823624192 bytes (47808502 pages) PHYS_AVAIL AFTER PHYS_INIT: 0x0000009070000000 - 0x000000b06fffffff, 137438953472 bytes (33554432 pages) PHYS_AVAIL AFTER PHYS_INIT: 0x000000b070000000 - 0x000000b86ffbdfff, 34359468032 bytes (8388542 pages) SEGS: 0x0000000000010000 to 0x000000000009f000, 143 pages Dom 0. SEGS: 0x0000000000100000 to 0x0000000001000000, 3840 pages Dom 0. SEGS: 0x0000000001000000 to 0x0000000004c39000, 15417 pages Dom 0. SEGS: 0x0000000004c42000 to 0x0000000004c8a000, 72 pages Dom 0. SEGS: 0x0000000004f00000 to 0x000000005042d000, 308525 pages Dom 0. SEGS: 0x00000000505a7000 to 0x00000000682ff000, 97624 pages Dom 0. SEGS: 0x000000006ffff000 to 0x0000000070000000, 1 pages Dom 0. SEGS: 0x000000010000b000 to 0x0000005dc7c5d000, 97287250 pages Dom 0. SEGS: 0x000000606e800000 to 0x000000606e8f2000, 242 pages Dom 0. SEGS: 0x000000607000a000 to 0x0000008e08000000, 47808502 pages Dom 1. SEGS: 0x0000009070000000 to 0x000000b86ffbe000, 41942974 pages Dom 1. PHYSMAP[0]: 0x0000000000010000 to 0x000000000009f000. PHYSMAP[2]: 0x0000000000100000 to 0x000000005042d000. PHYSMAP[4]: 0x00000000505a7000 to 0x00000000682ff000. PHYSMAP[6]: 0x000000006ffff000 to 0x0000000070000000. PHYSMAP[8]: 0x0000000100000000 to 0x000000b870000000. The print groups were added at: 1) The beginning of vm_page_startup() [INITIAL] 2) After "end = phys_avail[biggestone+1];" after vm_phys_early_startup() [POST EARLY STARTUP] 3) Just before vm_phys_init() invocation [PRE PHYS_INIT] 4) Just after vm_phys_init() invocation [AFTER PHYS_INIT] If it matters, or you find it weird -- here is the typical print blob (obviously string constant can change): for (i = 0; phys_avail[i + 1] != 0; i += 2) { if (vm_phys_avail_size(i) != 0) { vm_paddr_t size; size = phys_avail[i + 1] - phys_avail[i]; printf("PHYS_AVAIL AFTER PHYS_INIT: 0x%016jx - 0x%016jx," " %ju bytes (%ju pages)\n", (uintmax_t)phys_avail[i], (uintmax_t)phys_avail[i + 1] - 1, (uintmax_t)size, (uintmax_t)size / PAGE_SIZE); } } vm_phys_early_print_segs(); for (i = 0; i < vm_phys_nsegs; i++) { seg = &vm_phys_segs[i]; printf("SEGS: 0x%016jx to 0x%016jx, %ju pages Dom %d.\n", (uintmax_t)seg->start, (uintmax_t)seg->end, ((uintmax_t)(seg->end - seg->start) / PAGE_SIZE), seg->domain); } print_physmap(); Where the helper functions are in vm_phys.c and amd64/machdep.c: static vm_paddr_t physmap[PHYS_AVAIL_ENTRIES]; void print_physmap(void) { int i; for (i = 0; physmap[i] != 0; i+= 2) { printf("PHYSMAP[%d]: 0x%016jx to 0x%016jx.\n", i, physmap[i], physmap[i+1]); } } void vm_phys_early_print_segs(void) { int i; struct vm_phys_seg *seg; for (i = 0; i < vm_phys_early_nsegs; i++) { seg = &vm_phys_early_segs[i]; printf("EARLY_SEGS: 0x%016jx to 0x%016jx, %ju pages Dom %d.\n", seg->start, seg->end, ((uintmax_t)(seg->end - seg->start) / PAGE_SIZE), seg->domain); } }