pci_alloc_consistent doubt

Dhananjay Maske dhananjay.maske87 at gmail.com
Mon Apr 1 04:35:53 EDT 2013


Please see my question inline.

Thanks in Advance,
Dhananjay

On Mon, Apr 1, 2013 at 9:42 AM, Avinash Patil <avinashapatil at gmail.com>wrote:

> AFAIK.
>
>
> 1) as we know pci_alloc_consistent allocates dma buffers which is visible
> to DMA controller as well as CPU.
>     virt_add = pci_alloc_consistent(pdev, size, dma_addr_t bus_adrr);
>
> here it will allocate a buffer and return its virtual address and
> corresponding bus address.
>
> My question is do these two address ultimately point to similar location
> but from different perspectives ?.
>
> Avinash: Yes both virtual and physical addresses point to same location.
> BAR at the enumeration of PCI devices allocates specific address for PCI
> devices from RAM and your alloc_consistent uses these addresses.
>
> Dhananjay :  I am quiet confused about what do you mean by "these"
addresses here ?. Do you mean dma buffer bus address allocated by
alloc_consistent or BAR bus addresses which can be seen in /proc/pci ?


> 2) After allocating these address, how do we proceed given that i have a
> ASIC register which has the dma_rx_desc_start address ?
> Avinash: Here is a link which can help you for creating rings, creating
> your ISR which handles different vendor specific interrupts etc
>
> http://netsecinfo.blogspot.in/search?q=PCIe
>
> Avinash:
> 3) Also does all the HW's which support dma have the descriptor data
> structures by provided by Vender or is there any specific format that dev
> has to be aware of for designing such descriptor for that particular driver
> ?
> Avinash: These structures are vendor specific which may contain physical
> address, length etc.
>
>
>
> On Thu, Mar 28, 2013 at 1:14 AM, Dhananjay Maske <
> dhananjay.maske87 at gmail.com> wrote:
>
>> Hi All,
>>      I am fairly New to Linux kernel Programming and i have few questions
>> with respect to pci_alloc_consistent .
>>
>> 1) as we know pci_alloc_consistent allocates dma buffers which is visible
>> to DMA controller as well as CPU.
>>     virt_add = pci_alloc_consistent(pdev, size, dma_addr_t bus_adrr);
>>
>> here it will allocate a buffer and return its virtual address and
>> corresponding bus address.
>>
>> My question is do these two address ultimately point to similar location
>> but from different perspectives ?.
>>
>> 2) After allocating these address, how do we proceed given that i have a
>> ASIC register which has the dma_rx_desc_start address ?
>>
>> 3) Also does all the HW's which support dma have the descriptor data
>> structures by provided by Vender or is there any specific format that dev
>> has to be aware of for designing such descriptor for that particular driver
>> ?
>>
>> _______________________________________________
>> Kernelnewbies mailing list
>> Kernelnewbies at kernelnewbies.org
>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130401/ee354965/attachment-0001.html 


More information about the Kernelnewbies mailing list