Are there known applications that are using the I/OAT (Crystal Beach) to copy data from memory to IO space?
The spec says memory->MMIO is supported, whereas MMIO->memory is not:
22.214.171.124.1 Supported Features
The following features are supported by the DMA engine:
• Data transfer between two system memory locations, or from system memory to MMIO.
126.96.36.199.2 Unsupported Features
The following features are not supported by the DMA controller:
• DMA data transfer from I/O subsystem to local system memory, and I/O to I/O subsystems are not supported.
However, upon experiment it seems to be the other way. Copying from the IO space seems to work, but copying into IO space seems to be truncated.
Could anyone confirm it is really working, and thus it's probably something we are doing wrong?
I am sorry you are having problems with your system but let me help you.
I would recommend you posting this information at developer zone community. Here is the link: