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

From: James Bottomley <James.Bottomley_at_HansenPartnership.com>
Date: 2003-05-16 10:31:20
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.

James
Received on Thu May 15 17:36:17 2003

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