Цитата(Dvorkin @ May 30 2014, 18:34)

Устройство (endpoint) подключено к шине PCI Express. Оно посылает последовательность TLP WrMem, данные записываются в память хоста. Как драйвер, выполняющийся на хосте, может узнать, что данные уже записаны в память?
- pci_map_single()
- старт операции чтения, опрос состояния устройства
- pci_unmap_single()
Можно опрашивать регистр состояния устройства или получить от него прерывание, но все-таки нужно знать, когда полностью завершена транзакция и можно делать pci_unmap_single().
Хост работает под Linux Ubuntu. Устройство сделано на основе Xilinx XAPP1171.
Решено.
Сначала я
опрашивал регистр состояния CDMA, установленного на endpoint устройстве. Это есть неправильно. После того, как я сделал ожидание
прерывания, все проблемы устранились.