|
Не удается поднять lwIP c SFP, SFP Microblaze lwIP |
|
|
|
Feb 19 2014, 13:57
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Здравствуйте, уважаемые форумчане! Поделитесь, пожалуйста, опытом работы с SFP-модулем. Стоит задача поднять lwIP (для начала, чтобы хотя бы пошел ping). На плате установлен Kintex7, ethernet через SFP RJ45. Использую ядро axi_ethernet в режиме 1000BASE-X. Система построена с применением axi_fifo (dma использовать невозможно, так как нет DDR-памяти). Не данный момент мне удалось заставить работать LOOPBACK-тесты, которые генерируются при создании приложения peripherals_test_0 в SDK. По статусному регистру MDIO вижу, что autonegatiation OK, link active. Если LOOPBACK снять, то тоже autonegatiation OK, link active. Однако мне не удается получить ни одного пакета извне. Снимаю LOOPBACK, пингую снаружи - прерываний нет, и все счетчики входящих пакетов по нулям. Присоединился chipscope к внутренней шине GMII и вижу, что сигнал INT_GMII_RX_ERR передает меандр  (чего нет в режиме LOOPBACK). В чем может быть ошибка??
|
|
|
|
|
Feb 23 2014, 18:03
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Цитата(vitan @ Feb 22 2014, 23:36)  В этом и ошибка. Надо не 1000BASE-X, а SGMII. Воткните оптический SFP. Если SGMII сделать, то тогда autonegatiation не проходит, link-а нет. Т.е. еще хуже. Попробую завтра оптику вставить...
|
|
|
|
|
Feb 24 2014, 09:42
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Спасибо всем за ответы. Цитата(krux @ Feb 23 2014, 22:37)  для начала убедитесь что ваш SFP-T модуль со стороны меди подключен к 1000Base-T порту (свича, компа или чего ещё) для режима SGMII SFP-модуль должен быть предварительно также переведён в этот режим. Это делается через запись регистров по I2C на SFP-разъеме. Однако режим SGMII умеют далеко не все модули.
через MDIO вы видите какой линк? 1000Base-X?
убедитесь, что когда вы подключаете чипскоп к INT_GMII_RX_ERR, ваше подключение чипскопом не вышибает никакие констрейны типа RLOC-ов. подключитесь к TEMAC со стороны localink-а, что видно там? У меня модель ST-1000FT (1000BASE-T) DS Telecom. Другой конец кабеля вставляю в сетевую карту компа. Через MDIO вижу, что в статусном регистре (1) выставлены биты: Link is UP, AutoNeg ability, AutoNeg completed. На всякий случай привожу дамп регистров (Описаны в PG047 стр 56). Код 0. 0x1140 1. 0x01EC 2. 0x0000 3. 0x0000 4. 0x01A0 5. 0x41A0 6. 0x0004 7. 0x0000 8. 0x0000 9. 0x0000 10. 0x0000 11. 0x0000 12. 0x0000 13. 0x0000 14. 0x0000 15. 0x8000 16. 0x0003 Про вышибание констрейнов могу сказать только то, что в UCF кроме внешних выводов для ethernet я больше ничего не задавал. И если chipscope подключен, то loopback-тесты работают. По поводу подключение к TEMAC со стороны localink-а: я могу подключиться только со стороны AXI. Не совсем понял Ваш вопрос. Цитата(vitan @ Feb 24 2014, 00:10)  Если это медь, то умеет, причем по умолчанию ничего прописывать обычно не надо.
Вообще, модель SFP неплохо бы в студию.
|
|
|
|
|
Feb 25 2014, 11:09
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Цитата(vitan @ Feb 24 2014, 21:33)  У Вас там внутри стоит 88е1111, это видно по регистрам. Так вот, он не может работать ни в каком другом режиме на медь, кроме как SGMII (будучи установленным в SFP, ессно). Поэтому см. пост №3. Если нет оптики, то придется отлаживать SGMII. Внутри чего по-вашему стоит 88е1111, в SFP? Если SFP выдернуть, то регистры все равно будут считываться, только упадеть link и autonegatiation (и еще что-то...). По-моему это регистры ядра 1000BASE-X PCS/PMA or SGMII, которое входит в состав axi_ethernet (режим 4 или 5). Хотя в целом м.б. вы действительно правы, что стоит копать под SGMII. Сейчас прикручиваю в ISE отдельно взятое IP Core 1000BASE-X PCS/PMA or SGMII к GTX-трансиверу, ну и к SFP.
|
|
|
|
|
Mar 5 2014, 08:38
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
lwIP вчера потихоньку начала подниматься Дело в том, что оказывается на плате перевернута входная диффпара RX. "Перевернуть" диффпару обратно возможно, если подать единицу на rx_polarity. однако если использовать axi_ethernet в режиме SGMII или 1000BASE-X, то добраться до rx_polarity невозможно, так как GTX-трансивер вместе с rx_polarity сидит внутри axi_ethernet. Поэтому пришлось взять axi_ethernet в режиме GMII, и отдельно присодинить к нему IP-ядро LogiCORE IP Ethernet 1000BASE-X PCS/PMA or SGMII (в режиме SGMII). С другой стороны к PCS/PMA прикрутил GTX-трансивер. Ping появился, правда периодически пропадает. Если кто-нибудь может подсказать, с чем это может быть связано, буду очень признателен. ЗЫ. Медные SFP: ST-1000FT и GLC-T (китайская подделка CISCO) работают. D-Link DGS-712 и GLC-T (настоящая CISCO) не работают.
|
|
|
|
|
Dec 23 2014, 18:31
|
Знающий
   
Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741

|
Цитата(Golikov A. @ Dec 23 2014, 21:29)  винда не 64 битная? ставьте виртуальную машину и 32 винXP, владельцы 64 битных виндов страдают... Спасибо, а если под opensuse 64, сгенерит?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|