yes 23 May 20, 2022 Posted May 20, 2022 · Report post есть плата с ПЛИС (Xilinx | US+) втыкаемая в хост через PCIe, в ПЛИС предполагаю что-то типа XDMA с доступом через PCIe к внутренностям системы (PCIe-AXI) на этой ПЛИС хотелось бы развернуть Линукс (то есть моя задача сделать такую платформу для программистов) программисты хотят иметь какой-то быстрый (широкополосный) и стандартный способ доступа к этому Линуксу (пока они утверждают, что NFS only - так как на некой отладочной плате они так работали) на хосте тоже Линукс ------------------------- у меня пока нет понимания, что можно сделать, чтобы такое заработало. писать какие-то коды для линукс-хоста (типа эмуляция эзернет через PCIe) хотелось бы как можно меньше ------------------------ если не NFS, то какие варианты? может есть что-то уже готовое от того же ксайлинса - положил через какую-то программку на хосте - достал на таргете (и наоборот) еще эмулятор последовательного порта через PCIe-XDMA надо или что-то подобное, чтобы на таргете терминал работал... Quote Share this post Link to post Share on other sites More sharing options...
slkhome 1 May 20, 2022 Posted May 20, 2022 · Report post 1 hour ago, yes said: у меня пока нет понимания, что можно сделать, чтобы такое заработало. писать какие-то коды для линукс-хоста (типа эмуляция эзернет через PCIe) хотелось бы как можно меньше ИМХО. На сколько я понимаю NFS работает через TCP/IP или UDP. Так что стек это нужно поддерживать, хотябы UDP. А вот нижние уровни Эзернета можно не реализовывать. Было бы хорошо найти хотябы описания примеров. Если нет задела и опыта, то работа будет интересной ) Quote Share this post Link to post Share on other sites More sharing options...
Jury093 3 May 20, 2022 Posted May 20, 2022 · Report post 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 Quote Share this post Link to post Share on other sites More sharing options...
yes 23 May 20, 2022 Posted May 20, 2022 · Report post плата собственно ускорителя alveo - никакого доступа к железу там нет (раскручивать и паять нельзя) кажется вариантом иметь там 2 UART, один из которых подключен к PCIe, то есть виден в пространстве линукс-хоста, а другой к внутренней шине (например AXI) линукс таргета. и RX/TX этих UART соединить крест-накрест ---------------------------- с эзернетным RMII кажется, что можно так же, но крест-накрест посложнее, надо какую-то эмуляцию PHY придумывать, MIO генерить... ---------------------------- вобщем пока непонятно мне... Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 99 May 20, 2022 Posted May 20, 2022 · Report post По большому счету можно поднять два Ethernet контроллера, по одному на каждой машине. Которые коннектятся между собой либо физически - выходами своих физических MACков реализованных внутри FPGA. Либо логически - напрямую через DMA, PCIe и нестандартные драйвера обмена данными. В первом случае можно обойтись стандартными Ethernet котроллерами и драйверами. Будет больше "железа" но меньше работы. Во втором - наоборот. Quote Share this post Link to post Share on other sites More sharing options...
yes 23 May 20, 2022 Posted May 20, 2022 · Report post "железа" не жалко, хотелось бы меньше с драйверами возиться то есть как раз таки МАСи (MII / RMII) хочется внутри ПЛИСины соединить. интересно, есть ли какие-то ходы про это в интернете (я так сразу не нашел вообще ничего) - чтобы попробовать хоть с какой-либо прошивкой и линуксами (нужно технически x86 - хост, и скорее всего risc-v в таргете) Quote Share this post Link to post Share on other sites More sharing options...
_pv 107 May 20, 2022 Posted May 20, 2022 · Report post эмулировать сетевую карту в железе, да с обоих сторон как-то слишком сурово, может просто небольшого кусочка памяти хватит, доступного с обоих сторон, чтобы без особого драйверописательства виртуальный tun интерфейс с обоих сторон поднять и завернуть чтение/запись в зашаренную память? https://www.sobyte.net/post/2022-01/linux-virtual-network-interfaces/ Quote Share this post Link to post Share on other sites More sharing options...
rkit 4 May 20, 2022 Posted May 20, 2022 · Report post 12 hours ago, yes said: программисты хотят иметь какой-то быстрый (широкополосный) и стандартный способ доступа к этому Линуксу (пока они утверждают, что NFS only - так как на некой отладочной плате они так работали) Эмм, доступ к линуксу реализуется с помощью ssh, вообще-то. А так любую сетевую заморочку легко завернуть в ppp, который работает по чему угодно, способному передавать последовательность байтов. Quote Share this post Link to post Share on other sites More sharing options...
makc 385 May 20, 2022 Posted May 20, 2022 · Report post Как вариант могу предложить создать разделяемую область в памяти, которую можно представить в виде блочного устройства (ramdisk) и поочередно монтировать с двух сторон. 8 минут назад, rkit сказал: А так любую сетевую заморочку легко завернуть в ppp, который работает по чему угодно, способному передавать последовательность байтов. Всё верно, только это медленно. И поэтому придумать что-то лучшее, чем shared ramdisk по-моему не получится. Quote Share this post Link to post Share on other sites More sharing options...
yes 23 May 21, 2022 Posted May 21, 2022 · Report post 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 разбираться с софтом для этого Quote Share this post Link to post Share on other sites More sharing options...