URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 2220
[ Назад ]

Исходное сообщение
"драйверы PCI устройств под Linux"

Отправлено Morozov , 29-Окт-03 15:14 
Всем привет.
Как писать драйверы PCI устройств под Linux?
В частности как работать с конф. пространством PCI устройств?
Что такое модуль ядра я знаю.
Нашёл групу функций pcibios_(read|write)...
Нашёл файл pci.h.
Написал простой модуль ядра читающий конф. пространство заданного устройства.
Для стандартных устройств (сетивуха, мультимедиа устройства) всё нормально. Но вот для нашей платы /*находится тоже в разработке*/ не работает. При этом биос её находит. Выводит вендор и девайс ID при загрузке. Правильно определяет её положение на шине. Далее при загрузке Линукс опрашивает это устройство (определили аппаратно). При работе модуля обращения к конфиг. пространству устройства не проходят вообще. (pcibios_read... возвращает одни нули. /*для "фирменных" устройств возвращаются правильные значения*/
Функция pci_find_slot возращает NULL для нашего устройства/*для "фирменных" устройств работает верно*/.
И ешё в W2k при опросе всех устройств происходят обращения к конф. пространству устройства.
Если можно простой пример пример или ссылачку на такой пример.
Где можно почитать про написание PCI драйверов под Linux.
/usr/src/linux/documentation/pci.txt - читал. Но без примера не разобраться.

Содержание

Сообщения в этом обсуждении
"драйверы PCI устройств под Linux"
Отправлено vvv , 29-Окт-03 15:33 
найди книжку Алесандро Рубини (Linux Device Drivers, second edition)
валяется на Oreilly.com ее можно скачать в электронном виде.
Затем ее прочти.
Все вопросы отпадут сами.

"драйверы PCI устройств под Linux"
Отправлено Morozov , 31-Окт-03 20:19 
>найди книжку Алесандро Рубини (Linux Device Drivers, second edition)
>валяется на Oreilly.com ее можно скачать в электронном виде.
>Затем ее прочти.
>Все вопросы отпадут сами.

Читал.
Но народ говорит, что в этой книге изложено ка писать драйвер под ядро 2.2, а мне надо 2.4.
К стате проблема о которой я писал выше решилась сама собой.
Но всеравно много не ястностей. Какие стандартные шаги должен выполнять драйвер, что бы соответствовать модели драйвера PCI устройства для ядра 2.4. Если можешь изложи по шагам.


"драйверы PCI устройств под Linux"
Отправлено apels1n , 11-Ноя-03 12:56 
>Читал.
>Но народ говорит, что в этой книге изложено ка писать драйвер под
>ядро 2.2, а мне надо 2.4.

В Linux Device Drivers есть все. Включая и инфу про 2.4. Плохо читал...



"драйверы PCI устройств под Linux"
Отправлено jd , 08-Ноя-03 03:41 
Посмотри в сторону pci_register_driver().
А также рекомендую найти в ядре драйвер поменьше какого-нибудь pci устройства (а лучше парочку) и посмотреть его.