Jump to content

    
Sign in to follow this  
yura-w

Ethernet + Cyclone + Nios

Recommended Posts

Да сигнал тапом. Empty то в 1 стоит.

Пробовал и так, без изменений. Так же вроде не должен выкинуть?

post-71932-1438947087_thumb.png

Edited by Unfog

Share this post


Link to post
Share on other sites

Даташит не дочитал, пошел сюда.

Все зашевелилось, DMA заработало.

Я то все думал о каких tx_ena и rx_ena все время говорят.

 

Спасибо за правильный вопрос =)

Думаю еще вернусь с вопросами по SGMII, но позже.

 

Share this post


Link to post
Share on other sites
Всем привет!! Хочу состыковать Cyclone IV(DE0nano)+Nios2+Ethernet+rtl8201cl. Кто-нибудь реализовывал? Ресурс где почитать?

Если DE0Nano+Nios2+Ethernet то тут http://acvarif.info/prvhdl/prvhdl20.html С rtl8201cl по ходу можно разобраться по аналогии.

Share this post


Link to post
Share on other sites

Добрый день!

Наткнулся на проблему с TSE при использовании внешних FIFO.

Имеется NIOS II, к которому через внешние FIFO и mSGDMA подключен TSE. NIOS II работает под управлением Linux со встроенным драйвером. Проблема заключается в том, что на передачу обрезаются первые два байта пакета. Я понимаю, что это связано с выравниванием заголовков, поэтому отключаю опцию "Align packet headers to 32-bit boundary". После данной манипуляции обрезаются первые два байта во входящих сообщениях, в то время как исходящие сообщения отсылаются корректно. То есть всё стало наоборот. Со встроенным в TSE буферами FIFO всё работает правильно. Куда копать? Не могу понять аппаратура это косячит или драйвер. Поставил вывод отсылаемого пакета в консоль в драйвере и ничего криминального не вижу.

 

Ещё хотел бы уточнить, что ширина шины от процессора до FIFO через DMA 32 бита, а после FIFO она урезается до 8 бит через автоматический адаптер Qsys.

Edited by wapster

Share this post


Link to post
Share on other sites

Кажется сам нашел ответ.

TSE обрезает на передачу первые два байта, потому что в исходящих пакетах в драйвере Linux не предусмотрено выравнивание. Обрезка первых двух байтов выключается программно с помощью регистра tx_cmd_stat. Программное управление этим регистром работает только в случае со встроенным FIFO. С внешним обрезка байтов на приём и передачу выключается одной галкой в Qsys. Таким образом получается, что входящий трафик обрабатывается корректно, а исходящий режется.

Вопрос теперь как правильно переписать драйвер. Или же ещё в голову приходит навертеть какой-нибудь аппаратный блок, который будет заниматься выравниванием.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this