diff options
author | cognet <cognet@FreeBSD.org> | 2006-03-01 23:04:25 +0000 |
---|---|---|
committer | cognet <cognet@FreeBSD.org> | 2006-03-01 23:04:25 +0000 |
commit | dc462dee1c02c758f3e0a40bb1f3782608b73d16 (patch) | |
tree | 9a3f2b62ed9dc4a5c68f80d377b612e22015ea01 /sys/arm/include | |
parent | 64dd56c81dc47fb507c9c5918ab298e109d5f919 (diff) | |
download | FreeBSD-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.h | 7 |
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 */ |