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

Не поднимается линк по 1000BASE-X между трансивером Cyclone 10 и Marvell 88E6095

Всем доброго времени суток.

 

Пытаюсь организовать передачу данных между трансивером Cyclone 10 GX и Marvell 88E6095 через sfp-модули. Схема предельно простая: выход трансивера => sfp-модуль => оптоволокно => sfp-модуль на другой плате => serdes-порт свича Marvell 88E6095. Порт свича настроен в режим 1000BASE-X.

 

Проблема следующая. Трансивером от свича я постоянно принимаю последовательность  BC B5 00 00 BC 42 00 00. Насколько я понимаю, это конфигурационная последовательность. Вот только регистр конфигурации, где по идее должны быть данные о параметрах линка свича, нулевой. В инете натыкался на упоминания о том, что это какая-то ошибка автопереговоров, хотя в режиме 1000BASE-X вроде они отключены. В любом случае непонятно, как такой линк поднимать, потому что свич зациклен на этой последовательности, чтобы я ему не посылал в ответ. 

 

Буду признателен за помощь.

 

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

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


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

Когда линк не подымается, я выработал для себя первое правило - делать петлю, или на трансивере, или на phy (Marvell), или на SFP, если таковой есть, смотреть что приходит обратно, потом думать дальше

1 hour ago, RoadRunner said:

BC B5 00 00 BC 42 00 00

вроде как, это вам Marvell сам присылает, что автосогласование пройти не может, надо поднять мануал по нему глянуть или полный стандарт 1000BASE-X.

 

upd. Глянул стандарт, там описаны эти коды при 1000BASE-X и 10/8 кодировке

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

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


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

Ситуация двоякая в стандарте, надо глубже разбираться. Вроде и конфиг приходит
image.png.92ed89ccfbc485295a3d46b233d1189b.png

 

А вроде и обычный IDLE
image.thumb.png.6fb921c58893ca16c62f8c6526d9035c.png

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


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

1 hour ago, new123 said:

Когда линк не подымается, я выработал для себя первое правило - делать петлю, или на трансивере, или на phy (Marvell), или на SFP, если таковой есть, смотреть что приходит обратно, потом думать дальше

Трансивер на loopback я сейчас посмотрю - это мысль, спасибо.

 

Но беда то тут в том, что даже если все до свича правильно доходит, непонятно, что ему вообще надо в таком случае посылать: когда он шлет конфигурационную последовательность с конфигурационным регистром равным нулю. По стандарту такое вроде только короткое время при сбросе посылается. Потом конфигурационный регистр должен быть отличен от нуля. И ответная часть должна будет прислать такой же регистр с установленным битом подтверждения. И линк поднимется, как я понял. 

 

Но вот что значит постоянно посылаемый нулевой конфигурационный регистр, я в стандарте так и не нашел. Что это за ошибка такая. Есть тема, где товарищ о ней упоминает, но опять же неопределенно.

 

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

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


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

Поизучал еще раз стандарт. Вы точно отхватываете C1 C2 конфиг. Я не силен в 1000BASE-X, но зная другие стандарты, предположу, что вы в кабель ничего не отправляете. А должны отправлять IDLE. Пока не начнете отправлять, вам будут слаться C1 C2 - это config order set. Так делается во многих стандартах.

Вообщем вам нужно хорошо прочитать Cause 37, вашего стандарта, там все предельно ясно написано.

 

Как пример

Quote

The Auto-Negotiation function exchanges information between two devices that share a link segment and
automatically configures both devices to take maximum advantage of their abilities. Auto-Negotiation is
performed with /C/ and /I/ ordered sets defined in
Clause 36, such that no packet or upper layer protocol
overhead is added to the network devices

 

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

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


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

Странное дело.. Попробовал завести выход одного трансивера на вход другого - приема нет вообще. Ни на оптике, ни на медных sfp. Принимает либо просто нули, либо галиматью какую-то. Когда к Марвеллу то подключался хотя бы конфигурационная последовательность принималась, хоть и с нулевым конфигом. А тут и его нет, хотя отправку на обоих трансиверах я зациклил.

 

