History log of /src/sys/arch/evbarm/integrator/int_bus_dma.c |
Revision | | Date | Author | Comments |
1.19 |
| 20-Dec-2023 |
thorpej | Remove unnecessary <sys/malloc.h>.
|
1.18 |
| 18-Sep-2012 |
matt | Remove bounce buffer support since there is now generic bounce buffer support
|
1.17 |
| 04-Nov-2010 |
uebayasi | branches: 1.17.8; 1.17.18; Fix DEBUG kernel build.
|
1.16 |
| 05-Mar-2007 |
matt | branches: 1.16.64; 1.16.66; Use uint8_t * instead of void */char * for ptr arithmetic.
|
1.15 |
| 04-Mar-2007 |
christos | Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
1.14 |
| 11-Dec-2005 |
christos | branches: 1.14.26; merge ktrace-lwp.
|
1.13 |
| 06-Sep-2003 |
rearnsha | branches: 1.13.16; Add bouncing support
|
1.12 |
| 15-Jul-2003 |
lukem | __KERNEL_RCSID()
|
1.11 |
| 17-Aug-2002 |
thorpej | branches: 1.11.6; Use separate function pointers for dmamap_sync pre- vs post- operations. Change the bus_dmamap_sync() macro to test the ops argument against pre- and post- constants. The compiler will optimize out dead code because of the constants. Since post- operations are not needed on ARM (except for ISA bounce buffers), this eliminate a large number of function calls which are noops, each of which cost at least 6 cycles just in the call and return overhead (not to mention whatever other useless work the compiler decides to do in the callee).
|
1.10 |
| 31-Jul-2002 |
thorpej | Overhaul how DMA ranges work in the ARM bus_dma implementation.
A new "arm32_dma_range" structure now describes a DMA window, with a system address base, bus address base, and length. In addition to providing info about which memory regions are legal for DMA, the new structure provides address translation support, as well.
As before, if a tag does not list any ranges, then all addresses are considered valid, and no DMA address translation is performed.
This allows us to remove a large chunk of code which was duplicated and tweaked slightly (to do the address translation) from the stock ARM bus_dma in the XScale IOP and ARM Integrator ports.
Test compiled on all ARM platforms, test booted on Intel IQ80321 and Shark.
|
1.9 |
| 28-Jul-2002 |
thorpej | Change the way that DMA map syncs are done. Instead of remembering the virtual address for each DMA segment, just cache a pointer to the original buffer/buftype used to load the DMA map, and use that. This lets us shrink the bus_dma_segment_t down from 12 bytes to 8, and the cache flushing is also more efficient.
Tested on an i80321 -- changes to others are mechanical.
|
1.8 |
| 02-Jun-2002 |
drochner | move initialization of the "struct pglist" returned by uvm_pglistalloc() from the calling code into uvm_pglistalloc() itself for consistency and easier error handling
|
1.7 |
| 05-Apr-2002 |
thorpej | branches: 1.7.2; 1.7.4; * Rewrite the 32-bit ARM pte.h based on the ARM architecture manual. Significant cleanup, here, including better PTE bit names. * Add XScale PTE extensions (ECC enable, write-allocate cache mode). * Mechanical changes everywhere else to update for new pte.h. While doing this, two bugs (as a result of typos) were fixed in
arm/arm32/bus_dma.c evbarm/integrator/int_bus_dma.c
|
1.6 |
| 24-Mar-2002 |
thorpej | * arm_byte_to_page() -> arm_btop() * arm_page_to_byte() -> arm_ptob()
|
1.5 |
| 25-Jan-2002 |
thorpej | Overhaul bus_dmamap_sync for the ARM: * Track which process (XXX really, vmspace) owns the mapping. When we sync the map, if the mapping doesn't belong to the kernel or to the current process (XXX really, vmspace), then no cache fobbing is necessary, since the cache is Wb-Inv'd on context switch (XXX need to revisit this when we support FCSE). * Be smarter about which cache operation we do when sync'ing the map: - PREREAD -- Invalidate D$ (XXX right now, we actually do Wb-Inv) - PREWRITE -- Write-back D$ (note, we do NOT invalidate here) - PREREAD|PREWRITE -- Wb-Inv D$
More work is needed here. In particular, a version for CPUs with write-through caches should be provided, to eliminate the write-back steps (which are noops on such CPUs, but skipping two branches would be nice).
|
1.4 |
| 25-Jan-2002 |
thorpej | Overhaul of the ARM cache code. This is mostly a simplification pass. Rather than providing a whole slew of cache operations that aren't ever used, distill them down to some useful primitives:
icache_sync_all Synchronize I-cache icache_sync_range Synchronize I-cache range
dcache_wbinv_all Write-back and Invalidate D-cache dcache_wbinv_range Write-back and Invalidate D-cache range dcache_inv_range Invalidate D-cache range dcache_wb_range Write-back D-cache range
idcache_wbinv_all Write-back and Invalidate D-cache, Invalidate I-cache idcache_wbinv_range Write-back and Invalidate D-cache, Invalidate I-cache range
Note: This does not yet include an overhaul of the actual asm files that implement the primitives. Instead, we've provided a safe default for each CPU type, and the individual CPU types can now be optimized one at a time.
|
1.3 |
| 26-Nov-2001 |
thorpej | branches: 1.3.2; Don't include <machine/psl.h> directly.
|
1.2 |
| 23-Nov-2001 |
thorpej | Use <arm/cpufunc.h>, not <machine/cpufunc.h>.
|
1.1 |
| 27-Oct-2001 |
rearnsha | branches: 1.1.2; Basic support for the Integrator/AP board.
|
1.1.2.8 |
| 19-Aug-2002 |
thorpej | Partial (ARM only) sync with trunk -- significant performance improvements for XScale-based systems.
|
1.1.2.7 |
| 01-Aug-2002 |
nathanw | Catch up to -current.
|
1.1.2.6 |
| 20-Jun-2002 |
nathanw | Catch up to -current.
|
1.1.2.5 |
| 17-Apr-2002 |
nathanw | Catch up to -current.
|
1.1.2.4 |
| 01-Apr-2002 |
nathanw | Catch up to -current. (CVS: It's not just a program. It's an adventure!)
|
1.1.2.3 |
| 28-Feb-2002 |
nathanw | Catch up to -current.
|
1.1.2.2 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.1.2.1 |
| 27-Oct-2001 |
nathanw | file int_bus_dma.c was added on branch nathanw_sa on 2002-01-08 00:24:26 +0000
|
1.3.2.5 |
| 06-Sep-2002 |
jdolecek | sync kqueue branch with HEAD
|
1.3.2.4 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
1.3.2.3 |
| 11-Feb-2002 |
jdolecek | Sync w/ -current.
|
1.3.2.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.3.2.1 |
| 26-Nov-2001 |
thorpej | file int_bus_dma.c was added on branch kqueue on 2002-01-10 19:42:32 +0000
|
1.7.4.1 |
| 07-Dec-2002 |
he | Pull up revision 1.9 (requested by thorpej in ticket #568): Change the way DMA map syncs are done. Instead of remembering the virtual address for each DMA segment, just cache a pointer to the original buffer/buftype used to load the DMA map, and use that. Shrinks bus_dma_segment_t from 12 to 8 bytes, and the cache flushing is also more efficient.
|
1.7.2.2 |
| 30-Aug-2002 |
gehenna | catch up with -current.
|
1.7.2.1 |
| 14-Jul-2002 |
gehenna | catch up with -current.
|
1.11.6.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.11.6.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.11.6.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.13.16.1 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.14.26.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.16.66.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.16.64.1 |
| 06-Nov-2010 |
uebayasi | Sync with HEAD.
|
1.17.18.1 |
| 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
1.17.8.1 |
| 30-Oct-2012 |
yamt | sync with head
|