Re: Allocate consistent memory in the 32-bit address range, with DMA_64BIT_MASK?

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

 



Hello,

On Fri, May 14, 2010 at 9:14 PM, Grant Grundler
<grundler@xxxxxxxxxxxxxxxx> wrote:
> On Fri, May 14, 2010 at 01:47:21PM +0200, Rolf Eike Beer wrote:
> ...
>> pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
>> pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64))
>
> I think this is reversed. The original problem was:
>     "my PCIe device supports 64-bit DMA for data, but only 32-bit
>      addresses for fetching descriptors from host memory."
>
> So you want:
>    pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))
>    pci_set_dma_mask(pdev, DMA_BIT_MASK(64))
>
Yes, that's what I supposed.

> However, ISTR that PCI-E spec *requires* 64-bit addressing support for
> all DMA accesses. If I've got that correct, this device can not be
> considered PCI-E compliant even if it works fine with linux.
>
Work in progress. In the meantime, we can progressively work towards
that goal using the suggestions above.

Thanks for the clarifications. I should have found out myself, it's
just that DMA-mapping.txt and DMA-API.txt seem to partly overlap and
partly complement eachother.

Regards,
-- 
Leon
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux