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

 
 
> Xilinx Zynq+DDR+DMA+Ethernet, Все в тумане
ConstHw
сообщение Nov 12 2015, 14:03
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 12-11-15
Пользователь №: 89 287



Всем привет, взываю к помощи так как кажется потерялся в дебрях Цинка.

Что хочется
Принимать данные по Ethernet, складывать их в память DDR3, доставать их оттуда, обеспечить доступ к этим данным другим ядрам.

Что есть
1) Запустил проект с LwIP вроде xapp. Вижу принятые и отправленные пакеты, посмотрел на них в WireShark, пописал свои пакеты туда с PC и обратно с платформы. Но пока для меня это все выглядит как черный ящик, где я с одной стороны вызываю tcp_recv и tcp_recv, которые внутри себя вызывают LwIP стек, который основан на драйверах Xilinx, которые там что то колдуют с регистрами контроллеров памяти,эзернета и ДМА описанными в UG585
2) Запустил проекты с MIG+ процессорное ядро. Пописал данные в память, почитал через AXI,
3) Пописал принятые по TCP данные в MIG напрямую из процессора. Делал напрямую "в лоб"
Код
*(Addr+I) = Val;
Где адрес соответственно ссылается на диапазон памяти принадлежащий подключенному MIG
4) Запустил тестовый проект с AXI DMA, пописал данные в память через него.

Что делать дальше непонятно, так как не понимаю многих вещей
1) Правильно ли я понял, что LwIP работает исключительно в пределах PS, использует только аппаратный DMA, складывает данные только в память, которая подключена к PS?

2) Как в таком случае правильно принять пакеты из Ethernet?
2.1) Если процессор занят обработкой протоколов Ethernet, TCP, IP в рамках выполнения LwIP-программ, то и в память он получается может писать принятые данные сам без ДМА?
2.2) Или он может передавать в DMA команду "бери данные из памяти вот тут вот столько и грузи в MIG"?
2.3) Или надо поток данных из GigE контроллера направить через аппаратный DMA в подключенный напрямую к процессору MIG? И потом вызывать прерывания для обработки?
2.4) Или надо поток данных из GigE напрвавить в MIG через AXI-DMA и дергать прерывание уже им?

3) Обязательно ли в такой задаче использовать TCP/IP? Если например стоит задача передавать данные от PC к непосредственно подключенной плате, можно ли использовать голый Ethernet, складывая свои данные в его payload?

4) Зачем вообще в множестве проектов используется AXI DMA, когда в PS есть аппаратный 8 канальный DMA-330? Почему не обходятся только им?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
doom13
сообщение Nov 25 2016, 08:43
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Приветствую.
Возник вопрос - как правильно подключать AXI DMA к PS?
DMA использует режим Scatter-Gather, управляется драйвером Linux (дескрипторы и буферы для данных
выделяются ядром динамически в PS DDR3). M_AXI_SG (32 bit) и M_AXI_S2MM (64 bit) получают доступ к PS DDR3 через S_AXI_HP порт процессорной системы.
Есть ли смысл подключения M_AXI_SG через S_AXI_GP порт?
Спасибо.
Go to the top of the page
 
+Quote Post
monty
сообщение Aug 22 2018, 06:33
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 19-12-05
Пользователь №: 12 399



Цитата(doom13 @ Nov 25 2016, 15:43) *
Приветствую.
Возник вопрос - как правильно подключать AXI DMA к PS?
DMA использует режим Scatter-Gather, управляется драйвером Linux (дескрипторы и буферы для данных
выделяются ядром динамически в PS DDR3). M_AXI_SG (32 bit) и M_AXI_S2MM (64 bit) получают доступ к PS DDR3 через S_AXI_HP порт процессорной системы.
Есть ли смысл подключения M_AXI_SG через S_AXI_GP порт?
Спасибо.


Как подключать зависит от того какой поток (сколько и за какое время) и сколько каналов (потоков). Если данных не очень много то можно всё через ***_GP пустить. Обычно данные (когда они быстрые и ихмного) )подключаются через S_AXI_HP(порт цынка), а управление через M_AXI_GP(порт цынка). Если ваш контроллер и дескрипторы сам забирает, то конечно, не стесняйтесь, подключайте его к S_AXI_GP PS.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 22:39
Рейтинг@Mail.ru


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