55 Commits

Author SHA1 Message Date
Warner Losh
702547720c Remove sparc64 specific bits of the man pages. 2020-02-12 06:52:22 +00:00
Scott Long
757d4fbaa7 Introduce the concept of busdma tag templates. A template can be allocated
off the stack, initialized to default values, and then filled in with
driver-specific values, all without having to worry about the numerous
other fields in the tag. The resulting template is then passed into
busdma and the normal opaque tag object created.  See the man page for
details on how to initialize a template.

Templates do not support tag filters.  Filters have been broken for many
years, and only existed for an ancient make/model of hardware that had a
quirky DMA engine.  Instead of breaking the ABI/API and changing the
arugment signature of bus_dma_tag_create() to remove the filter arguments,
templates allow us to ignore them, and also significantly reduce the
complexity of creating and managing tags.

Reviewed by:	imp, kib
Differential Revision:	https://reviews.freebsd.org/D22906
2019-12-24 14:48:46 +00:00
John Baldwin
306095b889 Add an overview section to bus_dma.9.
Describe the role of tags and mapping objects as abstractions.
Describe static vs dynamic transaction types and give a brief overview
of the set of functions and object life cycles used for static vs
dynamic.

While here, fix a few other typos and expand a bit on parent tags.

Reviewed by:	cem, imp
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D16652
2018-08-12 01:54:05 +00:00
Emmanuel Vadot
435b87a99b bus_dma(9): Correct arm64 BUS_DMA_COHERENT implementation note
BUS_DMA_COHERENT isn't supported in bus_dmamap_create but bus_dma_tag_create.
Document it properly.

Submitted by:	andrew
2018-05-22 13:45:24 +00:00
Emmanuel Vadot
c6231a5f26 bus_dma(9): arm64 implementation notes
Indicate that BUS_DMA_COHERENT is supported for bus_dmamem_alloc and
bus_dmamem_create in the arm64 implementation.
2018-05-22 11:17:45 +00:00
Ed Maste
0fcefb433d Update NetBSD Foundation copyrights to 2-clause BSD
The NetBSD Foundation states "Third parties are encouraged to change the
license on any files which have a 4-clause license contributed to the
NetBSD Foundation to a 2-clause license."

This change removes clauses 3 and 4 from copyright / license blocks that
list The NetBSD Foundation as the only copyright holder.

Sponsored by:	The FreeBSD Foundation
2014-03-18 01:40:25 +00:00
Jim Harris
a073133cdf Add bus_dmamap_load_bio and bus_dmamap_load_ccb to bus_dma(9).
Sponsored by:	Intel
Reviewed by:	kib
MFC after:	3 days
2013-07-17 19:41:16 +00:00
John Baldwin
28b5187f44 Clarify that bus_dma does not stall future load requests once a load is
deferred.  The caller is required to enforce that if that is desired.

MFC after:	2 weeks
2012-08-30 14:44:30 +00:00
John Baldwin
5c8d3de02b Update for adjusted types for boundary arguments in 232356. 2012-03-01 20:19:21 +00:00
Marius Strobl
08390d3b63 Correct r190283 (partially reverting it) as on sparc64 BUS_DMA_NOCACHE
actually is only valid for bus_dmamap_load().

MFC after:	3 days
2009-05-12 20:56:34 +00:00
Robert Noland
ba0b16188e Correct the documentation to reflect the fact that BUS_DMA_NOCACHE is a
flag to bus_dmamem_alloc() rather than bus_dmamap_load();

Discussed with:	kib
MFC after:	3 days
2009-03-22 21:00:58 +00:00
Marius Strobl
afbeac3e60 - For maximum flexibility, sparc64 supports BUS_DMA_COHERENT also
with bus_dmamap_create() and not only bus_dmamem_alloc() so move
  the description of this flag up accordingly in order to document
  this fact. While at, it refine this description with an application
  example.
- Reword the description of BUS_DMA_NOCACHE as this flag is also
  implemented on sparc64.

MFC after:	1 week
2008-11-16 18:30:16 +00:00
Konstantin Belousov
0763bc964b Remove unneeded comma.
Noted by:	kensmith
2008-09-12 13:04:39 +00:00
Konstantin Belousov
d56aeabac3 Document BUS_DMA_NOCACHE.
MFC after:	3 days
2008-09-06 15:21:01 +00:00
Wojciech A. Koszek
5bbaa5cf02 Mark "highaddr" and "lowaddr" appropriately. Change "dma" to "DMA".
Fix spelling mistage found by rodrigc@.

Reviewed by:	rodrigc, danger
2008-06-09 22:13:14 +00:00
John Baldwin
2f46d62192 Some minor tweaks and updates to bus_dma(9) including some additional notes
on the address filter and locking callback.

Reviewed by:	ru, scottl
2007-03-06 17:32:49 +00:00
Mike Pritchard
9280e5fac2 Spelling fixes. 2006-12-14 14:33:13 +00:00
Ruslan Ermilov
81ae4b8da9 Markup fixes. 2006-09-18 15:24:20 +00:00
John-Mark Gurney
d1c32d02b6 now that we have bus_get_dma_tag, document it's requirement in
bus_dma_tag_create
2006-09-03 00:31:21 +00:00
Ruslan Ermilov
07bf564cab - Fix some bugs in the descriptions of DMA sync operations.
- Tweak some text so it's less likely to confuse the reader.