Я вот думаю, у sfp-модуля есть i2c. Его программировать по нему не надо? Режим определенный задавать? Насколько я понимаю, там же phy обычный внутри. Плюс, есть еще отдельные пины конфигурации. Знающие люди, не поделитесь ссылкой на стандарт, где можно почитать про назначение этих пинов и программирование i2c sfp-модуля?

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

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


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

17 minutes ago, RoadRunner said:

, у sfp-модуля есть i2c.

у меня опыт только от минимум SFP+, программировать с завода их не надо. Есть только пины TX_DISABLE, и RATE, на которые нужно подать соответствующие сигналы. В инете по распайке пинов много инфы

17 minutes ago, RoadRunner said:

либо галиматью какую-то

Если речь про трансиверы на кабеле (не на чипе), то есть про SFP, то в кабель идет не галиматья, а закодированный Марвелом сигнал по стандарту 1000BASE-X =)). Там каша будет из 0 и 1. Там же происходит 8/10B уплотнение и наверное еще ряд чего. То есть данные поданные на Marvell, не будут равны данным поданным в кабель.

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

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


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

3 minutes ago, new123 said:

Если речь про трансиверы на кабеле (не на чипе), то есть про SFP, то в кабель идет не галиматья, а закодированный Марвелом сигнал по стандарту 1000BASE-X =)). Там каша будет из 0 и 1.

Не, я имел ввиду трансиверы на ПЛИС. У меня на ките Cyclone 10 GX два sfp+ модуля. Ну вот я их и соединил, а в проекте на ПЛИС соответственно подключил к каждому модулю трансивер и зациклил на каждом передачу конфигурационной последовательности. 

7 minutes ago, new123 said:

у меня опыт только от минимум SFP+, программировать с завода их не надо. Есть только пины TX_DISABLE, и RATE, на которые нужно подать соответствующие сигналы. В инете по распайке пинов много инфы

Буду разбираться, спасибо за информацию. 

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


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

Те SFP, что мне попадались, конфигурировать не нужно было. Да и конфиг там только на чтение доступен. Чтобы всякие Арубы и Циски не запускались на левых SFP.

А Марвел Вы правильно настроили? Ему ж надо сказать, что он должен в 1000base-X работать?

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


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

9 hours ago, S_Hawk said:

Те SFP, что мне попадались, конфигурировать не нужно было. Да и конфиг там только на чтение доступен. Чтобы всякие Арубы и Циски не запускались на левых SFP.

А Марвел Вы правильно настроили? Ему ж надо сказать, что он должен в 1000base-X работать?

Да, там резисторами все подтянуто как надо. Да и потом - эти sfp-модули у меня как выяснилось без всякого марвела, друг на друга не передают.

 

Сейчас с их распиновкой разбираюсь, может там что-то неправильно выставлено.

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

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


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

 

On 9/29/2020 at 1:55 PM, new123 said:

Я не силен в 1000BASE-X, но зная другие стандарты, предположу, что вы в кабель ничего не отправляете. А должны отправлять IDLE. Пока не начнете отправлять, вам будут слаться C1 C2 - это config order set.

Судя по всему Вы в яблочко попали . Перепрограммировал через twi пины TX_DISABLE и RATE sfp-модуля на нули, и все заработало, т.е. при соединении одного трансивера на другой наблюдается стабильный прием, а при соединении с Марвеллом, тот шлет уже ненулевой конфиг. Причем, как я понимаю, один только TX_DISABLE уже решал проблему - я действительно просто ничего не отправлял в линию. В общем жесть.. столько геммора из-за такой хрени! Большое спасибо за помощь!

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

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


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

Я не стал вас ранее поправлять, потому что SFP не юзал. Но обычно SFP+ распаивают на DISABLE, подтяжку делают. По крайней мере на моих платах. Поздравляю что все разрешилось

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


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

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

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

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

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

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

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

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

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

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