> 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.
> 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.
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/