Page MenuHomeFreeBSD

D32445.id.diff
No OneTemporary

D32445.id.diff

diff --git a/sys/kern/subr_devmap.c b/sys/kern/subr_devmap.c
--- a/sys/kern/subr_devmap.c
+++ b/sys/kern/subr_devmap.c
@@ -290,7 +290,7 @@
return ((void *)(va + offset));
}
-#if defined(__aarch64__)
+#if defined(__aarch64__) || defined(__riscv)
void *
pmap_mapdev_attr(vm_offset_t pa, vm_size_t size, vm_memattr_t ma)
{
diff --git a/sys/riscv/include/pmap.h b/sys/riscv/include/pmap.h
--- a/sys/riscv/include/pmap.h
+++ b/sys/riscv/include/pmap.h
@@ -145,10 +145,12 @@
void pmap_activate_sw(struct thread *);
void pmap_bootstrap(vm_offset_t, vm_paddr_t, vm_size_t);
int pmap_change_attr(vm_offset_t va, vm_size_t size, int mode);
+void pmap_kenter(vm_offset_t sva, vm_size_t size, vm_paddr_t pa, int mode);
void pmap_kenter_device(vm_offset_t, vm_size_t, vm_paddr_t);
vm_paddr_t pmap_kextract(vm_offset_t va);
void pmap_kremove(vm_offset_t);
void pmap_kremove_device(vm_offset_t, vm_size_t);
+void *pmap_mapdev_attr(vm_offset_t pa, vm_size_t size, vm_memattr_t ma);
bool pmap_page_is_mapped(vm_page_t m);
bool pmap_ps_enabled(pmap_t);
diff --git a/sys/riscv/riscv/pmap.c b/sys/riscv/riscv/pmap.c
--- a/sys/riscv/riscv/pmap.c
+++ b/sys/riscv/riscv/pmap.c
@@ -916,7 +916,7 @@
***************************************************/
void
-pmap_kenter_device(vm_offset_t sva, vm_size_t size, vm_paddr_t pa)
+pmap_kenter(vm_offset_t sva, vm_size_t size, vm_paddr_t pa, int mode __unused)
{
pt_entry_t entry;
pt_entry_t *l3;
@@ -947,6 +947,12 @@
pmap_invalidate_range(kernel_pmap, sva, va);
}
+void
+pmap_kenter_device(vm_offset_t sva, vm_size_t size, vm_paddr_t pa)
+{
+ pmap_kenter(sva, size, pa, VM_MEMATTR_DEVICE);
+}
+
/*
* Remove a page from the kernel pagetables.
* Note: not SMP coherent.

File Metadata

Mime Type
text/plain
Expires
Tue, Sep 24, 12:07 AM (16 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
12606853
Default Alt Text
D32445.id.diff (1 KB)

Event Timeline