Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема взаимодействия Microblaze <=> Ethernet
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
VladimirB
Имеется отладочная плата ML403 с Virtex4 FX12 и Ethernet PHY Marvell 88E1111

На ПЛИС собрана система с Microblaze, к нему на PLB подключён XPS_LL_TEMAC и LL_FIFO. Пока без всяких DMA и прерываний.
Внешняя память не используется - всё на BlockRAM.

Из стандартного примера для теста периферии сделал отсылалку пакетов раз в секунду.
Пакет формируется вручную:
1) MAC dest = 0xFFFFFFFFFFFF - 6 байт
2) MAC source = 0x010203040506 - 6 байт
3) длина пакета = 100 - 2 байта
4) тело пакета - 100 байт
В temac включен режим FCS offload - типа контрольную сумму он должен вычислять сам.

После включения системы и соединения с компом - устанавливается 1G соединение, загораются лампочки у PHY "1000" и "DUPLEX". Раз в секунду начинает моргать лампочка TX. На сетевой карте компа тоже моргает лампочка раз в секунду.
Но сниффер Wireshark под WinXP никаких пакетов и никаких ошибок не видит, сколько с ним не бился и какие настройки не ставил. Сетевуха в PROMISCIOUS MODE стоит.

В чём может быть проблема, почему комп не видит пакетов? Или ему только TCP/IP подавай? sad.gif

С Microblaze тоже вроде всё впорядке: когда переводишь Marvel 88E1111 в LoopBack по MAC интерфейсу, то отправленные пакеты принимаются Microblaze нормально - выпихивал их в UART и смотрел побайтно.

Соединение с компом - тоже нормальное: переводил Marvel 88E1111 в Line LoopBack, то при пинге в сниффере появлялись дополнительные пакеты.
AJIEKCEu
Может попробовать вместо длины поставить 0x80 0x00 (Type: IP)
Или что то вроде того отсюда.
VladimirB
Цитата(AJIEKCEu @ Feb 9 2010, 16:35) *
Может попробовать вместо длины поставить 0x80 0x00 (Type: IP)
Или что то вроде того отсюда.

дык и стоит отсюда

0000-05DC IEEE802.3 Length Field (0.:1500.)
AJIEKCEu
Но все итаки это слегка разные протоколы. До 0х8000 и после.

Но все таки это слегка разные протоколы. До 0х8000 и после.
rsv
"В temac включен режим FCS offload - типа контрольную сумму он должен вычислять сам."
если я не ошибаюсь, Rx Tx checksum offload делается только для IP пакетов при работе через local link. Может в этом проблема?
VladimirB
ОНО ЗАРАБОТАЛО!!! smile.gif
Проблема была в следующем: Ethernet PHY 88E1111 поддерживает автоопределение скорости (AUTONEGOTIATION)
а XPS_LL_TEMAC нет. Ему скорость надо задавать вручную.
В то время когда всё прогрессивное человечество перешло на 1Gb, в примере от Xilinx в недрах заголовочных файлов определена константа скорости TEMAC на 100Mb.

В режимax LOOPBACK c обоих сторон Ethernet PHY (по интерфейсу с маком и по линии) всё работает, и сам пример от Xilinx тоже.
А вот при передаче от TEMAC в линию возникали проблемы, хотя все лампочки мигали правильно. По видимому TEMAC выдаёт неправильную тактовую частоту для другой скорости на PHY и он не может правильно выдать пакеты в линию.

Всё вылечилось банальным исправление константы со 100 на 1000.
Maverick
Цитата(VladimirB @ Feb 10 2010, 20:55) *
ОНО ЗАРАБОТАЛО!!! smile.gif
Проблема была в следующем: Ethernet PHY 88E1111 поддерживает автоопределение скорости (AUTONEGOTIATION)
а XPS_LL_TEMAC нет. Ему скорость надо задавать вручную.
В то время когда всё прогрессивное человечество перешло на 1Gb, в примере от Xilinx в недрах заголовочных файлов определена константа скорости TEMAC на 100Mb.

В режимax LOOPBACK c обоих сторон Ethernet PHY (по интерфейсу с маком и по линии) всё работает, и сам пример от Xilinx тоже.
А вот при передаче от TEMAC в линию возникали проблемы, хотя все лампочки мигали правильно. По видимому TEMAC выдаёт неправильную тактовую частоту для другой скорости на PHY и он не может правильно выдать пакеты в линию.

Всё вылечилось банальным исправление константы со 100 на 1000.

не могли бы поделиться примером или дать ссылку на пример и более поподробнее рассказать о "в недрах заголовочных файлов определена константа скорости TEMAC на 100Mb." где именно и как была исправлена ошибка.
Какой сниффер Вы используете для проверки работоспособности?
ПОЖАЛУЙСТА!!!
agate
QUOTE (Maverick @ Mar 5 2010, 16:25) *
не могли бы поделиться примером или дать ссылку на пример и более поподробнее рассказать о "в недрах заголовочных файлов определена константа скорости TEMAC на 100Mb." где именно и как была исправлена ошибка.
Какой сниффер Вы используете для проверки работоспособности?
ПОЖАЛУЙСТА!!!

Господа хорошие,
Подскажите где ТЕМАC source можно найти.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.