shurikman 0 7 декабря, 2016 Опубликовано 7 декабря, 2016 · Жалоба Добрый день. Есть задача поднять на этом ките TSE под управлением HPS без Linux. Реализация стека TCP/IP не обязательна, достаточно прием/передача буфера, соединение точка-точка. Вкачестве отправной точки воспользовался похожей темой, но про Nios. С уважаемым vadimuzzz уже обсудили кое какие детали реализации задуманного. Для тех кто поднимал TSE схема вроде как понятная: TSE + 2xmSGDMA (один на прием, другой на передачу) + прерывание при приёме. Со стороны HPS добавляется LWH2F AXI мост для доступа к регистрам TSE и mSGDMA. Если есть кто прошёл этот путь, отписывайтесь, приоритет данной задачи пока высок. Постараюсь тему не бросать, а довести до конца с выкладыванием всех исходников. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurikman 0 10 января, 2017 Опубликовано 10 января, 2017 (изменено) · Жалоба В качестве кода для копипаста были выбраны исходники Linux для TSE и mSGDMA, а также исходники Modular SGDMA с altera wiki. Были перепилены функции записи/чтения в регистры под HPS. Пока работает только передача, приём будет, но позже. Особенность данной реализации подразумевает использование обоих портов(система с двумя TSE). Для теста были сгенирированы два UDP пакета с соответствующими (разными) заголовками и правильными чек суммами. Далее всё это соединил простеньким свичём с компом. Так вот, оба порта инитятся нормально, но передача идёт только с первого порта, при этом светодиод передачи на втором порту мигает, но в вайшарке пусто. Пробовал инитить только второй порт, таже ерунда(в вайшарке пусто). Пробовал без свича, напрямую в комп, тоже самое. Может есть кому что сказать? Спасибо. hps_2x_tse.rar Изменено 10 января, 2017 пользователем shurikman Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurikman 0 10 января, 2017 Опубликовано 10 января, 2017 · Жалоба Поставил на тест погонять. Всё таки за час в вайшарке около 20 пакетов накопилось со второго порта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurikman 0 19 января, 2017 Опубликовано 19 января, 2017 · Жалоба Добавлен приём пакетов и прерывания. Немного причёсан код и разложено всё по папкам. Приём кстати работает на обоих портах, а вот отсылка только с TSE0. Будем разбираться дальше. hps_tse.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smersh 0 18 марта, 2017 Опубликовано 18 марта, 2017 · Жалоба Привет! Занимаюсь примерно тем же, только 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurikman 0 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Столкнулся со следующей проблемой. Для приема/отправки данных со стороны HPS используются соответствующие глобальные буферы. Для начала необходимо было организовать поддержку сети на уровне ответов на ARP запросы. Так вот, после формирования ARP ответа, я копирую эти данные в выходной буфер, используемый mSGDMA для отправки, но в вайшарке 0. Тормозил дебагером, буфер заполнен тем что надо. Смотрел примеры для ниоса, там обычно буфера в кеше защёлкиваются, а что в HPS делать в этом случае??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться