|
Microblaze + Marvell phy + LwIP, вопрос к тем кто поднимал подобную систему |
|
|
|
Apr 20 2013, 18:49
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Всем привет, собственно поднимаю езернет на тренцовой платке, Имею спартан 6 с 2 блоками ДДР и phy 88Е1111 от марвела. В плисину запихал EMAClite, инициализировал его и попробовал послать данные в компьютер - все получилось, пакет был левый, но данные я принял.
И вот тут начались вопросы. 1. между spartan и phy идет GMII, в EMACLite есть только MII, и я не понимаю в какой момент и как PHY это просек. Есть какой то режим автоопределения интерфейса, или мне просто повезло? Как сделать везение постоянным?
2. настройка этого marvell, его полную карту регистров можно получить только после подписания договора о неразглашении (что думаю быстро нереально), но вроде бы первые 6 регистров во всех PHY заданы стандартом. Так ли это? Хватит ли для боле менее стандартного начала работы этих 6 регистров?
3. LwIP подключив библиотеку, я получил размер кода 57 КБайт (секция .text) , я что -то сделал не так? Или если связался с этим кодом то сразу надо понимать что придется программу запускать из DDR, что надо писать загрузчик? Я в DDR ничего не могу переложить, линкеру говорю положи туда он соглашается, но при попытке залить прошивку в ПЛИС ругается что сегменты не лезут в память, почему?!
4. LwIP идет в ксалинксе библиотекой, что делать с драйвером phy в этом случае? он какой то стандартный или считается что я настрою phy до запуска LwIP?
не хватает очень диалога с людьми которые это уже сделали... хочется не просто запустить чужой пример, а разобраться в том что твориться внутри проца...
|
|
|
|
|
 |
Ответов
|
Apr 21 2013, 11:27
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Теперь еще сообщение о том как работать черезе bootloop. в SDK 14.4 делается так:
в платформ студио генерите ядро процессора, и экспортируете его в SDK. Там создаете проект на этом ядре. Для полученного проекта создаете или правите lscript.ld. Файл может называться и по другому, в настройках проекта в buid задается какой файл использовать. Файл можно создать при помощи утилиты, а можно тыкнуть имеющийся он лежит в src проекта, откроется помощник его правки, а можно совсем заджидается и поправить прямо текст руками.
В этом файле рассказываете куда какие секции в памяти вашего проекта разложить, компилируете, смотрите чтобы все влезло.
Дальше жмете кнопку Program FPGA, и в открывшемся меню выбираете загрузить bootloop, и ждете когда он загрузится.
Дальше вашу программу пихаете через кнопки debug as и run as, программа будет запускаться с сегментами в определенной вами памяти. Только надо следить что вы попихали в память, если весь проект сразу положить в DDR может и не заработать так как хочется... некоторые модули надо будет правильно проинитить с учетом того что работаете не из bram.
Пока я не знаю как сделать файл прошивку для флэшки, чтобы оно все само запускалось и в память перекладовалось, с этим bootloop-ом, кто знает подскажите...
|
|
|
|
|
Apr 23 2013, 05:25
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Golikov A. @ Apr 21 2013, 14:27)  1. Phy marvell 88e1111 при помощи внешних ножек (или внутренних регистров) может быть сконфигурен на вид носителя (медь - оптика) и протокол связи (GMII/MII RGMII) и так далее... При этом GMII/MII идет всегда единой связкой. Если phy подключится на 1000MB ethernet он будет работать по GMII, на 10/100 по MII. При этом поскольку клок для GMII и MII разные с phy выходят в mac. То Даже включившись на GMII на MII будет клок (есть возможности настройки) дальше я так понимаю по тому на какой из клоков засинхронизируется MAC марвел и отличает по какой шине 8бит GMII или 4MII идет обмен. Это при передаче, при приеме МАК вроде как генерит клок, следовательно по частоте 2.5 25 125 можно отличить интерфейсы. Вроде как вот так работает эта магия. Нужно почитать документацию на 88e1111. http://read.pudn.com/downloads129/sourceco...8E1111%20DS.pdf Многое станет яснее.
|
|
|
|
Сообщений в этой теме
Golikov A. Microblaze + Marvell phy + LwIP Apr 20 2013, 18:49 rsv А плата своя, или какая то отладка?
П1. А tri mode... Apr 20 2013, 19:30 Golikov A. плата от trenz, это не отладка, а как бы готовый м... Apr 20 2013, 19:56 rsv Почему работает phy - не знаю. Но тут http://ru.w... Apr 20 2013, 20:13 Golikov A. вот я как то читаю про МII GMII RMII и прочее, но ... Apr 20 2013, 20:36 rsv Скриншот бы посмотреть от генератора линкерскрипта... Apr 20 2013, 20:58 Golikov A. кнопка Program FPGA вообще может грузить код секци... Apr 20 2013, 21:24 rsv Надо все секции в ддр складывать, совсем все. А в ... Apr 20 2013, 21:28 Golikov A. то есть про идею использовать 2 внутренниии шины д... Apr 21 2013, 04:13 Golikov A. НАРОД! можно для тупых, как bootloop использов... Apr 21 2013, 06:13 Golikov A. Некоторые ответы на заданные ранее вопросы, может ... Apr 21 2013, 09:59  Golikov A. Цитата(Acvarif @ Apr 23 2013, 09:25) Нужн... Apr 23 2013, 16:14 knk К вашей плате идёт 2 проекта пользующих Ethernet и... Apr 23 2013, 13:00 knk Утилита есть objdump - дампнуть нужные секции и з... Apr 24 2013, 06:39 Golikov A. а в ядро надо какую то корку работы с флэшкой пиха... Apr 24 2013, 09:43 knk axi_quad_spi помоему, в проекте который я приводил... Apr 24 2013, 11:18 Golikov A. я пока это все отложил на будущее, пока надо други... Apr 24 2013, 11:32 knk ELF формат хорошо описан и довольно легко разбирае... Apr 24 2013, 13:07 Golikov A. Ок. принято спасибо.
Жаль ксалинкс не предусмотрел... Apr 24 2013, 13:56 knk Слишком много вариантов - негибкое решение получит... Apr 24 2013, 15:07 Golikov A. Народ lwip чет ад какой то!
Скажите мне ARP у... Apr 25 2013, 18:31 rsv Может маска не та настроена. Проще всего начать с ... Apr 25 2013, 19:51 Golikov A. так что не так нашел
LwIP внутри имеет функцию низ... Apr 25 2013, 19:53
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|