Home | History | Annotate | Download | only in ixp12x0
History log of /src/sys/arch/arm/ixp12x0/ixp12x0_pci_dma.c
RevisionDateAuthorComments
 1.10  27-Sep-2022  skrll Remove unnecessary sys/malloc.h include
 1.9  18-Sep-2012  matt Add bounce buffer support for ARM bus_dma(9). Add macros to help initialize
bus_dma_tag structures.
 1.8  01-Jul-2011  dyoung branches: 1.8.2; 1.8.12;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.7  21-Oct-2009  rmind Drop 3rd and 4th clauses from Ichiro FUKUHARA's license.
Reviewed and approved by ichiro@ (copyright holder).
 1.6  25-Mar-2003  igy branches: 1.6.110;
Add __KERNEL_RCSID tags
 1.5  17-Feb-2003  ichiro files.ixp12x0
no need device ixpcom in evbarm/conf/files.evbarm move it to
arm/ixp12x0/files.ixp12x0

ixp12x0_com.c:
some fix around address handling
1. Do not call bus_space_map() in ixpcominit(). Calling bus_space_map()
is not safe here, because bus_space_map() calls uvm_km_valloc() but
uvm is not yet initialized.
2. Use dv_unit to determine console instead comparering iobase.
Now you can attach ixpcom0 with physical address like this:
ixpcom* at ixpsip? addr 0x90000000 size 0x4000
Statically mapped address (0xf0000000) is still usable.

ixp12x0_clk:
1. access PLL_CFG register via bus_space
2. Make the delay() working correctly. (bug fix)
3. Start the timer device without interrupt on attach time.
Now delay() called before cpu_initclocks() works fine.

ixp12x0_pci:
1.Mapping PCI type0/1 configuration space to the upper address.
2."PCI I/O Cycle Access" mapping to same virtual address(VA==PA)
but size of this mapping increase to 1MByte because fails
cause couldnt set L2 table.
3.use bus_space address handling in ixp12x0_pci.c.
 1.4  09-Oct-2002  thorpej Need ixp12x0var.h
CVS ----------------------------------------------------------------------
 1.3  17-Aug-2002  thorpej branches: 1.3.2; 1.3.4;
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.2  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.1  15-Jul-2002  ichiro branches: 1.1.2;
add support for ixp12x0
 1.1.2.3  30-Aug-2002  gehenna catch up with -current.
 1.1.2.2  21-Jul-2002  gehenna catch up with -current.
 1.1.2.1  15-Jul-2002  gehenna file ixp12x0_pci_dma.c was added on branch gehenna-devsw on 2002-07-21 13:00:31 +0000
 1.3.4.2  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.3.4.1  17-Aug-2002  jdolecek file ixp12x0_pci_dma.c was added on branch kqueue on 2002-09-06 08:32:55 +0000
 1.3.2.2  18-Oct-2002  nathanw Catch up to -current.
 1.3.2.1  17-Aug-2002  nathanw file ixp12x0_pci_dma.c was added on branch nathanw_sa on 2002-10-18 02:35:37 +0000
 1.6.110.1  11-Mar-2010  yamt sync with head
 1.8.12.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.8.2.1  30-Oct-2012  yamt sync with head

RSS XML Feed