sovereign 0 14 октября, 2009 Опубликовано 14 октября, 2009 · Жалоба Всем привет Приобрели Altera Arria GX dev kit. Начальная задача-отбирать DMA пакеты с kernel space -> user space у LInux 2.6.25. Обязательно ли дописывать у драйвере char часть,а потом обращаться к нему,как к файлу, или существуют какие-то спецыальние проги для захвата пакетов? Наперед спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbour 0 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба Дык, без драйвера конкретного устройства любая прога до спины. Сначала пишется драйвер, потом через файл или shmem данные передаются в userspace, далее по select/poll или event'у эти данные читаем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sovereign 0 16 октября, 2009 Опубликовано 16 октября, 2009 · Жалоба Какие могут быть причины,чтобы драйвер в Linux не мог выделять прерывания? Фрагмент dmesg. ..... Enabled MSI interrupting. Using a 64-bit DMA mask. IRQ pin #0 (0=none, 1=INTA#...4=INTD#). IRQ line #0. Cannot request IRQ line #253. ...... Тоесть,когда вызывается pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &irq_pin), irq_pin стает 0. Девайс Arria GX x4 вставляется у PCIe x16. Есть кикие то особености прерываний на шине PCIe? Согласно документации,когда irq_pin ,который считан с конфигурационной части PCie девайса,равен 0. Тогда девайс вообще не имеет прерываний. Но почему у других пользоватей все OK,а у меня проблема. Может порблема у PCIe шине? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbour 0 17 октября, 2009 Опубликовано 17 октября, 2009 · Жалоба Вообще-то для стандартной работы с прерываниями сonfig space не читают, а принято просто вызывать request_irq(), так как стандартный интерфейс pci все эти движухи с config_space проделывает сам. Другое дело, что устройство может иметь проблему с irq pin на hw уровне (например не задана в корке). Начинать нужно со стандартной demo прошивки - смотреть шо к чему, сравнивать и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sovereign 0 19 октября, 2009 Опубликовано 19 октября, 2009 · Жалоба Спасибо,буду разбиратся. Половина проблемы ясна-PCIe не имеет прерываний #INTA...А прерывания организированы через PCIe контроллер прерываний, тоесть PCIe выдает не физические,а "виртуальние" прерывания,типа IRQ line #255,а не физические IRQ line [1..19]. Надо разбиратся,почему request_irq не вертает виртуальние прерывания. Сомнительно,что ето проблема на HW уровне. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sovereign 0 24 октября, 2009 Опубликовано 24 октября, 2009 · Жалоба Еще такой вопрос,как посмотреть,или вообще возможно ,скорость обмена между PCIe<->девайс? Может у Линуксе уже есть стандартные решения? Драйвер заработал,теперь хочу проверить ефективность его работы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться