Jump to content
    

можно ли сделать NFS без эзернета?

есть плата с ПЛИС (Xilinx | US+) втыкаемая в хост через PCIe, в ПЛИС предполагаю что-то типа XDMA с доступом через PCIe к внутренностям системы (PCIe-AXI)

на этой ПЛИС хотелось бы развернуть Линукс (то есть моя задача сделать такую платформу для программистов)

программисты хотят иметь какой-то быстрый (широкополосный) и стандартный способ доступа к этому Линуксу (пока они утверждают, что NFS only - так как на некой отладочной плате они так работали)

на хосте тоже Линукс

-------------------------

у меня пока нет понимания, что можно сделать, чтобы такое заработало.

писать какие-то коды для линукс-хоста (типа эмуляция эзернет через PCIe) хотелось бы как можно меньше

------------------------

если не NFS, то какие варианты? может есть что-то уже готовое от того же ксайлинса - положил через какую-то программку на хосте - достал на таргете (и наоборот)

еще эмулятор последовательного порта через PCIe-XDMA надо или что-то подобное, чтобы на таргете терминал работал...

 

 

Share this post


Link to post
Share on other sites

1 hour ago, yes said:

у меня пока нет понимания, что можно сделать, чтобы такое заработало.

писать какие-то коды для линукс-хоста (типа эмуляция эзернет через PCIe) хотелось бы как можно меньше

ИМХО. На сколько я понимаю NFS работает через TCP/IP или UDP. Так что стек это нужно поддерживать, хотябы UDP. А вот нижние уровни Эзернета можно не реализовывать.

Было бы хорошо найти хотябы описания примеров.

Если нет задела и опыта, то работа будет интересной )

Share this post


Link to post
Share on other sites

3 часа назад, yes сказал:

у меня пока нет понимания, что можно сделать, чтобы такое заработало.

писать какие-то коды для линукс-хоста (типа эмуляция эзернет через PCIe) хотелось бы как можно меньше

------------------------

если не NFS, то какие варианты? может есть что-то уже готовое от того же ксайлинса - положил через какую-то программку на хосте - достал на таргете (и наоборот)

еще эмулятор последовательного порта через PCIe-XDMA надо или что-то подобное, чтобы на таргете терминал работал...

смотрите какие есть скоростные интерфейсы на вашем US+

если есть USB, то существуют переходники USB_Ethernet, второй конец через rj45 в обычную сетку и получаете доступ к серверу с NFS

если PCIe, то прикрутите внешнюю сетевую карту, хоть miniPCi Ethernet, хоть через райзер обычную писюковую PCIe-Ethernet и далее доступ к NFS

если без NFS, то опять же смотрите какие есть интерфейсы у US+

если нативный nand, то чип nand куда развернуть линукс

если SPI, то существуют spi(qspi)-nand чипы приличной емкости - хватит для линукса

если есть интерфейс SD, то очевидно накидать линукс на карточку

гонять лысого небольшие бинарники можно поверх консоли хоть zmodem

Share this post


Link to post
Share on other sites

плата собственно ускорителя alveo - никакого доступа к железу там нет (раскручивать и паять нельзя)

кажется вариантом иметь там 2 UART, один из которых подключен к PCIe, то есть виден в пространстве линукс-хоста, а другой к внутренней шине (например AXI) линукс таргета. и RX/TX этих UART соединить крест-накрест

----------------------------

с эзернетным RMII кажется, что можно так же, но крест-накрест посложнее, надо какую-то эмуляцию PHY придумывать,  MIO генерить...

----------------------------

вобщем пока непонятно мне...

Share this post


Link to post
Share on other sites

По большому счету можно поднять два  Ethernet контроллера, по одному на каждой машине.
Которые коннектятся между собой либо физически - выходами своих физических MACков реализованных внутри  FPGA.  
Либо логически - напрямую через DMA, PCIe и нестандартные драйвера обмена данными.  

 

В первом случае можно обойтись стандартными Ethernet котроллерами и драйверами.  Будет больше "железа" но меньше работы. 
Во втором  - наоборот.  

Share this post


Link to post
Share on other sites

"железа" не жалко, хотелось бы меньше с драйверами возиться

то есть как раз таки МАСи (MII / RMII) хочется внутри ПЛИСины соединить. 

интересно, есть ли какие-то ходы про это в интернете (я так сразу не нашел вообще ничего) - чтобы попробовать хоть с какой-либо прошивкой и линуксами (нужно технически x86 - хост, и скорее всего risc-v в таргете)

 

 

Share this post


Link to post
Share on other sites

эмулировать сетевую карту в железе, да с обоих сторон как-то слишком сурово, может просто небольшого кусочка памяти хватит, доступного с обоих сторон,

чтобы без особого драйверописательства виртуальный tun интерфейс с обоих сторон поднять и завернуть чтение/запись в зашаренную память?

https://www.sobyte.net/post/2022-01/linux-virtual-network-interfaces/

Share this post


Link to post
Share on other sites

12 hours ago, yes said:

программисты хотят иметь какой-то быстрый (широкополосный) и стандартный способ доступа к этому Линуксу (пока они утверждают, что NFS only - так как на некой отладочной плате они так работали)

Эмм, доступ к линуксу реализуется с помощью ssh, вообще-то.

А так любую сетевую заморочку легко завернуть в ppp, который работает по чему угодно, способному передавать последовательность байтов.

Share this post


Link to post
Share on other sites

Как вариант могу предложить создать разделяемую область в памяти, которую можно представить в виде блочного устройства (ramdisk) и поочередно монтировать с двух сторон.

8 минут назад, rkit сказал:

А так любую сетевую заморочку легко завернуть в ppp, который работает по чему угодно, способному передавать последовательность байтов.

Всё верно, только это медленно. И поэтому придумать что-то лучшее, чем shared ramdisk по-моему не получится.

Share this post


Link to post
Share on other sites

17 hours ago, _pv said:

эмулировать сетевую карту в железе, да с обоих сторон как-то слишком сурово, может просто небольшого кусочка памяти хватит, доступного с обоих сторон,

чтобы без особого драйверописательства виртуальный tun интерфейс с обоих сторон поднять и завернуть чтение/запись в зашаренную память?

https://www.sobyte.net/post/2022-01/linux-virtual-network-interfaces/

ну собственно ради таких советов и тему создал.

я не сварщик, в линукс девелопменте не очень понимаю, в железе сделать казалось проще

12 hours ago, rkit said:

Эмм, доступ к линуксу реализуется с помощью ssh, вообще-то.

А так любую сетевую заморочку легко завернуть в ppp, который работает по чему угодно, способному передавать последовательность байтов.

для ssh тоже какой-то интерфейс (связь между хостами) нужен

но и NFS это совсем неплохо - я лет 20 назад пользовался "тощим SUN-овским терминалом", у которого своего диска не было и он к основной станции цеплялся по NFSу, тут наверно, такая же идея - у таргета FS маленькая или нету ее, а все с хоста берется  

-----------

ppp через PCIe 16-lane наверно будет работать быстро. меня смущает необходимость с 0 разбираться с софтом для этого

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...