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

 
 
 
Reply to this topicStart new topic
> Чем можно посмотреть трафик DMA на PCIe?, DMA обмен между Altera Arria GX <-> PCie
sovereign
сообщение Oct 14 2009, 11:07
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 5-09-09
Из: Ukraine
Пользователь №: 52 204



Всем привет

Приобрели Altera Arria GX dev kit.
Начальная задача-отбирать DMA пакеты с kernel space -> user space у LInux 2.6.25.
Обязательно ли дописывать у драйвере char часть,а потом обращаться к нему,как к файлу,
или существуют какие-то спецыальние проги для захвата пакетов?

Наперед спасибо.
Go to the top of the page
 
+Quote Post
Harbour
сообщение Oct 15 2009, 04:07
Сообщение #2


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Дык, без драйвера конкретного устройства любая прога до спины. Сначала пишется драйвер, потом через файл или shmem данные передаются в userspace, далее по select/poll или event'у эти данные читаем.
Go to the top of the page
 
+Quote Post
sovereign
сообщение Oct 16 2009, 13:35
Сообщение #3





Группа: Участник
Сообщений: 6
Регистрация: 5-09-09
Из: Ukraine
Пользователь №: 52 204



Какие могут быть причины,чтобы драйвер в 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 шине?
Go to the top of the page
 
+Quote Post
Harbour
сообщение Oct 17 2009, 05:01
Сообщение #4


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Вообще-то для стандартной работы с прерываниями сonfig space не читают, а принято просто вызывать request_irq(), так как стандартный интерфейс pci все эти движухи с config_space проделывает сам. Другое дело, что устройство может иметь проблему с irq pin на hw уровне (например не задана в корке). Начинать нужно со стандартной demo прошивки - смотреть шо к чему, сравнивать и т.д.
Go to the top of the page
 
+Quote Post
sovereign
сообщение Oct 19 2009, 11:03
Сообщение #5





Группа: Участник
Сообщений: 6
Регистрация: 5-09-09
Из: Ukraine
Пользователь №: 52 204



Спасибо,буду разбиратся.
Половина проблемы ясна-PCIe не имеет прерываний #INTA...А прерывания организированы через PCIe контроллер прерываний,
тоесть PCIe выдает не физические,а "виртуальние" прерывания,типа IRQ line #255,а не физические IRQ line [1..19].
Надо разбиратся,почему request_irq не вертает виртуальние прерывания.
Сомнительно,что ето проблема на HW уровне.
Go to the top of the page
 
+Quote Post
sovereign
сообщение Oct 24 2009, 15:04
Сообщение #6





Группа: Участник
Сообщений: 6
Регистрация: 5-09-09
Из: Ukraine
Пользователь №: 52 204



Еще такой вопрос,как посмотреть,или вообще возможно ,скорость обмена между PCIe<->девайс?
Может у Линуксе уже есть стандартные решения?
Драйвер заработал,теперь хочу проверить ефективность его работы.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:09
Рейтинг@Mail.ru


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