[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