OK'ed by:	scottl
2006-08-31 19:38:52 +00:00
Giorgos Keramidas
b1cc10206c Typo. 2006-04-29 00:43:23 +00:00
Scott Long
4905491fe3 Add a section about locking protocol for busdma. 2006-04-28 08:36:49 +00:00
Olivier Houchard
d1bd38bb45 Note that BUS_DMA_COHERENT currently only affects sparc64 and arm.
Suggested by:	scottl
2006-03-01 23:56:18 +00:00
John-Mark Gurney
6f56dcd441 update examples to use the correct terms that was never updated when the
earlier descriptions were gone over...

MFC after:	3 days
2006-02-28 19:58:57 +00:00
Ruslan Ermilov
a5b0d9050a [mdoc] add missing space before a punctuation type argument. 2005-12-13 17:07:52 +00:00
Scott Long
71bb1f9b0c More review and adjustment for reality that should have happened 3 years
ago.  Document the real behavior of bus_dma_tag_create, bus_dmamap_load,
and other functions.  Also document their arguments and return values.

MFC After: 3 days
2005-12-05 23:25:59 +00:00
Ruslan Ermilov
78ad54210f -mdoc sweep. 2005-11-18 10:56:28 +00:00
Scott Long
a79d1e8314 Fix a few small problems and bump the date.
Submitted by: ru
2005-09-01 19:14:41 +00:00
Scott Long
6f3d270147 More clarification on how bus_dmamap_sync works. Fix bogus text concerning
bus_dmamem_alloc.
2005-08-31 16:55:00 +00:00
Scott Long
1cb112ab25 Clarify the description of the bus_dmasync_op_t operation flags. This has
been misleading and even wrong since the import of the page.
2005-08-26 18:19:01 +00:00
Ruslan Ermilov
4f06896130 Assorted markup fixes and minor wordsmithing.
Approved by:	re
2005-06-15 13:31:23 +00:00
Ruslan Ermilov
36a142c455 Expand contractions. 2005-02-13 23:45:54 +00:00
Ruslan Ermilov
59892d33e5 who's -> whose 2005-02-13 23:23:30 +00:00
Christian Brueffer
2d4071ac8f Typo fixes.
MFC after:	3 days
2005-01-18 18:13:03 +00:00
Scott Long
824f4edf4f Document bus_dmamap_load_mbuf_sg() 2005-01-15 20:50:52 +00:00
Kirill Ponomarev
51daf549e8 Remove trailing spaces.
Reviewed by:	brueffer
MFC after:	3 days
2005-01-02 18:20:29 +00:00
Scott Long
0f3a007844 Correct and clarify some very incorrect text. 2004-10-22 05:21:20 +00:00
Warner Losh
490ec740c8 Add reference to vslock(9) for locking user address pages into core.
Suggested by: alc
2004-08-26 04:16:55 +00:00
Warner Losh
4d855643d1 Clarify what the lockfunc is used for. When it will be called and
when it won't be called.  The old wording was correct, but not
sufficiently specific to understand when and how it would be called.
The new wording describes the current implementation's usage (which
should be updated if other appropriate times are decided upon),
specifically that it is called only when the load operation is
deferred to keep the locking state consistent.  When the operation
isn't deferred, the calling routine is assumed to have a coherent
locking world.

Reviewed by: scottl
2004-08-24 23:09:57 +00:00
Warner Losh
95929b661e Even in a 80 column, fixed point font, there's plenty of room for all
the arguments to bus_dmamap_load, so don't use '...' but list the
actual args.  '...' usually means a variable number of args (cf
printf(3)), but bus_dmamap_load takes a fixed number of arguments.
2004-08-23 23:28:02 +00:00
Warner Losh
cbfef69c64 In the SYNOPSIS section, move the bus_dmamem_alloc function prototype
to just before bus_dmamem_free, which is (a) more logical; (b) likely
what was originally intended and (c) matches the order in the NAME and
FUNCTIONS sections.
2004-08-23 23:17:31 +00:00
John-Mark Gurney
e8c9966d55 fix description of the macros for BUS_DMASYNC opertions. It's from the CPU's
point of view...  Add a reference to a better description of what the ops
do...

Reviewed by:	scottl
2004-08-11 14:52:33 +00:00
Scott Long
ab0b83b529 Document that boundaries cannot be smaller than the max segment size. 2004-07-04 04:50:00 +00:00
Ruslan Ermilov
5203edcdc5 Mechanically kill hard sentence breaks and double whitespaces. 2004-07-03 18:29:24 +00:00
Scott Long
2da554d8f2 Small grammar fix. 2004-07-02 15:52:44 +00:00
Mike Pritchard
2988974b58 Spelling fixes. 2004-06-21 14:11:45 +00:00
Hiten Pandya
a1bd700ab1 mdoc(7) police:
* remove an extra comma at the end of the .Nm list
2004-05-14 16:57:27 +00:00
Hiten Pandya
c7d3a65d43 Mdoc Janitor:
* Remove hard sentence breaks from last commit to this file.
2003-10-23 01:08:38 +00:00
Maxime Henrion
82d227dc2a Document the new BUS_DMA_ZERO flag. 2003-07-27 14:05:29 +00:00
Scott Long
9b5c4b6694 Update the rest of the busdma man page for the change in bus_dma_tag_create() 2003-07-03 09:07:03 +00:00