Перейти к содержанию
    

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

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

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

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

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

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

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

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

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

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

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, yes said:

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 hours ago, yes said:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 разбираться с софтом для этого

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...