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

 
 
 
Reply to this topicStart new topic
> COMPLETION для MEMORY WRITE, Чайниковский вопрос
aosp
сообщение Apr 29 2011, 10:48
Сообщение #1


к.т.н.
***

Группа: Модераторы
Сообщений: 242
Регистрация: 21-06-04
Из: Санкт–Петербург, Россия
Пользователь №: 75



Начал разбираться с PCIE и есть вопрос.
Опиушу ситуацию:
1. Есть мат. плата на которой стоит процессорный модуль с LINUX.
2. На плате также стоит FPGA ARRIA2GX, которая связана с процессорным модулей по PCIE
3. Хочется реализовать простейший аппаратный цикл в данном случае MEMORY WRITE non posted
4. В FPGA используется HARD IP PCIE
5. В результате енумерации линукс увидел устройство с задаными ID . Увиделся выбранный BAR.
6. Делается запись в этот бар со стороны LINUX со смещением 0х0 значение 0х30. (32bit)
7. На анализаторе в FPGA видим реквест: (64 битные слова)
00Е0_000F-4000_0001
0000_0000_BC00_0000
0000_0030_0000_0030

FPGA формирует в ответ на это COMPLETION
0100_0000-0А00_0001
0000_0000-00Е0_0000

но после этого операционка вешается. Явно почему то не понравился этот комплешн...

8. Делаем запись в этот бар со стороны LINUX со смещением 0х8 значение 0хDEAD_BEEF (32bit)
9. На анализаторе в FPGA видим реквест: (64 битные слова)
00Е0_000F-4000_0001
0000_0000_BC00_0020
DEAD_BEEF_DEAD_BEEF

FPGA формирует в ответ на это COMPLETION
0100_0000-0А00_0001
0000_0000-00Е0_0000

Все ок...

Подскажите люди добрые, в чом собака порылась?
В принципе проходят даже некоторые циклы чтения, но также иногда зависают....
Если нужна какая доп информация отвечу.
Понимаю что вопрос чайниковский, но все же!

p.s. Не откажусь от грамотной консультации, могу перезвонить с вопросами и т.д.
p.s.s. Понимаю что есть какая то мелочь но найти ее очень тяжело.
p.s.s.s. Может просто кто проверит правильность формируемого комплешина? Может кто даст исходник какой посмотреть с примером простейшего чтения/записи слов без всяких DMA и усложнений?
В качестве интерфейса к ALTERA HARD-IP используется AVALON-ST.
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Apr 29 2011, 17:28
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Вот не пойму, Вы что, на запрос записи в память устройства процессору данные хотите отправлять?
Go to the top of the page
 
+Quote Post
aosp
сообщение Apr 30 2011, 12:11
Сообщение #3


к.т.н.
***

Группа: Модераторы
Сообщений: 242
Регистрация: 21-06-04
Из: Санкт–Петербург, Россия
Пользователь №: 75



Цитата(dmitry-tomsk @ Apr 29 2011, 21:28) *
Вот не пойму, Вы что, на запрос записи в память устройства процессору данные хотите отправлять?

Как я понял из спецификации , на non posted запросы нужно всегда формировать комплешины. В данном случае от процессора приходит запрос на запись данных в память и я должен сформировать пустой комлешн без данных сигнализируя процессору, что данные записаны. Если я не прав поправте меня пожалуйста.
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Apr 30 2011, 12:12
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(aosp @ Apr 30 2011, 16:11) *
Как я понял из спецификации , на non posted запросы нужно всегда формировать комплешины. В данном случае от процессора приходит запрос на запись данных в память и я должен сформировать пустой комлешн без данных сигнализируя процессору, что данные записаны. Если я не прав поправок меня пожалуйста.

А как Вы определили, что он non-posted?
Go to the top of the page
 
+Quote Post
aosp
сообщение Apr 30 2011, 13:27
Сообщение #5


к.т.н.
***

Группа: Модераторы
Сообщений: 242
Регистрация: 21-06-04
Из: Санкт–Петербург, Россия
Пользователь №: 75



Цитата(dmitry-tomsk @ Apr 30 2011, 16:12) *
А как Вы определили, что он non-posted?


Честно говоря я об этом чтото не подумал, по TLP действительно этого не понять...
вы хотите сказать что в моем случае комплешн отправлять не нужно?
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Apr 30 2011, 16:03
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(aosp @ Apr 30 2011, 16:27) *
Честно говоря я об этом чтото не подумал, по TLP действительно этого не понять...
вы хотите сказать что в моем случае комплешн отправлять не нужно?

не нужно. Возьмите готовое решение, а то у Вас так много времени уйдёт.
Go to the top of the page
 
+Quote Post
aosp
сообщение Apr 30 2011, 18:13
Сообщение #7


к.т.н.
***

