aboutsummaryrefslogtreecommitdiff
path: root/common/pmem.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-12-30 20:48:26 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2021-12-30 20:48:26 +0200
commit6f052e236715846b1a14f9fe59f89346efb809e6 (patch)
treec1bbca5a063c428f65c46b34aaf4dbf47e61c213 /common/pmem.c
parent4f4d9fdc89c27aa3346467a24b621954f4564d3b (diff)
downloadkmi-6f052e236715846b1a14f9fe59f89346efb809e6.tar.gz
kmi-6f052e236715846b1a14f9fe59f89346efb809e6.zip
Add initial version of device memory mapping
Diffstat (limited to 'common/pmem.c')
-rw-r--r--common/pmem.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/common/pmem.c b/common/pmem.c
index d9cdd50..c919204 100644
--- a/common/pmem.c
+++ b/common/pmem.c
@@ -1,4 +1,5 @@
#include <apos/pmem.h>
+#include <apos/dev.h>
#include <apos/debug.h>
#include <apos/initrd.h>
#include <apos/string.h> /* memset */
@@ -72,6 +73,7 @@ static void __mark_free(mm_node_t * op, pnum_t pnum, enum mm_order tgt,
__clear_nbit(o->full[__o_container(idx)], __o_bit(idx));
}
+/* this could probably use an int for status, but eh */
void free_page(enum mm_order order, pm_t paddr)
{
for (size_t i = MM_O0; i <= __mm_max_order; ++i) {
@@ -443,4 +445,6 @@ void init_pmem(void *fdt)
/* mark reserved mem */
mark_reserved_mem(fdt);
+
+ init_devmem((pm_t)__pa(ram_base), (pm_t)__pa(ram_base + ram_size));
}