реклама на сайте
подробности

 
 
> работа с PCI в embedded, нужен совет
_Vladimir_
сообщение Jan 2 2008, 10:23
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 114
Регистрация: 10-05-05
Пользователь №: 4 893



Есть Linux машина с PCI-66 интерфейсом на FPGA.
Загрузка ядра обнаружила устройство и в /proc созданы соответствующие PCI файлы и директории.
Из приложения (использовал как пример pciutils) читаю конфиг space.
Но не могу понять как мне работать с данными?
На PCI target создал 2 bar-а в memory - небольшой регистровый пул и окно для потокового чтения.
Ядро мапировало оба бара как задано и PCI настроило с method как proc
Как мне из userspace получить read/write в нужный бар?
Очевидно нужно писать еще один уровень драйвера?
Посколько в коде ядра нашел функции оперирующие с bars:
void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max)
iomap можно вызвать из userspace или он может быть только в модуле ядра или
модуль можно будет подгрузить через insmod ?
Все мои пробы кончались segmentation fault.
После чтения доков только окончательно запутался, поскольку нет понимания- как вообще правильно работать с устройствами из userspase.
Вижу что через файлы. Это понятно.
Насторожило что в pciutils КАЖДОЕ обращение закрывает/открывает дескриптор.
Это что так надо? или просто так сделано? Будут ли потери эффективности при потоковом обращении через файл таким способом?
После загрузки в proc на PCI уже имелся fd = 4. Полагаю открытый значит.
Или это "чужой", а надо заводить свой?
В общем одни вопросы, поскольку начинающий.
Подскажите кто-нибудь, или ссылку на литературу.
Как писать драйверы описано достаточно подробно, но далее у меня нет ясности, привык к хорошо документированым API, а тут полная каша, плюс еще большая часть доков а-ля 1999 год - а в OS принципиальные изменения.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th August 2025 - 16:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01449 секунд с 7
ELECTRONIX ©2004-2016