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

Cyclone V + TSE + HPS(baremetal)

Добрый день. Есть задача поднять на этом ките TSE под управлением HPS без Linux. Реализация стека TCP/IP не обязательна, достаточно прием/передача буфера, соединение точка-точка. Вкачестве отправной точки воспользовался похожей темой, но про Nios. С уважаемым vadimuzzz уже обсудили кое какие детали реализации задуманного. Для тех кто поднимал TSE схема вроде как понятная: TSE + 2xmSGDMA (один на прием, другой на передачу) + прерывание при приёме. Со стороны HPS добавляется LWH2F AXI мост для доступа к регистрам TSE и mSGDMA. Если есть кто прошёл этот путь, отписывайтесь, приоритет данной задачи пока высок. Постараюсь тему не бросать, а довести до конца с выкладыванием всех исходников.

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


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

В качестве кода для копипаста были выбраны исходники Linux для TSE и mSGDMA, а также исходники Modular SGDMA с altera wiki. Были перепилены функции записи/чтения в регистры под HPS. Пока работает только передача, приём будет, но позже. Особенность данной реализации подразумевает использование обоих портов(система с двумя TSE). Для теста были сгенирированы два UDP пакета с соответствующими (разными) заголовками и правильными чек суммами. Далее всё это соединил простеньким свичём с компом. Так вот, оба порта инитятся нормально, но передача идёт только с первого порта, при этом светодиод передачи на втором порту мигает, но в вайшарке пусто. Пробовал инитить только второй порт, таже ерунда(в вайшарке пусто). Пробовал без свича, напрямую в комп, тоже самое. Может есть кому что сказать? Спасибо.

 

hps_2x_tse.rar

Изменено пользователем shurikman

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


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

Поставил на тест погонять. Всё таки за час в вайшарке около 20 пакетов накопилось со второго порта.

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


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

Добавлен приём пакетов и прерывания. Немного причёсан код и разложено всё по папкам. Приём кстати работает на обоих портах, а вот отсылка только с TSE0. Будем разбираться дальше.

hps_tse.rar

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


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

Привет!

Занимаюсь примерно тем же, только NIOS на Cyclone IV. Хочу прикрутить именно mSGDMA, на старом SGDMA все работает.

Заметил такую штуку: если попытаться прочитать

 

IORD_ALTERA_MSGDMA_RESPONSE_ACTUAL_BYTES_TRANSFERRED(rx_msgdma_dev->response_base);

 

когда Response CSR FIFO пусто, NIOS виснет наглухо! В Сигналтапе - response_read и response_waitrequest оба активны.

 

Еще странно, трансфер запускается даже если не производить write_extended_descriptor(). Т.е. достаточно construct_extended_st_to_mm_descriptor(), и трансфер запускается по приходу SOP от TSE. Почему - неясно совершенно. Паркинг, естественно, отключен. Соврал это я, виноват...

 

 

 

Добавлен приём пакетов и прерывания. Немного причёсан код и разложено всё по папкам. Приём кстати работает на обоих портах, а вот отсылка только с TSE0. Будем разбираться дальше.

hps_tse.rar

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


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

Столкнулся со следующей проблемой. Для приема/отправки данных со стороны HPS используются соответствующие глобальные буферы. Для начала необходимо было организовать поддержку сети на уровне ответов на ARP запросы. Так вот, после формирования ARP ответа, я копирую эти данные в выходной буфер, используемый mSGDMA для отправки, но в вайшарке 0. Тормозил дебагером, буфер заполнен тем что надо. Смотрел примеры для ниоса, там обычно буфера в кеше защёлкиваются, а что в HPS делать в этом случае???

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


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

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

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

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

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

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

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

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

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

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