[Linux-ia64] Re: 64 Bits DMA Addresses for Alloc Consistent Interfaces.

From: James Bottomley <James.Bottomley_at_HansenPartnership.com>
Date: 2003-05-16 08:47:04
On Thu, 2003-05-15 at 17:14, Colin Ngam wrote:
> Right now, on our platform, the Upper 32 Bits of this address is always 0s
> and the Lower 32 Bits has the IOMMU mapped DMA address.  When this
> address is given to the card, SAC is generated because the Upper 32 Bits
> are 0s - if the whole 64bits are given to the card.
> 
> Now, for PCI-X devices, we need to generate an IOMMU mapped DMA
> address that  has the Upper 32 bits non 0s.  When the driver gives this
> address to the card, it will generate a DAC for the DMA.
> 
> >From what I understand from the pci_alloc_consistant() interface, we cannot
> return a "dma_addr_t" that has the Upper 32bits NON 0s.  Is that TRUE?  If
> it is, our platform cannot deal with this restriction .. therefore we are
> requesting
> for this extension.

OK, now you've confused me.  I thought you were saying that your PCI
hardware generates two type of addresses: one for DAC that *doesn't* go
through the IOMMU and one for SAC that does?

In which case, SAC should be able to go through the IOMMU to reach
anwhere in memory, and thus pci_alloc_consistent should work for you
now.

Or are you saying it's more efficient to go via the DAC non-iommu cycle
and you'd like to do that preferentially if you could (which is a
feature request, not a hard requirement)?

James
Received on Thu May 15 15:52:32 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:14 EST