Имееться Spartan6, на нем реализован PCIe интерфейс. Нужен пример драйвера под UBUNTU, что бы реализовать потоковое чтение. PCI- устройство посылает запрос на чтение по любому адресу оперативной памяти и в ответ должно получать TLP c длинной данных 16 DWORD. Сейчас есть драйвер, который использует метод MMAP, но на нем не удаеться получить TLP c данными больше 1DWORD. Вопросы к теме: 1. Обязательно ли использовать DMA, что бы работать с TLP больше 1DWORD? 2. Есть ли разница между контроллером DMA на разных компьютерах? 3. По какой схеме строиться запрос DMA от PCI-устройства к компьютеру? (Какую литературу можно почитать)
Возможно у кого-нибудь есть примеры реализации подобного драйвера?
|