Actually there IS a translation when the CPU tries to read a memory-mapped
device register; so the code running on the CPU issues a read or write to
a virtual address, and what is put on the bus is the address of where that
register is found in PCI space. The memory controller recognizes this is
not a RAM address and places it on the PCI bus, which had better respond
to the request with a confirmation.
PCI is a “positive acknowlegement” bus, where a device must assert that it
has recognized the address, or an access fault is triggered.
joe
xxxxx@alice.it wrote:
> The goal of map register (implemented here via hw IOMMU) is to perform
> translation ONLY in upstream direction in order to convert a
> bus-relative target address (read/write target of transactions started
> by DMA capable devices) in a CPU’s physical address where RAM location
> are mapped to, right ?
>
> In the opposite direction (CPU access to devices’s registers) there is
> NO translations but just normal behaviour of PCI controller windows…
Yes.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
Thanks Joseph for this clarification…here I omitted virtual address translation performed by CPU’s MMU…The reasonings were about translation that apply to addresses asserted by components on bus wires…
xxxxx@flounder.com wrote:
Some years ago, Digital Equipment Corporation designed the peripherals for
their VAX systems to use virtual addresses. You programmeed the DMA
device with the virtual address. Then they came out with the Alpha
workstation, and wanted to use the same peripherals, but the page table
layouts between the VAX and the Alpha were wildly different.
Neomagic made this same mistake in their graphics chips. They designed
their DMA hardware to read the x86 page tables directly, so you could
use virtual addresses. It was very cool, until the introduction of PAE…
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
> Also, make sure you are not talking to an Australian engineer. Google
“australian upside down map”.
I didn’t know this…very interesting !