Доброго времени суток форумчане. Появилась идея создать устройство на 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 не подключены.