Messages in this thread | | | Subject | Re: pci_map_single() on IA64 | From | Jes Sorensen <> | Date | 07 Jun 2006 10:11:03 -0400 |
| |
>>>>> "Adhiraj" == Adhiraj <adhiraj@linsyssoft.com> writes:
Adhiraj> Hi all, How is it possible that on an IA64 machine, the Adhiraj> address returned by pci_map_single() is above 4G (32 bits) Adhiraj> when I have only 2G of physical memory?
Depends on how the physical memory is located on the system and how the PCI bridge sees it.
Adhiraj> The DMA mask is set to 64 bits (using Adhiraj> pci_set_dma_mask()). When I change it to 32 bit DMA mask, the Adhiraj> problem goes away.
Forcing it to a 32 bit mask may force the box to use the IOMMU if it has one, which not all IA64 systems do have. However, since you have set the DMA mask to 64 bits then you're getting exactly what you are asking for, so why is this a 'problem'? A 64 bit DMA mask means the adapter can do 64 bit addressing, it has nothing to do with the width of the databus.
Jes
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |