Index: sys/arch/evbarm/fdt/fdt_machdep.c =================================================================== RCS file: /cvsroot/src/sys/arch/evbarm/fdt/fdt_machdep.c,v retrieving revision 1.83 diff -u -p -r1.83 fdt_machdep.c --- sys/arch/evbarm/fdt/fdt_machdep.c 12 Dec 2020 09:27:31 -0000 1.83 +++ sys/arch/evbarm/fdt/fdt_machdep.c 17 Dec 2020 10:29:31 -0000 @@ -474,9 +474,11 @@ fdt_map_efi_runtime(const char *prop, en while (len >= 24) { const paddr_t pa = be64toh(map[0]); const vaddr_t va = be64toh(map[1]); - const uint64_t sz = be64toh(map[2]); - VPRINTF("%s: %s %lx-%lx (%lx-%lx)\n", __func__, prop, pa, pa+sz-1, va, va+sz-1); - arm_efirt_md_map_range(va, pa, sz, type); + const vsize_t sz = be64toh(map[2]); + VPRINTF("%s: %s %" PRIxPADDR "-%" PRIxVADDR "(%" PRIxVADDR + "-%" PRIxVSIZE "\n", __func__, prop, pa, pa + sz - 1, + va, va + sz - 1); + arm_efirt_map_range(va, pa, sz, type); map += 3; len -= 24; } @@ -611,12 +613,6 @@ initarm(void *arg) VPRINTF("%s: fdt_build_bootconfig\n", __func__); fdt_build_bootconfig(memory_start, memory_end); -#ifdef EFI_RUNTIME - fdt_map_efi_runtime("netbsd,uefi-runtime-code", ARM_EFIRT_MEM_CODE); - fdt_map_efi_runtime("netbsd,uefi-runtime-data", ARM_EFIRT_MEM_DATA); - fdt_map_efi_runtime("netbsd,uefi-runtime-mmio", ARM_EFIRT_MEM_MMIO); -#endif - /* Perform PT build and VM init */ cpu_kernel_vm_init(memory_start, memory_size); @@ -625,11 +621,18 @@ initarm(void *arg) parse_mi_bootargs(boot_args); VPRINTF("Memory regions:\n"); + /* Populate fdt_physmem / nfdt_physmem for iniarm_common */ fdt_memory_foreach(fdt_add_boot_physmem, &memory_size); vaddr_t sp = initarm_common(KERNEL_VM_BASE, KERNEL_VM_SIZE, fdt_physmem, nfdt_physmem); +#ifdef EFI_RUNTIME + fdt_map_efi_runtime("netbsd,uefi-runtime-code", ARM_EFIRT_MEM_CODE); + fdt_map_efi_runtime("netbsd,uefi-runtime-data", ARM_EFIRT_MEM_DATA); + fdt_map_efi_runtime("netbsd,uefi-runtime-mmio", ARM_EFIRT_MEM_MMIO); +#endif + /* * initarm_common flushes cache if required before AP start */