pci_alloc_consistent doubt

Avinash Patil avinashapatil at gmail.com
Mon Apr 1 00:12:25 EDT 2013


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.

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/134f5032/attachment.html 


More information about the Kernelnewbies mailing list