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