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

Colin Ngam
2003-05-16T00:32:15Z

James Bottomley wrote:

> On Thu, 2003-05-15 at 19:17, David S. Miller wrote:
> > Having to support DAC cycles does not mean that it must support full
> > 64-bit DMA addresses in it's descriptors.
> >
> > A cost sensitive PCI-X device may wish to use 32-bit addressing in
> > it's descriptors in order to keep pin counts down etc.
>
> This is certainly a property of the aic79xx driver (only using 32 bit
> descriptor tables). It has this nice code in the driver for doing it:
>
> aic79xx.c:
>
> /*
> * Although we can dma data above 4GB, our
> * "consistent" memory is below 4GB for
> * space efficiency reasons (only need a 4byte
> * address). For this reason, we have to reset
> * our dma mask when doing allocations.
> */
> if (ahd->dev_softc != NULL)
> ahd_pci_set_dma_mask(ahd->dev_softc, 0xFFFFFFFF);
> *vaddr = pci_alloc_consistent(ahd->dev_softc,
> dmat->maxsize, &map->bus_addr);
> if (ahd->dev_softc != NULL)
> ahd_pci_set_dma_mask(ahd->dev_softc,
> ahd->platform_data->hw_dma_mask);
>
> And it comes in PCI-X flavours.

Yes agreed. And I think this is fine. But let's not have the interface
prevents 64bits drivers that wants to do DAC. that's all I am
asking ..

Thanks.

colin

>
>
> James