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