Re: Custom PCIe Device Driver

From: Robert Hancock
Date: Sat Jan 26 2008 - 20:45:32 EST


Sanka Piyaratna wrote:
Hi Everyone,

I am currently developing a custom PCIe device and the Linux kernel driver for this. I am able to use the device as a character device with PIO and now I am working on getting the DMA to work. I have implemented 2 BARs (BAR0 - mem and BAR5 - mem) in the PCIe device. I have implemented the DMA in my custom device firmware to transfer a block of memory via the PCIe bus and now trying to get this to work with the device driver.

As I understand it, I can get hold of the PCI bus to become the bus master and then initiate the DMA transfer from my device. However, I don't understand how I can specify within my kernel driver how to specify which BAR to use.

Does this mean when I initiate a transfer from the hardware, the memory get transferred into the location allocated by by pci_map_single() function regardless of which BAR the memory comes from? or do I need to specify the BAR using a mask?

Would some one be able to point me to an example code please?

Thanks and Regards,

Sanka

Your question doesn't seem to make much sense. DMA transfers have nothing to do with BARs at all, they don't come "from" or "to" one.

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx
Home Page: http://www.roberthancock.com/

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/