Index: arch/arm64/arm64/machdep.c =================================================================== RCS file: /cvs/src/sys/arch/arm64/arm64/machdep.c,v retrieving revision 1.79 diff -u -p -r1.79 machdep.c --- arch/arm64/arm64/machdep.c 9 Jan 2023 20:32:21 -0000 1.79 +++ arch/arm64/arm64/machdep.c 14 Mar 2023 22:51:10 -0000 @@ -1041,6 +1041,22 @@ initarm(struct arm64_bootparams *abp) } } + /* Remove reserved memory. */ + node = fdt_find_node("/reserved-memory"); + if (node) { + for (node = fdt_child_node(node); node; + node = fdt_next_node(node)) { + char *no_map; + if (fdt_node_property(node, "no-map", &no_map) < 0) + continue; + if (fdt_get_reg(node, 0, ®)) + continue; + if (reg.size == 0) + continue; + memreg_remove(®); + } + } + /* Remove the initial 64MB block. */ reg.addr = memstart; reg.size = memend - memstart; Index: arch/riscv64/riscv64/machdep.c =================================================================== RCS file: /cvs/src/sys/arch/riscv64/riscv64/machdep.c,v retrieving revision 1.30 diff -u -p -r1.30 machdep.c --- arch/riscv64/riscv64/machdep.c 6 Dec 2022 00:11:23 -0000 1.30 +++ arch/riscv64/riscv64/machdep.c 14 Mar 2023 22:51:10 -0000 @@ -802,6 +802,9 @@ initriscv(struct riscv_bootparams *rbp) if (node) { for (node = fdt_child_node(node); node; node = fdt_next_node(node)) { + char *no_map; + if (fdt_node_property(node, "no-map", &no_map) < 0) + continue; if (fdt_get_reg(node, 0, ®)) continue; if (reg.size == 0)