[Doubt] Can a PCI device communicate with another PCI or other
device?
Pegasus Mc Cleaft
ken at mthelicon.com
Tue Oct 14 19:39:43 UTC 2008
On Tuesday 14 October 2008 19:32:47 Srinivas wrote:
> Hello,
>
> I have a small doubt.
>
> Suppose I have a PCI card with a general purpose CPU on it. Could it be
> able to communicate with another PCI device or ISA device(lets say IDE hard
> disk)?
Hi Srinivas,
Others may have a different opinion on this, and I am curious to see there
input to this question as well. I tried doing something like this years ago
with the Blackfin processor, but I found it to be not a good idea. While I
could DMA transfer memory from the DSP into the physical memory of another
device (In my case, the HD controller) I couldn't take control of IRQ´s. Other
potential problems arose that turned me off to the whole idea (Data
concurrency between the DSP->HD and the host->HD). Even if you got past these
problems you would still face having to deal with any number of filing systems
formats.
I found it much easier to make a device driver and service/daemon on the host
machine that proxi-requested things for the DSP board and burped it into ram
that the DSP could then grab and process (or dump to disk from, in the other
direction). While the speed may not be brilliant, it made things a lot easier
for me to manage on a software level.
In later revisions, I re-spun the PCB so it had an IDE controller local to
the DSP and stuck an PLX-Tech PCI to PCI bridge between the host and the DSP
so I could manage 2 small memory windows between the two (One for API
commands, and the other data) with a single IRQ back to the host. This allowed
me to have a high-speed IDE port local to the DSP where it was needed, and a
slower link back to the host CPU for pulling video files, etc.
Hope this helps,
Peg
More information about the freebsd-hackers
mailing list