How to DMA on PCI devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello everybody !

I have 2 question about how DMA work, especially for PCI devices. 

The first one concerns the device. How can i know if a device is DMA-able ? I found a function in the kernel source code called 'dma_set_mask'.  I want to know which registers of the device this function sets, and how it sets it : via Port I/O or MMIO, and where i can find the address where it is written ? I browsed the code, but i did not managed to see from which register inside a pci device are involved.

The second question concern the DMA principles (precisely DMA Bus Mastering). For the question, let's make the supposition that we want to make a transfert from a device to RAM. How do i specify the memory address of the device from where i need to copy data of a specified length to the DMA buffer? How do i know where the data to be transfered begin ? In most of the documents describing a driver with DMA, they never specify that point.

If someone can light me on those two points, that would help me a lot in my work.

Fernand.



      

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux