реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> PCIe Cyclone V, ошибка при чтении из BAR0
RobFPGA
сообщение May 31 2018, 06:45
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 203
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!
Цитата(AVR @ May 30 2018, 17:20) *
Причем тут альтера? Простейший драйвер для PCI он и в африке таковой, от производителя ПЛИС не зависит.
...

Вот именно - драйвер скорее все тут ни при чем - так как судя по описанию тут проблемы в железе . Он просто проявил эти проблемы.

Единица обмена по PCIe слово в 4 байта. Если нужно читать/писать байт то используются маски положения этого байта относительно слова с выровненным адресом. То-же и на шине Avalon.
У меня опыт с Avalon пока не велик - но из того что помню там есть рад нюансов (как по мне неприятно-неожиданных) связанных с тем как шина сконфигурирована - одни и тот же набор сигналов шины может вести себя по разному. И поэтому может быть что при чтении одного не выровненного байта на шине Avalon проходит несколько транзакций. Тут по хорошему надо бы на симе с PCIe посмотреть все это - погонять различные транзакции. Ну или прилепив сигналтап на выход Avalon c PCIe и смотреть на живом железе что и как.

Удачи! Rob.
Go to the top of the page
 
+Quote Post
torik
сообщение May 31 2018, 07:48
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Цитата
Нужен компилируемый пример.

Можно конечно запариться, но что толку - не работает когда перезагружаешь комп при включенной плате, кто это будет повторять.

И еще такое наблюдение: та же самая ошибка происходит, если плата с плисиной не просто перезагружает комп, а отключает и включает ему питание.
Т.е. ломается что-то внутри IP PCIe. И как ее сбросить, починить не понятно.

Цитата
Единица обмена по PCIe слово в 4 байта. Если нужно читать/писать байт то используются маски положения этого байта относительно слова с выровненным адресом. То-же и на шине Avalon.
У меня опыт с Avalon пока не велик - но из того что помню там есть рад нюансов (как по мне неприятно-неожиданных) связанных с тем как шина сконфигурирована - одни и тот же набор сигналов шины может вести себя по разному. И поэтому может быть что при чтении одного не выровненного байта на шине Avalon проходит несколько транзакций. Тут по хорошему надо бы на симе с PCIe посмотреть все это - погонять различные транзакции. Ну или прилепив сигналтап на выход Avalon c PCIe и смотреть на живом железе что и как.

Сигналтаб прикручен именно к Avalon c PCIe. И когда комп читает, на шине все отлично, а вот комп получает другое значение. Попробовали чтение исключительно словами 64 бит - ошибка сохраняется.

И кстати, когда работали с windriver под виндой таких проблем вообще не возникало.


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
AVR
сообщение May 31 2018, 08:05
Сообщение #18


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 341
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(torik @ May 31 2018, 10:48) *
Можно конечно запариться, но что толку - не работает когда перезагружаешь комп при включенной плате, кто это будет повторять. И кстати, когда работали с windriver под виндой таких проблем вообще не возникало.

Раз под виндой проблемы нет - значит железо 100% верное. И дело в драйвере. А Вы не хотите его показывать (урезанный пример). Что значит "кто будет повторять" - мы посмотрим полный код драйвера примера и поймем что не так.


--------------------
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение May 31 2018, 08:38
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 203
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!
Цитата(torik @ May 31 2018, 10:48) *
Т.е. ломается что-то внутри IP PCIe. И как ее сбросить, починить не понятно.
А после перегрузки компа PCIe устройство по новой инициализируете? При этом все нормально проходит?

Цитата(torik @ May 31 2018, 10:48) *
Сигналтаб прикручен именно к Avalon c PCIe. И когда комп читает, на шине все отлично, а вот комп получает другое значение.
Сложно из далека судить по критерию "на шине все отлично". Если все так отлично на Avalon то прикрутите сигналтап дальше по иерархии непосредственно на вход/выход транзакций с логического уровня PCIe и смотрите сырые транзакции там. И сравнивайте что при этом входит и выходит на Avalon.

Цитата(torik @ May 31 2018, 10:48) *
Попробовали чтение исключительно словами 64 бит - ошибка сохраняется.
И кстати, когда работали с windriver под виндой таких проблем вообще не возникало.
Что в винде что в Linux CPU выполняет чтение отмапленой в BAR памяти одинаково.
Если разное поведение при перезагрузке - то значит получается неодинаковые/неполные процедуры инициализации PCIe устройства, при неправильной реализации логики сброса устройства при холодном (после Power on) и теплом старте (только reset PCie) FPGA.

В любом случае гадать без конкретики на гуще (кофейной ли ?) тяжко, а делать на коленке свой проект PCIe на Cyclone V лениво. rolleyes.gif

Удачи! Rob.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th September 2018 - 10:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016