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

From: Colin Ngam <cngam_at_sgi.com>
Date: 2003-05-16 08:44:57
James Bottomley wrote:

> 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?

Yes, you are correct .. we have the capability to generate a SAC or DAC address
in PCI Mode only.

> 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)?

However, in PCI-X mode, we do not have the capability to generate SAC addresses.
And yes, you are also correct that it is very much efficient on our architecture
to generate DAC for all(PCI/PCI-X)

So, it is a hard requirement to have DAC for PCI-X devices and not PCI devices.

Hope that is clear ..



> James
Received on Thu May 15 16:02:24 2003

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