LINUX.ORG.RU

[fpga] [pcie] [drv] модификация драйвера при изменении количесва lanes


0

1

Есть устройство на базе fpga spartan6, подключаемое к компьютеру через pci express 1x. Для него написан драйвер. Всё работает хорошо.

Вопрос: Если поменять pcie 1x на 2x (4, 8, 16), нужно ли будет модифицировать драйвер, или он ничего не заметит?

Я так понял ничего менять не надо, всё заработает. Только скорость передачи данных будет в 2 (4, 8, 16) раз больше. А вот fpga прошивку менять надо будет. Я прав?

Спасибо.

С сайта Xilinx:

The Spartan-6 FPGA Integrated Endpoint Block for PCI Express (PCIe®) solution supports a 1-lane configuration that is protocol-compliant and electrically compatible with the PCI Express Base Specification v1.1.

Так что воткни ты хоть в x16, будет работать на одной lane IMO.

Ну это так, пальцем в небо, кто его знает, что в ПЛИСине зашито, и что за драйвер написан, вопрос из разряда: «а вы не знаете, я утюг дома выключил?»

adriano32 ★★★ ()
Ответ на: комментарий от adriano32

Ну в общем-то да, есть такое дело. Но вопрос не в этом. Допустим если взять virtex5, например, который поддерживает «многоиксовые» конфигурации, надо ли будет менять драйвер?

Драйвер простой, читает данные (много данных) из устройства. Настраивает dma engine и ждёт прерывания, т.е. конец передачи, а потом всё отдаёт юзеру. Всё это сделано через chardev with read(2) & ioctl(2) implemented.

mi_estas ()

Количество линий между pcie-девайсом и pcie-хабом - это внутренние детали девайса и хаба.

mv ★★★★★ ()
Ответ на: комментарий от mi_estas

как-то непонятно ты изъясняешься, как по мне: сперва спрашивал «Если поменять pcie 1x на 2x (4, 8, 16)...», а теперь «если взять virtex5...».

Может внятно объяснишь что есть и что хочется? Насколько я понял, ты мечтаешь об увеличении скорости передачи данных от устройства. На данном этапе для Spartan6, у которого поддерживается только 1 Lane, это невозможно, в какой бы слот (2x, 4x, 8x, 16x) ты его не воткнул.

Если заменить его на Virtex5, у которого скажем 8 или 4 Lane, то тут я хз, потому что не знаю, кто отвечает за конфигурацию и autonegotiation на стороне ПЛИС: тот кто пишет core или встроенный модуль. Если тот кто пишет core и он написал её из расчёта обмена по 1 Lane, то будет так же работать как Spartan6 по одной, для нескольких надо переписывать core. Если при программировании эти детали возлагаются целиком на встроенный pcie-модуль, то тут абсолютно без разницы, шина pcie просто передаст данные от девайса к ПК, а как она передаст, по двум Lane или по 4-ём это уже не твои заботы.

Такое ощущение, что ты купил это устройство, иначе спросил бы у тех, кто его разработал.

adriano32 ★★★ ()
Ответ на: комментарий от adriano32

Спасибо, всё внятно объяснил. Спрашиваю, потому-что к fpga я никакого отношения не имею, и прошивку для него писал не я. Я только дрова делал. А товаришь, который fpga делал сейчас в отпуске, спросить у него никак. На носу изменения некоторые предвидяться, вот и спрашиваю тут. Но в общем-то я уже понял куда копать и что читать, спасибо.

mi_estas ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.