summaryrefslogtreecommitdiffstats
path: root/sys/arm/include
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2006-03-01 23:04:25 +0000
committercognet <cognet@FreeBSD.org>2006-03-01 23:04:25 +0000
commitdc462dee1c02c758f3e0a40bb1f3782608b73d16 (patch)
tree9a3f2b62ed9dc4a5c68f80d377b612e22015ea01 /sys/arm/include
parent64dd56c81dc47fb507c9c5918ab298e109d5f919 (diff)
downloadFreeBSD-src-dc462dee1c02c758f3e0a40bb1f3782608b73d16.zip
FreeBSD-src-dc462dee1c02c758f3e0a40bb1f3782608b73d16.tar.gz
Try to honor BUS_DMA_COHERENT : if the flag is set, normally allocate memory
with malloc() or contigmalloc() as usual, but try to re-map the allocated memory into a VA outside the KVA, non-cached, thus making the calls to bus_dmamap_sync() for these buffers useless.
Diffstat (limited to 'sys/arm/include')
-rw-r--r--sys/arm/include/pmap.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/arm/include/pmap.h b/sys/arm/include/pmap.h
index fc85ef0..06f6f7c 100644
--- a/sys/arm/include/pmap.h
+++ b/sys/arm/include/pmap.h
@@ -210,6 +210,7 @@ extern vm_offset_t virtual_end;
void pmap_bootstrap(vm_offset_t, vm_offset_t, struct pv_addr *);
void pmap_kenter(vm_offset_t va, vm_paddr_t pa);
+void pmap_kenter_nocache(vm_offset_t va, vm_paddr_t pa);
void pmap_kenter_user(vm_offset_t va, vm_paddr_t pa);
void pmap_kremove(vm_offset_t);
void *pmap_mapdev(vm_offset_t, vm_size_t);
@@ -525,6 +526,12 @@ struct arm_small_page {
};
#endif
+
+#define ARM_NOCACHE_KVA_SIZE 0x600000
+extern vm_offset_t arm_nocache_startaddr;
+void *arm_remap_nocache(void *, vm_size_t);
+void arm_unmap_nocache(void *, vm_size_t);
+
extern vm_paddr_t dump_avail[];
#endif /* _KERNEL */
OpenPOWER on IntegriCloud