Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы использования axi_ethernet sgmii для Kintex-7
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Fen1xL
Здравствуйте

Была подобная темя, ее закрыли http://electronix.ru/forum/index.php?showt...03&hl=sgmii.

Суть моей проблемы такова.
Есть Marvell, который железно неправильно сконфигурирован (не SGMII), необходимо настроить через SMI. Есть Kintex-7. Собираю систему с MicroBlaze и axi_ethernet. Запускаю SDK, создаю проект тестирования периферии. Тест не проходит. Повисает на функции XAxiEthernet_Reset, точнее при чтении регистра

CODE
XAxiEthernet_ReadReg(InstancePtr->Config.BaseAddress, XAE_IS_OFFSET) & XAE_INT_MGTRDY_MASK


В симуляции тоже самое, полез в код, выяснил, PCS модуль не выдает resetdone. Как я понял, нет синхронизации по SGMII линии MAC <-> PHY. Это действительно так, ведь Marvel работает в другом режиме. Т.е. получается, чтобы сконфигурировать PHY, необходимо обратиться по SMI, а пока resetdone от PCS не придет, SMI недоступен. Замкнутый круг. Что делать, непонятно.

Начал читать change log для axi_ethernet, увидел, ранее был глюк в ядре и resetdone давался ложный. Я попробовал использовать старую версию (правда не в Vivado, а в ISE 14.7). Получилось так, что функция XAxiEthernet_Reset, выполнилась успешно. Я получил доступ к SMI, настроил как мне надо. По регистрам я также узнал, что PHY поймал синхронизацию по SGMII. Также увидел на дифпаре SGMII (от PHY к FPGA) слабый сигнал ~200mV, хотя обратная дифпара (от FPGA к PHY) была ~500mV. Через регистры PHY настроил выходное напряжение, по уровню стало также ~500mV. Но все равно я так и не смог увидеть на стороне FPGA (MAC) наличие принятой синхронизации. Т.е. получается Marvell видит линию, а FPGA нет.

Вывод, мне так и не удалось поднять линк по SGMII.
- Как использовать последнюю версию ядра (т.к. она доступна только в Vivado и наоборот), когда синхронизации нет, а настроить через SMI необходимо?
- Есть идеи почему синхронизация может не заработать?
Golikov A.
а после того как все настроили ресетнуть физику не надо через регистр?
Fen1xL
Пробовал, в PHY штук 5 ресетов, и вроде как нужные дёргал. Причём я вижу, что Marvell переключается в SGMII, ведь в регистрах ловится SYNC и LINK UP от FPGA и осциллографом вижу наличие сигнала на второй дифпаре (от PHY к MAC). Мне все-таки кажется проблема именно в IP ядре.

P.S. Еще странность заметил в регистрах значится полудуплекс у SGMII, как это возможно?
Golikov A.
возможно и наиболее вероятно это состояние сеть - физика, а не физика - ПЛИС.
Fen1xL
А как может отрезок "сеть - физика" влиять на SGMII?
Кстати, для полноты картины, пробовал делать loopback SGMII ip ядра, я так понимаю этот loopback на уровне трансиверов проходит. Там всё отлично, работает стабильно.
Также раньше на плате средняя точка трансформатора была подтянута к земле, сейчас к питанию.
Golikov A.
тогда я видать не очень понимаю о каких регистрах идет речь...
gosu-art
Цитата(Fen1xL @ Aug 17 2014, 23:04) *
Также раньше на плате средняя точка трансформатора была подтянута к земле, сейчас к питанию.

Вот на трансформатор нужно посмотреть повнимательнее. Т.к. один и тот же транс к разным чипам подключается по разному. Сам разок налетел. rolleyes.gif
Timmy
Цитата(Fen1xL @ Aug 17 2014, 23:04) *
А как может отрезок "сеть - физика" влиять на SGMII?
Кстати, для полноты картины, пробовал делать loopback SGMII ip ядра, я так понимаю этот loopback на уровне трансиверов проходит. Там всё отлично, работает стабильно.
Также раньше на плате средняя точка трансформатора была подтянута к земле, сейчас к питанию.

Метод передачи данных по SGMII зависит от отрезка сеть-физика, поэтому PHY сообщает MAC о состоянии внешнего линка(UP/DOWN, DUPLEX MODE, SPEED) через регистр конфигурации, который пересылается по гигабитному линку, независимо от SMI. Это является частью протокола SGMII.
Fen1xL
Бросил ковыряться со старой версией IP ядра и ISE (и не зря). Перешел на Vivado.
Напомню, там был исправлен баг, если SGMII не запущен, то IP ядро не запустится. Я немного схитрил, до инициализации настроил через SMI режим SGMII. И о чудо все заработало.

Всем спасибо, решил вопрос. Всё очень просто.

Цитата
Метод передачи данных по SGMII зависит от отрезка сеть-физика, поэтому PHY сообщает MAC о состоянии внешнего линка(UP/DOWN, DUPLEX MODE, SPEED) через регистр конфигурации, который пересылается по гигабитному линку, независимо от SMI. Это является частью протокола SGMII.

Да, поэтому SGMII не 1Gb, а 1.25Gb.
Насчет неясности в регистрах. Для меня у Marvell есть две части Fiber/SGMII и Copper, вот на стороне Copper было все нормально (правильные режимы, скорости), а вот со стороны Fiber/SGMII были непонятные значения. Ну это так, уточнение
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.