Группа: Модераторы
Сообщений: 242
Регистрация: 21-06-04
Из: Санкт–Петербург, Россия
Пользователь №: 75



Цитата(dmitry-tomsk @ Apr 30 2011, 20:03) *
не нужно. Возьмите готовое решение, а то у Вас так много времени уйдёт.


Спасибо за совет! Обязательно после праздников попробую на работе.
По поводу готового решения нельзя ли по подробнее, что вы имеете ввиду? Имеются какие то конкретные примеры, которые можно было бы взять за основу организации шинной модели?

У меня еще остался один не очевидный вопрос к циклам записи, а даже скорее к не к ним а к организации
циклов задержки. К примеру если приемное устройство не успевает принимать данные от передающего.
Каким образом осуществляется сигнализация о неготовности приемного устройства?
В AVALON ST есть сигнал RX_READY, выставляя который в принципе можно приостановить шину AVALON, но будет ли
при этом задержаны циклы PCIE? Скорей всего данные будут копится во внутренних буферах AVALON и все это в конце концов плохо закончится.
Намекните как приостановить входной поток со стороны PCIE? Или я опять придумываю несуществующие проблемы и AVALON будет сам сигнализировать PCIE немного притормозить?

Спасибо за то что разъясняете ключевые моменты, потому как зная их намного легче разбираться в других тонкостях
довольно сложного стандарта...
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение May 1 2011, 07:23
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(aosp @ Apr 30 2011, 22:13) *
Спасибо за совет! Обязательно после праздников попробую на работе.
По поводу готового решения нельзя ли по подробнее, что вы имеете ввиду? Имеются какие то конкретные примеры, которые можно было бы взять за основу организации шинной модели?

У меня еще остался один не очевидный вопрос к циклам записи, а даже скорее к не к ним а к организации
циклов задержки. К примеру если приемное устройство не успевает принимать данные от передающего.
Каким образом осуществляется сигнализация о неготовности приемного устройства?
В AVALON ST есть сигнал RX_READY, выставляя который в принципе можно приостановить шину AVALON, но будет ли
при этом задержаны циклы PCIE? Скорей всего данные будут копится во внутренних буферах AVALON и все это в конце концов плохо закончится.
Намекните как приостановить входной поток со стороны PCIE? Или я опять придумываю несуществующие проблемы и AVALON будет сам сигнализировать PCIE немного притормозить?

Спасибо за то что разъясняете ключевые моменты, потому как зная их намного легче разбираться в других тонкостях
довольно сложного стандарта...

У altera есть ref design для pcie, лучше, конечно, через nios или через сторонний dma контроллер. Приостановить можно, какие сигналы на выходе ядра в алтьере не знаю, я с xilinx работаю. Только вряд ли у Вас приёмник будет занят, скорость 10 мбайт в секунду вряд ли что-то может перегрузить.
Go to the top of the page
 
+Quote Post
aosp
сообщение May 3 2011, 17:35
Сообщение #9


к.т.н.
***

Группа: Модераторы
Сообщений: 242
Регистрация: 21-06-04
Из: Санкт–Петербург, Россия
Пользователь №: 75



Спасибо огромное за совет! Действительно на эти циклы формировать комплешины не требуется. Циклы записи успешно отрабатываются. Без вашей поддержки я бы потратил кучу времени неправильно истолковав соотв главу стандарта. К сож он довольно сложно описан однако ответы там конечноже есть, только поиск их может длится не один день...
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение May 3 2011, 19:55
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(aosp @ May 3 2011, 21:35) *
Спасибо огромное за совет! Действительно на эти циклы формировать комплешины не требуется. Циклы записи успешно отрабатываются. Без вашей поддержки я бы потратил кучу времени неправильно истолковав соотв главу стандарта. К сож он довольно сложно описан однако ответы там конечноже есть, только поиск их может длится не один день...

Да не за что. Это только верхушка айсберга, не советую делать свою логику с нуля, уйдёт очень много времени, присмотритесь к мостам для nios.
Go to the top of the page
 
+Quote Post
novartis
сообщение Jun 7 2011, 17:26
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



To aosp:
Если все еще есть вопросы по PCIE - обращайтесь, могу помочь советами, так как сам через это проходил год назад. Сейчас имеется на руках работоспособный (ну почти))) ) проект по обмену данными через PCIE как разовыми командами, так и по dma каналу.
Go to the top of the page
 
+Quote Post
aosp
сообщение Jun 22 2011, 18:17
Сообщение #12


к.т.н.
***

Группа: Модераторы
Сообщений: 242
Регистрация: 21-06-04
Из: Санкт–Петербург, Россия
Пользователь №: 75



спасибо господа, за советы и разьяснения! проект начал жить и с pcie на начальном уровне разобрался.
будут вопросы обязательно к вам обращусь!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 04:32
Рейтинг@Mail.ru


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