Trashy_2 1 28 сентября, 2016 Опубликовано 28 сентября, 2016 · Жалоба Есть железка на Cyclone5 со встроенным PCIe+Avalon без ARM на борту. Подключено к компу. Со стороны ПЛИС выделен BAR0 и там набор регистров. Верхнее приложение под Виндой по прерыванию или по полингу выгребает данные из БАРа. Работает, но не по феншую: жрёт процессорное время. У меня дыры в понимании работы DMA. Работал с DMA в контроллерах, где какая-то аппаратная хрень, которой передаёшь смещение и сколько читать и она сама копирует данные в некую область памяти и потом сообщает... Не пойму как это работает в стыке PCI и компа. Канал то один и тот же. Что необходимо менять в прошивке ПЛИС, что бы этот режим был доступен компу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 28 сентября, 2016 Опубликовано 28 сентября, 2016 · Жалоба Для FPGA вам нужен котролер DMA, а для PC драйвер для вашего контролера. 'Из коробки' это все не заведется :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Trashy_2 1 28 сентября, 2016 Опубликовано 28 сентября, 2016 · Жалоба Для FPGA вам нужен котролер DMA, а для PC драйвер для вашего контролера. 'Из коробки' это все не заведется :( Не пойму вашего сленга. Драйвес со стороны PC напишем. Это не проблема. Контроллер DMA, он работает через те же BARы или там какой то иной алгоритм работы? Его самостоятельно состряпать можно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 28 сентября, 2016 Опубликовано 28 сентября, 2016 · Жалоба Не пойму вашего сленга. Драйвес со стороны PC напишем. Это не проблема. Контроллер DMA, он работает через те же BARы или там какой то иной алгоритм работы? Его самостоятельно состряпать можно? как пример реализация Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Trashy_2 1 6 марта, 2017 Опубликовано 6 марта, 2017 · Жалоба Опять я с глупостями. Возможно ли на Цыклоне 5 сделать такую штуку: PCIe-UART16550, что бы винда увидела эту штуку и установила на неё свои драйвера? 16550, вроде майкрософтом поддерживаются. Какие-нить вендоры подменить, в INFах чё-нить прописать... У меня все IP оплачены. Сейчас связка Avalon+16550 работает через бары прямым доступом в регистры. Как-то на такую ерунду писать свои драйвера, как-то по лоховски выглядит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 7 марта, 2017 Опубликовано 7 марта, 2017 · Жалоба Возможно ли на Цыклоне 5 сделать такую штуку: PCIe-UART16550, что бы винда увидела эту штуку и установила на неё свои драйвера?Сделать можно, но вот 'увидеть и поставить драйвера' не получится. Нужно будет прописать параметры вручную в registry https://msdn.microsoft.com/en-us/library/wi...3(v=vs.85).aspx Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 7 марта, 2017 Опубликовано 7 марта, 2017 · Жалоба На самом деле всё гораздо гораздо проще, говорят нужен какой то контроллер DMA. На самом деле DMA-режим работы можно осуществить без него, если делаете свои TLP пакеты. По сути, на стороне ПК в драйвере выделяется буфер, который будет видеть и ядро и устройство (ну специальным образом выделенная память), его адрес кидается на BAR0 и устройство может тупо слать TLP пакеты на этот адрес и это не сжирает процессор. т.е. устройство само туда пишет, это Bus Mastering. Когда тысячи пакетов накиданы устройством прямо в память (в этот буфер) - делается прерывание (MSI). Скорость будет околосветовая (теор предел линка), загрузка проца ничтожна. Есть вопросы - пишите, подскажу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться