<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/xdma, branch releng/12.4</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.4</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.4'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2020-01-02T19:52:01Z</updated>
<entry>
<title>MFC r347828 (by cem):</title>
<updated>2020-01-02T19:52:01Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2020-01-02T19:52:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f7be1a91d3ea4297769f76cb6224e40cdbb746b6'/>
<id>urn:sha1:f7be1a91d3ea4297769f76cb6224e40cdbb746b6</id>
<content type='text'>
xdma(4): Fix invalid pointer use (breaks arm.SOCFPGA build)

In xdma_handle_mem_node(), vmem_size_t and vmem_addr_t pointers were passed to
an FDT API that emits u_long values to the output parameter pointer.  This
broke on systems with both xdma and 32-bit vmem size/addr types (SOCFPGA).

Reported by:	tinderbox
Sponsored by:	Dell EMC Isilon
</content>
</entry>
<entry>
<title>MFC r351621: xdma: avoid NULL deref in error case</title>
<updated>2019-09-02T00:36:26Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2019-09-02T00:36:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a1090870fa1b1f2b95cb83ca55c9b1ac2fd7c8a9'/>
<id>urn:sha1:a1090870fa1b1f2b95cb83ca55c9b1ac2fd7c8a9</id>
<content type='text'>
Reported by:	Dr Silvio Cesare of InfoSect
Sponsored by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>MFC r348364:</title>
<updated>2019-06-04T17:42:47Z</updated>
<author>
<name>Ruslan Bukin</name>
<email>br@FreeBSD.org</email>
</author>
<published>2019-06-04T17:42:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5bdf6659cce31149ad6ca89ef930ce361ea1e524'/>
<id>urn:sha1:5bdf6659cce31149ad6ca89ef930ce361ea1e524</id>
<content type='text'>
Don't copy the data from bounce buffer back to the mbuf if channel does
not use bounce buffering.

Sponsored by:	DARPA, AFRL
</content>
</entry>
<entry>
<title>MFC r347337:</title>
<updated>2019-06-04T15:35:46Z</updated>
<author>
<name>Ruslan Bukin</name>
<email>br@FreeBSD.org</email>
</author>
<published>2019-06-04T15:35:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5a0605acba335f57f6741d32b95d6a7cadb4b163'/>
<id>urn:sha1:5a0605acba335f57f6741d32b95d6a7cadb4b163</id>
<content type='text'>
o Implement a bounce buffer based on device reserved memory.
  Grab device reserved physical memory regions from FDT using standard
  "memory-region" property and use vmem(9) to allocate buffers from it.
  The same vmem could be used by DMA engine drivers to allocate memory for
  DMA descriptors.
  This is required for platforms that provide uncached memory region
  reserved exclusively for DMA operations.
o Change sleepable sx(9) lock type to non-sleepable mutex(9) since
  network drivers usually hold mutex during DMA operations. So we don't
  take sleepable lock after non-sleepable.

Tested on U.S. Government Furnished Equipment (GFE) 64-bit RISC-V cores.

Sponsored by:	DARPA, AFRL
</content>
</entry>
<entry>
<title>MFC r346896:</title>
<updated>2019-06-04T15:28:32Z</updated>
<author>
<name>Ruslan Bukin</name>
<email>br@FreeBSD.org</email>
</author>
<published>2019-06-04T15:28:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f9c81f00f06a0fbda05a0638043cb3fac5ba2be9'/>
<id>urn:sha1:f9c81f00f06a0fbda05a0638043cb3fac5ba2be9</id>
<content type='text'>
o Rewrite softdma_process_tx() of Altera SoftDMA engine driver
  so it does not require a bounce buffer. The only need for this was
  to align the buffer address. Implement unaligned access and we don't
  need to copy data twice.
o Remove contigmalloc-based bounce buffer from xDMA code since it is
  not suitable for arbitrary memory provided by platform, which is
  sometimes a dedicated piece of memory that is not managed by OS at all.

Sponsored by:	DARPA, AFRL
</content>
</entry>
<entry>
<title>Eliminate kmem_alloc_contig()'s unused arena parameter.</title>
<updated>2018-08-20T15:57:27Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2018-08-20T15:57:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=44d0efb2154d884c85919229f28b31d50d25a350'/>
<id>urn:sha1:44d0efb2154d884c85919229f28b31d50d25a350</id>
<content type='text'>
Reviewed by:	hselasky, kib, markj
Discussed with:	jeff
Differential Revision:	https://reviews.freebsd.org/D16799
</content>
</entry>
<entry>
<title>Add driver for ARM PrimeCell PL330 DMA engine.</title>
<updated>2018-04-13T12:43:54Z</updated>
<author>
<name>Ruslan Bukin</name>
<email>br@FreeBSD.org</email>
</author>
<published>2018-04-13T12:43:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c42f10a257c95d702fb83bbf9022746a91abcdf6'/>
<id>urn:sha1:c42f10a257c95d702fb83bbf9022746a91abcdf6</id>
<content type='text'>
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D10201
</content>
</entry>
<entry>
<title>Don't include sys/bus_dma.h directly, use machine/bus.h instead.</title>
<updated>2018-04-13T12:41:51Z</updated>
<author>
<name>Ruslan Bukin</name>
<email>br@FreeBSD.org</email>
</author>
<published>2018-04-13T12:41:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b06154ea0380460b5babbbed95f8b017041464cd'/>
<id>urn:sha1:b06154ea0380460b5babbbed95f8b017041464cd</id>
<content type='text'>
Sponsored by:	DARPA, AFRL
</content>
</entry>
<entry>
<title>Tune xDMA interface slightly:</title>
<updated>2018-04-12T15:36:24Z</updated>
<author>
<name>Ruslan Bukin</name>
<email>br@FreeBSD.org</email>
</author>
<published>2018-04-12T15:36:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3d5b3b0a4487277145ad6cf3bf65da9f5e1d5425'/>
<id>urn:sha1:3d5b3b0a4487277145ad6cf3bf65da9f5e1d5425</id>
<content type='text'>
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-&gt;xdma_tx = xdma_ofw_get(sc-&gt;dev, "tx");

2. Allocate virtual channel
sc-&gt;xchan_tx = xdma_channel_alloc(sc-&gt;xdma_tx, caps);

3. Setup transfer status callback
xdma_setup_intr(sc-&gt;xchan_tx, my_tx_intr, sc, &amp;sc-&gt;ih_tx);

4. Request a transfer(s)
ret = xdma_request(sc-&gt;xchan_tx, &amp;req);

5. Free the channel
xdma_channel_free(sc-&gt;xdma_tx);

6. Free the controller
xdma_put(sc-&gt;xdma_tx);

Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D14971
</content>
</entry>
<entry>
<title>Clean up MD pollution of bus_dma.h:</title>
<updated>2017-07-01T05:35:29Z</updated>
<author>
<name>Jason A. Harmening</name>
<email>jah@FreeBSD.org</email>
</author>
<published>2017-07-01T05:35:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=eb36b1d0bc5f7ece94083e6e509da41117a76566'/>
<id>urn:sha1:eb36b1d0bc5f7ece94083e6e509da41117a76566</id>
<content type='text'>
--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 &lt;machine/bus_dma.h&gt;.  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
</content>
</entry>
</feed>
