On Wed, 19 Sep 2001 [EMAIL PROTECTED] wrote:
>
> > Hmm, so you can program your controller from user mode to get to a random
> > collection of pages. However, how can a user mode program be sure of the
> > real physical address (if any!) of any virtual page? Or does the
> > onboard PCI DMA controller on some cards know how to talk to memory
> > management hardware to query that information?
>
>
> The method used to deal with random page collections depends on the PCI
> controller. The device I'm using has PLX 9060 PCI interface chips (
> http://www.plxtech.com/products/9060.htm ). That chip can follow a
> linked list of memory pointers to physical segments. The linked list
> mode is not the mode I'm personally using however. I'm using the simple
> single transfer mode and I'm transferring the data from the device to a
> 4mb reserved space above Linux. The reserved space is linear physical
> memory, so it's easy to talk to via memory pointers.
My above question was more about how to find out physical page addresses
from virtual memory space. But anyway you don't use that linekd list
method, and with the reserved memory it's easier..
>
>
> > Also, how do you deal with swapping of physical pages? Or do you just
> > lock the user pages into ram?
>
> I don't deal with swapping pages since this reserved ram is above linux
> and unknown to linux.
Unknown to linux? Well in some sense linux must have set up the memory
hardware to let the user program access that memory without a page fault..
so it must be known on some level right? :)
>
> How you do DMA will vary greatly depending on the PCI interface chip on
> the device. I don't think using the usual PC 8037 DMA channels will give
> you PCI burst performance.
>
> -Wayne
>
>
>
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/