Trying to DMA data from PCI bus to IDE

From: LegoGT (legoburns_at_yahoo.com)
Date: 08/19/03


Date: 19 Aug 2003 11:32:36 -0700

I'm trying to use a PC104 IO board that utilizes the PLX PCI9080 chip
to handle DMA transfers across the PCI bus to the rest of the PC104
stack. I've been able to take the data from the IO board, DMA it to
memory, and then use the regular Linux functions to write it to the
hard drive. Even though my drive is using the highest UDMA settings
(ATA66 for a solid state drive) and have tweaked the hdparm, it seems
as if there's too much Linux file overhead involved to get it any
faster -- especially because I'm trying to "stream" lots of data
really fast for an extended time period to anywhere on the drive
(I'll deal with the partitions and FAT later). It seems as if Linux
"waits" for about 5sec before it starts to write ANYTHING to the
drive. Even if I turn off all of the caching settings in hdparm.
This tells me that it's a caching technique specific to the kernel
that *hopefully* I can turn off.

So, Does anyone know of/have ideas about a way to configure the
PCI9080 chip or similar chip to DMA that data to a single address in
memory? I've set up the drive to receive data via DMA data and write
it to specific sectors so then the PCI9080 would need to be "pointed
to" a single location in memory (0x1f0 to be exact for the primary
IDE). I've been trying everything, but I think there might be
something having to do with how Linux maps the addresses in virtual
memory vs. physical for the PCI9080.

Effectively, it should be set up to pull the data from the PCI source
(a FIFO address on the IO board) and perform a DMA transfer to memory
while NOT incrementing the destination address.

Any help is GREATLY appreciated. Thanks.



Relevant Pages

  • Re: Trying to DMA data from PCI bus to IDE
    ... and then use the regular Linux functions to write it to the ... > hdparm has nothing to do with the kernel's in memory caching of disk ... It's still creating a buffer stack somewhere (even ... DMA it directly to the drive by setting the IO ports and registers. ...
    (comp.os.linux.development.system)
  • Trying to DMA data from PCI bus to IDE
    ... I'm trying to use a PC104 IO board that utilizes the PLX PCI9080 chip ... to handle DMA transfers across the PCI bus to the rest of the PC104 ... memory, and then use the regular Linux functions to write it to the ...
    (comp.os.linux.embedded)
  • Re: Which firewall?
    ... you probably got it with a celeron 1.6 chip. ... The 1gb memory was what got me; that's worth another $150 or so, ... I doubt it, cygwin working so nicely, and it keeps the native file system, ... which linux does not. ...
    (alt.sys.pc-clone.dell)
  • Re: Trying to DMA data from PCI bus to IDE
    ... >to handle DMA transfers across the PCI bus to the rest of the PC104 ... >memory, and then use the regular Linux functions to write it to the ...
    (comp.os.linux.development.system)
  • Re: Tandy 1000 vs. PCjr differences?
    ... The original 1000 had no DMA until you added the first memory card. ... a DMA chip on it, ...
    (comp.sys.tandy)