diff options
author | Ian Moffett <ian@osmora.org> | 2025-06-19 12:34:12 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-06-19 12:34:12 -0400 |
commit | 4a45078c01dc83e95f70b65d244c388ec62c0b98 (patch) | |
tree | 394e7426b094629e61d7d3774e77d436fc554321 /sys | |
parent | 2755ec87c7dae278d1e0cecfb1dbad9ef931b4ee (diff) |
kernel: pmap: Add arch-shared pmap_init() routine
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/aarch64/aarch64/pmap.c | 12 | ||||
-rw-r--r-- | sys/arch/amd64/amd64/pmap.c | 6 | ||||
-rw-r--r-- | sys/include/vm/pmap.h | 5 | ||||
-rw-r--r-- | sys/vm/vm_init.c | 1 |
4 files changed, 24 insertions, 0 deletions
diff --git a/sys/arch/aarch64/aarch64/pmap.c b/sys/arch/aarch64/aarch64/pmap.c index 7e93959..d8f298b 100644 --- a/sys/arch/aarch64/aarch64/pmap.c +++ b/sys/arch/aarch64/aarch64/pmap.c @@ -87,3 +87,15 @@ pmap_set_cache(struct vas vas, vaddr_t va, int type) /* TODO: STUB */ return 0; } + +int +pmap_init(void) +{ + uint64_t mair; + + mair = MT_ATTR(MT_NORMAL, MEM_NORMAL) | + MT_ATTR(MT_NORMAL_UC, MEM_NORMAL_UC) | + MT_ATTR(MT_DEVICE, MEM_DEV_NGNRNE); + mair_el1_write(mair); + return 0; +} diff --git a/sys/arch/amd64/amd64/pmap.c b/sys/arch/amd64/amd64/pmap.c index 8193838..325ce51 100644 --- a/sys/arch/amd64/amd64/pmap.c +++ b/sys/arch/amd64/amd64/pmap.c @@ -344,3 +344,9 @@ pmap_mark_clean(struct vas vas, vaddr_t va) __invlpg(va); } } + +int +pmap_init(void) +{ + return 0; +} diff --git a/sys/include/vm/pmap.h b/sys/include/vm/pmap.h index e1f3f89..e0549d4 100644 --- a/sys/include/vm/pmap.h +++ b/sys/include/vm/pmap.h @@ -92,4 +92,9 @@ void pmap_mark_clean(struct vas vas, vaddr_t va); */ int pmap_set_cache(struct vas vas, vaddr_t va, int type); +/* + * Machine dependent pmap init code. + */ +int pmap_init(void); + #endif /* !_VM_PMAP_H_ */ diff --git a/sys/vm/vm_init.c b/sys/vm/vm_init.c index 2846a69..7518838 100644 --- a/sys/vm/vm_init.c +++ b/sys/vm/vm_init.c @@ -56,6 +56,7 @@ vm_init(void) void *pool; vm_physmem_init(); + pmap_init(); g_kvas = pmap_read_vas(); vm_ctx.dynalloc_pool_sz = DYNALLOC_POOL_SZ; |