RoadRunner 0 29 сентября, 2020 Опубликовано 29 сентября, 2020 (изменено) · Жалоба Всем доброго времени суток. Пытаюсь организовать передачу данных между трансивером Cyclone 10 GX и Marvell 88E6095 через sfp-модули. Схема предельно простая: выход трансивера => sfp-модуль => оптоволокно => sfp-модуль на другой плате => serdes-порт свича Marvell 88E6095. Порт свича настроен в режим 1000BASE-X. Проблема следующая. Трансивером от свича я постоянно принимаю последовательность BC B5 00 00 BC 42 00 00. Насколько я понимаю, это конфигурационная последовательность. Вот только регистр конфигурации, где по идее должны быть данные о параметрах линка свича, нулевой. В инете натыкался на упоминания о том, что это какая-то ошибка автопереговоров, хотя в режиме 1000BASE-X вроде они отключены. В любом случае непонятно, как такой линк поднимать, потому что свич зациклен на этой последовательности, чтобы я ему не посылал в ответ. Буду признателен за помощь. Изменено 29 сентября, 2020 пользователем RoadRunner Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 29 сентября, 2020 Опубликовано 29 сентября, 2020 (изменено) · Жалоба Когда линк не подымается, я выработал для себя первое правило - делать петлю, или на трансивере, или на phy (Marvell), или на SFP, если таковой есть, смотреть что приходит обратно, потом думать дальше 1 hour ago, RoadRunner said: BC B5 00 00 BC 42 00 00 вроде как, это вам Marvell сам присылает, что автосогласование пройти не может, надо поднять мануал по нему глянуть или полный стандарт 1000BASE-X. upd. Глянул стандарт, там описаны эти коды при 1000BASE-X и 10/8 кодировке Изменено 29 сентября, 2020 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 29 сентября, 2020 Опубликовано 29 сентября, 2020 · Жалоба Ситуация двоякая в стандарте, надо глубже разбираться. Вроде и конфиг приходит А вроде и обычный IDLE Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RoadRunner 0 29 сентября, 2020 Опубликовано 29 сентября, 2020 (изменено) · Жалоба 1 hour ago, new123 said: Когда линк не подымается, я выработал для себя первое правило - делать петлю, или на трансивере, или на phy (Marvell), или на SFP, если таковой есть, смотреть что приходит обратно, потом думать дальше Трансивер на loopback я сейчас посмотрю - это мысль, спасибо. Но беда то тут в том, что даже если все до свича правильно доходит, непонятно, что ему вообще надо в таком случае посылать: когда он шлет конфигурационную последовательность с конфигурационным регистром равным нулю. По стандарту такое вроде только короткое время при сбросе посылается. Потом конфигурационный регистр должен быть отличен от нуля. И ответная часть должна будет прислать такой же регистр с установленным битом подтверждения. И линк поднимется, как я понял. Но вот что значит постоянно посылаемый нулевой конфигурационный регистр, я в стандарте так и не нашел. Что это за ошибка такая. Есть тема, где товарищ о ней упоминает, но опять же неопределенно. Изменено 29 сентября, 2020 пользователем RoadRunner Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 29 сентября, 2020 Опубликовано 29 сентября, 2020 (изменено) · Жалоба Поизучал еще раз стандарт. Вы точно отхватываете 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 Изменено 29 сентября, 2020 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RoadRunner 0 30 сентября, 2020 Опубликовано 30 сентября, 2020 (изменено) · Жалоба Странное дело.. Попробовал завести выход одного трансивера на вход другого - приема нет вообще. Ни на оптике, ни на медных sfp. Принимает либо просто нули, либо галиматью какую-то. Когда к Марвеллу то подключался хотя бы конфигурационная последовательность принималась, хоть и с нулевым конфигом. А тут и его нет, хотя отправку на обоих трансиверах я зациклил. Я вот думаю, у sfp-модуля есть i2c. Его программировать по нему не надо? Режим определенный задавать? Насколько я понимаю, там же phy обычный внутри. Плюс, есть еще отдельные пины конфигурации. Знающие люди, не поделитесь ссылкой на стандарт, где можно почитать про назначение этих пинов и программирование i2c sfp-модуля? Изменено 30 сентября, 2020 пользователем RoadRunner Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 30 сентября, 2020 Опубликовано 30 сентября, 2020 (изменено) · Жалоба 17 minutes ago, RoadRunner said: , у sfp-модуля есть i2c. у меня опыт только от минимум SFP+, программировать с завода их не надо. Есть только пины TX_DISABLE, и RATE, на которые нужно подать соответствующие сигналы. В инете по распайке пинов много инфы 17 minutes ago, RoadRunner said: либо галиматью какую-то Если речь про трансиверы на кабеле (не на чипе), то есть про SFP, то в кабель идет не галиматья, а закодированный Марвелом сигнал по стандарту 1000BASE-X =)). Там каша будет из 0 и 1. Там же происходит 8/10B уплотнение и наверное еще ряд чего. То есть данные поданные на Marvell, не будут равны данным поданным в кабель. Изменено 30 сентября, 2020 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RoadRunner 0 30 сентября, 2020 Опубликовано 30 сентября, 2020 · Жалоба 3 minutes ago, new123 said: Если речь про трансиверы на кабеле (не на чипе), то есть про SFP, то в кабель идет не галиматья, а закодированный Марвелом сигнал по стандарту 1000BASE-X =)). Там каша будет из 0 и 1. Не, я имел ввиду трансиверы на ПЛИС. У меня на ките Cyclone 10 GX два sfp+ модуля. Ну вот я их и соединил, а в проекте на ПЛИС соответственно подключил к каждому модулю трансивер и зациклил на каждом передачу конфигурационной последовательности. 7 minutes ago, new123 said: у меня опыт только от минимум SFP+, программировать с завода их не надо. Есть только пины TX_DISABLE, и RATE, на которые нужно подать соответствующие сигналы. В инете по распайке пинов много инфы Буду разбираться, спасибо за информацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
S_Hawk 0 30 сентября, 2020 Опубликовано 30 сентября, 2020 · Жалоба Те SFP, что мне попадались, конфигурировать не нужно было. Да и конфиг там только на чтение доступен. Чтобы всякие Арубы и Циски не запускались на левых SFP. А Марвел Вы правильно настроили? Ему ж надо сказать, что он должен в 1000base-X работать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RoadRunner 0 1 октября, 2020 Опубликовано 1 октября, 2020 (изменено) · Жалоба 9 hours ago, S_Hawk said: Те SFP, что мне попадались, конфигурировать не нужно было. Да и конфиг там только на чтение доступен. Чтобы всякие Арубы и Циски не запускались на левых SFP. А Марвел Вы правильно настроили? Ему ж надо сказать, что он должен в 1000base-X работать? Да, там резисторами все подтянуто как надо. Да и потом - эти sfp-модули у меня как выяснилось без всякого марвела, друг на друга не передают. Сейчас с их распиновкой разбираюсь, может там что-то неправильно выставлено. Изменено 1 октября, 2020 пользователем RoadRunner Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RoadRunner 0 5 октября, 2020 Опубликовано 5 октября, 2020 (изменено) · Жалоба 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 уже решал проблему - я действительно просто ничего не отправлял в линию. В общем жесть.. столько геммора из-за такой хрени! Большое спасибо за помощь! Изменено 5 октября, 2020 пользователем RoadRunner Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 5 октября, 2020 Опубликовано 5 октября, 2020 · Жалоба Я не стал вас ранее поправлять, потому что SFP не юзал. Но обычно SFP+ распаивают на DISABLE, подтяжку делают. По крайней мере на моих платах. Поздравляю что все разрешилось Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться