aosp 0 29 апреля, 2011 Опубликовано 29 апреля, 2011 · Жалоба Начал разбираться с 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 29 апреля, 2011 Опубликовано 29 апреля, 2011 · Жалоба Вот не пойму, Вы что, на запрос записи в память устройства процессору данные хотите отправлять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aosp 0 30 апреля, 2011 Опубликовано 30 апреля, 2011 · Жалоба Вот не пойму, Вы что, на запрос записи в память устройства процессору данные хотите отправлять? Как я понял из спецификации , на non posted запросы нужно всегда формировать комплешины. В данном случае от процессора приходит запрос на запись данных в память и я должен сформировать пустой комлешн без данных сигнализируя процессору, что данные записаны. Если я не прав поправте меня пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 30 апреля, 2011 Опубликовано 30 апреля, 2011 · Жалоба Как я понял из спецификации , на non posted запросы нужно всегда формировать комплешины. В данном случае от процессора приходит запрос на запись данных в память и я должен сформировать пустой комлешн без данных сигнализируя процессору, что данные записаны. Если я не прав поправок меня пожалуйста. А как Вы определили, что он non-posted? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aosp 0 30 апреля, 2011 Опубликовано 30 апреля, 2011 · Жалоба А как Вы определили, что он non-posted? Честно говоря я об этом чтото не подумал, по TLP действительно этого не понять... вы хотите сказать что в моем случае комплешн отправлять не нужно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 30 апреля, 2011 Опубликовано 30 апреля, 2011 · Жалоба Честно говоря я об этом чтото не подумал, по TLP действительно этого не понять... вы хотите сказать что в моем случае комплешн отправлять не нужно? не нужно. Возьмите готовое решение, а то у Вас так много времени уйдёт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aosp 0 30 апреля, 2011 Опубликовано 30 апреля, 2011 · Жалоба не нужно. Возьмите готовое решение, а то у Вас так много времени уйдёт. Спасибо за совет! Обязательно после праздников попробую на работе. По поводу готового решения нельзя ли по подробнее, что вы имеете ввиду? Имеются какие то конкретные примеры, которые можно было бы взять за основу организации шинной модели? У меня еще остался один не очевидный вопрос к циклам записи, а даже скорее к не к ним а к организации циклов задержки. К примеру если приемное устройство не успевает принимать данные от передающего. Каким образом осуществляется сигнализация о неготовности приемного устройства? В AVALON ST есть сигнал RX_READY, выставляя который в принципе можно приостановить шину AVALON, но будет ли при этом задержаны циклы PCIE? Скорей всего данные будут копится во внутренних буферах AVALON и все это в конце концов плохо закончится. Намекните как приостановить входной поток со стороны PCIE? Или я опять придумываю несуществующие проблемы и AVALON будет сам сигнализировать PCIE немного притормозить? Спасибо за то что разъясняете ключевые моменты, потому как зная их намного легче разбираться в других тонкостях довольно сложного стандарта... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 1 мая, 2011 Опубликовано 1 мая, 2011 · Жалоба Спасибо за совет! Обязательно после праздников попробую на работе. По поводу готового решения нельзя ли по подробнее, что вы имеете ввиду? Имеются какие то конкретные примеры, которые можно было бы взять за основу организации шинной модели? У меня еще остался один не очевидный вопрос к циклам записи, а даже скорее к не к ним а к организации циклов задержки. К примеру если приемное устройство не успевает принимать данные от передающего. Каким образом осуществляется сигнализация о неготовности приемного устройства? В AVALON ST есть сигнал RX_READY, выставляя который в принципе можно приостановить шину AVALON, но будет ли при этом задержаны циклы PCIE? Скорей всего данные будут копится во внутренних буферах AVALON и все это в конце концов плохо закончится. Намекните как приостановить входной поток со стороны PCIE? Или я опять придумываю несуществующие проблемы и AVALON будет сам сигнализировать PCIE немного притормозить? Спасибо за то что разъясняете ключевые моменты, потому как зная их намного легче разбираться в других тонкостях довольно сложного стандарта... У altera есть ref design для pcie, лучше, конечно, через nios или через сторонний dma контроллер. Приостановить можно, какие сигналы на выходе ядра в алтьере не знаю, я с xilinx работаю. Только вряд ли у Вас приёмник будет занят, скорость 10 мбайт в секунду вряд ли что-то может перегрузить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aosp 0 3 мая, 2011 Опубликовано 3 мая, 2011 · Жалоба Спасибо огромное за совет! Действительно на эти циклы формировать комплешины не требуется. Циклы записи успешно отрабатываются. Без вашей поддержки я бы потратил кучу времени неправильно истолковав соотв главу стандарта. К сож он довольно сложно описан однако ответы там конечноже есть, только поиск их может длится не один день... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 3 мая, 2011 Опубликовано 3 мая, 2011 · Жалоба Спасибо огромное за совет! Действительно на эти циклы формировать комплешины не требуется. Циклы записи успешно отрабатываются. Без вашей поддержки я бы потратил кучу времени неправильно истолковав соотв главу стандарта. К сож он довольно сложно описан однако ответы там конечноже есть, только поиск их может длится не один день... Да не за что. Это только верхушка айсберга, не советую делать свою логику с нуля, уйдёт очень много времени, присмотритесь к мостам для nios. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novartis 0 7 июня, 2011 Опубликовано 7 июня, 2011 · Жалоба To aosp: Если все еще есть вопросы по PCIE - обращайтесь, могу помочь советами, так как сам через это проходил год назад. Сейчас имеется на руках работоспособный (ну почти))) ) проект по обмену данными через PCIE как разовыми командами, так и по dma каналу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aosp 0 22 июня, 2011 Опубликовано 22 июня, 2011 · Жалоба спасибо господа, за советы и разьяснения! проект начал жить и с pcie на начальном уровне разобрался. будут вопросы обязательно к вам обращусь! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться