Pavel A. wrote:
“Tim Roberts” wrote in message news:xxxxx@ntdev…
> …
>> I’ll give you an example. Let’s say you have a bus-mastering PCI device
>> that only handles 32-bit physical addresses, as many do. Let’s say
>> you’re running on a Server 2003 system with 16GB of RAM. Statistically,
>> it’s quite likely that MmAllocateContiguousMemorySpecifyCache is going
>> to return you memory with a physical address beyond the 4GB mark. Your
>> hardware can’t handle that. You’re stuck.
>>
>> IoGetDmaAdapter, on the other hand, will do whatever needs to be done,
>> by allocating “bounce buffers” within the first 4GB of physical RAM, and
>> making sure that the physical addresses you get are all within the range
>> for your device.
>
> In this case, will IOMMU allow to map system memory above 4GB directly
> to the device, without bounce buffers?
I’m not sure I understand the question. On all current x86 and x64
machines, the “IOMMU” doesn’t do any remapping. It would be possible to
create a chipset that did this, but I don’t know of any that do so today.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.