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

 
 
> И снова этот PCI, помогите разобраться
T00T
сообщение Jun 1 2015, 12:29
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 25-05-15
Пользователь №: 86 867



Доброго времени суток форумчане. Появилась идея создать устройство на PCI.
В плис я скажем новичок, но всю свою сознательную жизнь программировал на АСМе(Z80 avr),на AHDL gпару проектов делал, ну и Си немного касался.

Так что если глупые вопросы буду задавать не обессудьте.
Итак: Нужно сотворить TARGET устройство на PCI шине, у которого пусть будет 32x32bit слова памяти отображаемых в МЕМ области.

Я спаял железку на плисине XC6SLX9.
Ну на сколько понял написал проект для неё.
Результаты таковы:
Я взял материнку старую(Пень 3) для испытаний и начал отладку на ней. В итоге биос видит устройство, прописывает BAR в общем на первый взгляд все ок.


Проблеммы:
железка работает только на этой плате старой, и чем новее мать - тем хуже работает. На (пеньке-4) биос запускается и пишет BIOS ROM cheksum error
...............System halt.(Успевает пройти 7 транзакций с платой!!!!!)
И всё, а CORE 2 DUO просто весит.
И ещё один косячёк замечен.
На старой плате запускаю Linux - lspci отображает устройство, но когда LSPCI -X читаешь конфигурационную область - выдает что в 00 регистре FFFFFFFF.
А остальное всё считывает нормально.
Я смотрел этот вопрос и Запроса в этот адрес просто нет!!!!!! Или плата его в упор не видит!!!!

В чём может быть проблема с отказом работы на новых матерях. Ведь стандарт он и есть стандарт - должен работать везде. С появлением новых версий стандарта сигналы по другому выставляться не могут !!!!!
Может какая то странная материнка??????

Но ведь на новой, успевает пройти 7 транзакций с платой - зависаний на них нет - значит всё ок. с сигналами.
Опешу что реализовано, а что не делал:
плата отвечает только на команды R/W configure и R/W memory. На другие просто не отвечает.
Не анализируется C/ВЕ в фазе данных, а при чтении в фозе данных выдаю 0000.
паритет выставляется.
Stop не подключен.
REQ, GNT не подключены.



Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
gerber
сообщение Jun 1 2015, 20:42
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088



Цитата(T00T @ Jun 1 2015, 20:27) *
И вот это можно по подробнее????

Констрейны - это, если говорить просто, правила (ограничения) в дизайне FPGA, которые накладывает разработчик на синтезатор/маппер, чтобы он не раскидал дизайн по матрице, как ему "вздумается", а соблюдал определенные условия. Например, нужный сигнал выводил на нужную ножку, а не на любую свободную.
Я имел в виду временные ограничения. Чтобы определенные сигналы задерживались внутри матрицы не более, чем на какое-то время. Это побудит маппер потрудиться, и расположить ячейки с учетом заданных временных правил (ну или выдать ошибку, если это невозможно). Подробнее в Xilinx Constraints Guide
Если сложно сразу понять - найдите готовые констрейны для любой PCI корки, как правило, это файл с расширением .ucf в дизайне.
Цитата(T00T @ Jun 1 2015, 21:40) *
Почему тогда биос виснет???????

Виснет комп при работе с PCI в таком случае - если устройство распознало свой адрес (DEVSEL# = 0), но так и не завершило транзакцию с помощью TRDY#.
Цитата(T00T @ Jun 2 2015, 00:08) *
...
пока писал придумал сам ответ на этот вопрос - анализируя запросы можно сказать что к 00 адресу биос обращается несколько раз подряд, и не факт что он читает этот регистр в первой посылке, может это уже вторая по счёту посылка, а устройство видит её как первую.
ну тогда всё встаёт на свои места.

А современные биосы могут запрашивать допустим 1 раз и как раз пропуск!! - типа устройства нет. И поэтому нет обращений.

Может ли устройство пропускать именно первую посылку в пакете, а последующие нет, с чем это может быть связанно?

Если речь о PCI Target, то никаких пакетов там нет, все просто и тупо - при FRAME#=0 задается тип транзакции, потом адрес, потом данные. Научитесь пользоваться ChipScope, вытащите в него все PCI сигналы и всё будет видно как на ладони, я именно так и делал в свое время, отлаживая PCI Target.


--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
Go to the top of the page
 
+Quote Post
T00T
сообщение Jun 1 2015, 21:49
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 25-05-15
Пользователь №: 86 867



Цитата(gerber @ Jun 2 2015, 00:42) *
Если речь о PCI Target, то никаких пакетов там нет, все просто и тупо - при FRAME#=0 задается тип транзакции, потом адрес, потом данные. Научитесь пользоваться ChipScope, вытащите в него все PCI сигналы и всё будет видно как на ладони, я именно так и делал в свое время, отлаживая PCI Target.


Я имел ввиду, что ну наверно биос, так же как чтение конфиг регистров через lspci, посылают на одно устройство подряд несколько запросов и первый запрос теряется.

Спасибо за ответы, буду пытаться ковырять.

Цитата(gerber @ Jun 2 2015, 00:42) *
Если сложно сразу понять - найдите готовые констрейны для любой PCI корки, как правило, это файл с расширением .ucf в дизайне.


Если не трудно дайте ссылку на корку, ну или хотя бы такой .ucf
В файле .ucf я прописывал пины только и всё.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- T00T   И снова этот PCI   Jun 1 2015, 12:29
- - gerber   1) Возможно, на новых "матерях" PCI 66 М...   Jun 1 2015, 15:45
- - T00T   ну вот что бы некоторые вопросы сразу отпадали так...   Jun 1 2015, 16:27
- - T00T   и вот ещё что ну ладно после 7 - го запроса зависа...   Jun 1 2015, 17:40
- - T00T   На более свежих вообще устройство не видит обращен...   Jun 1 2015, 20:08
- - T00T   Ну или хотя бы подскажите как задать так что бы ра...   Jun 2 2015, 12:30
- - Kuzmi4   2 T00T Вам сюда И вот мурзилка неплохая, не забы...   Jun 2 2015, 16:37
|- - T00T   доброго времени суток . Всем спасибо за ответы. Ит...   Jun 5 2015, 08:17
|- - gerber   Цитата(T00T @ Jun 5 2015, 12:17) ну вот ф...   Jun 5 2015, 09:08
|- - T00T   Цитата(gerber @ Jun 5 2015, 13:08) Не буд...   Jun 5 2015, 09:42
|- - gerber   Цитата(T00T @ Jun 5 2015, 13:42) Ну я уже...   Jun 6 2015, 05:43
- - Kuzmi4   2 2 T00T в DS собственно и написано что и куда над...   Jun 5 2015, 10:11
- - T00T   Итак всем спасибо!!!!!!...   Jun 5 2015, 11:57
- - T00T   Ну да, так и было на первом фото - плата от модема...   Jun 9 2015, 18:51


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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 16:12
Рейтинг@Mail.ru


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