Цитата(Владимир_О @ Jun 19 2012, 17:24)

Ситуация определенно проясняется для меня, что само по себе радует. Вот теперь, на основании вышесказанного, задался вопросом - может ли плата с Ethernet'ом работать slave'ом на PCIe шине? То бишь драйвер должен постоянно опрашивать эту плату или же она сама по приходу пакета в режиме мастера должна инициировать транзакции на шине?
Без Bus Master'а Gigabit Ethernet реализовывать бессмысленно.
У меня было как-то так:
1. приходящие пакеты начинают складываться в FIFO;
2. как только хоть 1 целый пакет принят - выставляется IRQ.
3. по IRQ самопальный NIC Driver настраивает Bus Master (куда и сколько лить данных).
4. после переливки части данных из FIFO - новое IRQ, и опять драйвер смотрит, что он может забрать из ОЗУ (машины) и куда Bus Master'у складировать новые пакеты.
Вот как-то так оно и работало на вот этом монстрике:
Да, да, помимо Ethernet и USB Host'а, тут еще PATA и SATA... Так что о маразмах, говорю не понаслышке,.. а по собственному опыту + опыту коллег.
P.S. я делал Ethernet часть, на которой удавалось передавать файлы (по ftp) со скоростями от 110 до 112 МБайт/с.