Re: pci_map_single() on IA64

From: Alex Williamson
Date: Wed Jun 07 2006 - 10:20:08 EST


On Wed, 2006-06-07 at 14:34 +0530, Adhiraj wrote:
> Hi all,
>
> How is it possible that on an IA64 machine, the address returned by
> pci_map_single() is above 4G (32 bits) when I have only 2G of physical
> memory?
>
> The DMA mask is set to 64 bits (using pci_set_dma_mask()). When I change
> it to 32 bit DMA mask, the problem goes away.
>
> This problem does not appear on i388/x86_64 machines.

What is the physical layout of that 2GB of memory? You can't count
on memory being contiguous, especially on IA64 systems. If the address
you get back is within the DMA mask of the device, then the DMA mapping
is valid. You can run 'grep "System RAM" /proc/iomem' to get some idea
of the physical memory address map. Thanks,

Alex

--
Alex Williamson HP Open Source & Linux Org.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/