diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2018-01-12 14:52:56 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2018-01-12 14:52:56 +0000 |
commit | 0f1cadf15efe4fc26d76a8c420336348f8a89191 (patch) | |
tree | 031d2f0185ae88f27a15e7a4f411f0d6fb8ed526 /sys/arch/arm64/include | |
parent | fcf94eaf86dc8abcda80fcf777d44b44314dc86c (diff) |
Runtime services may (and do) use device mappings on some UEFI implementations.
Skip these mappings during the remap-pahse as they are likely to be in
a different 512G bloch as memory and SetVirtualAddressMap() shouldn't need
them. But do assign a new virtual address and let efi(4) create a mapping.
Add a PMAP_DEVICE flag such that pmap_enter() can continue to be used
to create these mappings.
ok patrick@
Diffstat (limited to 'sys/arch/arm64/include')
-rw-r--r-- | sys/arch/arm64/include/pmap.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/arch/arm64/include/pmap.h b/sys/arch/arm64/include/pmap.h index 0c16ae9eaaf..62dc6bfd246 100644 --- a/sys/arch/arm64/include/pmap.h +++ b/sys/arch/arm64/include/pmap.h @@ -1,4 +1,4 @@ -/* $OpenBSD: pmap.h,v 1.8 2018/01/04 14:30:08 kettenis Exp $ */ +/* $OpenBSD: pmap.h,v 1.9 2018/01/12 14:52:55 kettenis Exp $ */ /* * Copyright (c) 2008,2009,2014 Dale Rahn <drahn@dalerahn.com> * @@ -19,8 +19,9 @@ #include <arm64/pte.h> -#define PMAP_PA_MASK ~((paddr_t)PAGE_MASK) /* to remove the flags */ +#define PMAP_PA_MASK ~((paddr_t)PAGE_MASK) /* to remove the flags */ #define PMAP_NOCACHE 0x1 /* non-cacheable memory */ +#define PMAP_DEVICE 0x2 /* device memory */ typedef struct pmap *pmap_t; @@ -87,6 +88,7 @@ vaddr_t pmap_bootstrap(long kvo, paddr_t lpt1, long kernelstart, long kernelend, long ram_start, long ram_end); void pmap_page_ro(pmap_t pm, vaddr_t va, vm_prot_t prot); +paddr_t pmap_steal_avail(size_t size, int align, void **kva); void pmap_avail_fixup(); void pmap_physload_avail(); |