Hi Titus,

Did you take a look at drivers/char/pcimodule.c?

Thanks.
-
Hemant
________________________________
From: [email protected] 
[mailto:[email protected]] On Behalf Of 
Steve Titus
Sent: Tuesday, August 04, 2009 11:03 PM
To: [email protected]
Subject: DM6467 pci communication (slave)


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
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to