lkml.org 
[lkml]   [1999]   [Aug]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: New resources - pls, explain :-(
Date
Jes Sorensen wrote:
>
> >>>>> "Peter" == Peter Desnoyers <pjd@fred001.dynip.com> writes:
>
> Peter> Consider the following sequence of driver events:
>
> Peter> 1. adapter DMAs into host memory 2. DMA completes 3. host reads
> Peter> DMA-ed data out of host memory
>
> Peter> A non-cache-coherent bus means that you need to insert a magic
> Peter> step between 2 and 3 to guarantee that the CPU reads the new
> Peter> data. (it also affects the opposite process, where the CPU
> Peter> writes to host memory, and then the adapter DMAs out of it)
>
> The correct place to put this is in front of 1, ie. before you even
> start the DMA.

As always, it depends. The UltraSparc can leave bits of the DMA'ed
data in its PCI bridges after the transfer completes, and you need to
explicitly flush the bus to make sure host memory and cache is in sync
with the device. Unless you've mapped the region in slow, synchronous
mode. Or so their documentation states - I've heard that real hardware
behavior isn't actually as bad as they tell Solaris driver writers.

Either way, it only affects DMA vs. host memory read/write semantics,
not readl/writel.

--
............................................................................
Peter Desnoyers
162 Pleasant St. (617) 661-1979 pjd@fred.cambridge.ma.us
Cambridge, Mass. 02139 (978) 461-0402 (work) pjd@giga-net.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:53    [W:0.103 / U:0.360 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site