| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D10201
Notes:
svn path=/head/; revision=332469
|
|
|
|
|
|
|
| |
Sponsored by: DARPA, AFRL
Notes:
svn path=/head/; revision=332468
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o Move descriptors allocation to DMA engine driver
o Add generic xdma_request() routine
o Add less-generic scatter-gather application based on xdma interface
Typical operation flow in peripheral device driver is:
1. Get xDMA controller
sc->xdma_tx = xdma_ofw_get(sc->dev, "tx");
2. Allocate virtual channel
sc->xchan_tx = xdma_channel_alloc(sc->xdma_tx, caps);
3. Setup transfer status callback
xdma_setup_intr(sc->xchan_tx, my_tx_intr, sc, &sc->ih_tx);
4. Request a transfer(s)
ret = xdma_request(sc->xchan_tx, &req);
5. Free the channel
xdma_channel_free(sc->xdma_tx);
6. Free the controller
xdma_put(sc->xdma_tx);
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14971
Notes:
svn path=/head/; revision=332435
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--Remove special-case handling of sparc64 bus_dmamap* functions.
Replace with a more generic mechanism that allows MD busdma
implementations to generate inline mapping functions by
defining WANT_INLINE_DMAMAP in <machine/bus_dma.h>. This
is currently useful for sparc64, x86, and arm64, which all
implement non-load dmamap operations as simple wrappers
around map objects which may be bus- or device-specific.
--Remove NULL-checked bus_dmamap macros. Implement the
equivalent NULL checks in the inlined x86 implementation.
For non-x86 platforms, these checks are a minor pessimization
as those platforms do not currently allow NULL maps. NULL
maps were originally allowed on arm64, which appears to have
been the motivation behind adding arm[64]-specific barriers
to bus_dma.h, but that support was removed in r299463.
--Simplify the internal interface used by the bus_dmamap_load*
variants and move it to bus_dma_internal.h
--Fix some drivers that directly include sys/bus_dma.h
despite the recommendations of bus_dma(9)
Reviewed by: kib (previous revision), marius
Differential Revision: https://reviews.freebsd.org/D10729
Notes:
svn path=/head/; revision=320528
|
|
|
|
|
|
|
|
| |
Noticed by: hps
Sponsored by: DARPA, AFRL
Notes:
svn path=/head/; revision=310828
|
|
|
|
|
|
|
|
|
| |
o Fix types for ds_addr/ds_len.
Sponsored by: DARPA, AFRL
Notes:
svn path=/head/; revision=310824
|
|
xDMA is a DMA framework designed to abstract the interaction
between device drivers and DMA engines.
Project wiki: https://wiki.freebsd.org/xdma
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D8807
Notes:
svn path=/head/; revision=310330
|