@Kamikadze1024

Как обратиться к памяти pci устройства при написании драйвера под Linux?

Есть pci плата на основе контроллера plx. На ней своя память. Как обратиться к ячейкам этой памяти при реализации linux драйвера?
  • Вопрос задан
  • 3942 просмотра
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Тут важно знать, как на PCI эта плата видна. Есть ли DMA, или только регистры PCI?
Объяснять достаточно долго, лучше прочитать, а если что непонятно, задавать более конкретные вопросы.
Общее:
- найти устройство pci_get_device()
- установить регистры PCI, включить устройство
- установить обработчик прерывания
- отмапировать DMA и регистры
- далее, работаем обычно через обработку прерывания, реализацию IOCTL или через дескриптор устройства. (по поводу реализации своих ioctl, лучше сначала посмотреть ен подходит ли чего из существующего)

Документация по работе с PCI из драйвера - https://www.kernel.org/doc/Documentation/PCI/pci.txt
Очень хорошее объяснение работы PCI - www.tldp.org/LDP/tlk/dd/pci.html
Да и вообще обязательно прочитать эту книгу полностью - www.tldp.org/LDP/tlk

Разрабатывать быстро драйверы можно начать с Померанца (но там нет PCI, а только примеры реализации драйверов) www.tldp.org/LDP/lkmpg/2.6/html/index.html

В любом случае в помощь lspci, документация в самом ядре и конечно же исходники драйверов и то, что рекомендовал.

PS. И да, это не так сложно, как у меня написано! Простой PCI-драйвер строк в 100-150!!!!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы