My company is developing a PCI card that contains a dm6467 chip.  We will
have up to 4 of these cards plugged into the PCI bus of an Intel (Atom)
based system running Linux.

I am a device driver newbie, and I am working on the driver layer to
implement bidirectional communication between the Atom system and the 4 PCI
cards.  Our plan is to have the Atom processor be the PCI bus master, and
all the 6467 devices (ARM) be PCI slaves.

I am currently working with a dm6467 EVM (montavista 2.6.18_pro500 and dvsdk
v2_00_00_18), and I have it successfully booting over PCI by slightly
modifying the kernel module pcidrv.c and running the example PCI boot
application saBootApp.c (both of which came with the dvsdk).  Examination of
this code makes it very clear to me how Atom-side user code will interact
with the DaVinci chip on the PCI card: via a standard linux driver where
Atom code uses the /dev interface: open(), close(), read(), write(), mmap(),
etc.

The thing that is NOT so clear to me is what does the PCI communication
layer code look like on the ARM side? There is nothing in the dvsdk that
looks like an ARM side driver that allows user mode ARM code to communicate
over PCI with a host machine.  Can anyone point me to some information on
how this is done?  I am that the ARM side just needs to set up a bunch of
registers with the correct PCI configuration state, and then a user-mode
program can somehow read/write directly to/from PCI memory using some
appropriate API?

Thanks for your help!
Titus


_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to