Доброго времени суток!
При попытки подключить ethernet столкнулся с проблемой инициализации PHY. За основу был взят проект IAR basic-emac-project. Алгоритм действий следующий.
1. Заливаю bootstrap.
2. Компилирую проект IAR без каких либо исправлений.
3. Заливаю бинарник по адресу 0x8400 в dataFlash.
4. Включаю питание, выключаю JTAG.
5. Включаю питание и наблюдаю в терминале следующую картину.
Данные пример, как известно, заточен как известно под AT91SAM9260 - EK. Там используется микросхема физ уровня 9161, а в моём случаи 8721. Отсюда вопрос.
Насколько совместим этот пример с моей микросхемой физ уровня?
Что нужно изменить в проекте, что бы инициализация прошла успешно? Если в данном случаи это возможно.
найдите в сорцах место, где генерится это сообщение и смотрите, что софту не нравится..
если у вас местный кит, то там вроде разный базовый адрес у PHY по отношению к EK. по крайней мере, в сорцах ядра правиться этот пункт, чтобы поднять сетевой адаптер..
Расскажите пожалуйста про базовый адрес PHY. Что он из себя представляет и чем отличается от 260 - EK. Если есть возможность, то где и как его поменять.
Заранее спасибо.
смотреть в процедуре MACB_InitPhy на предмет адреса 0 и править на 1. разобраться что за BOARD_MCK.
Вы имеете в виду BOARD_EMAC_PHY_ADDR ?
А зачем разбираться с BOARD_MCK, вроде бы и так известно что это за величина. Если я не прав, расскажите пожалуйста поподробней
А зачем разбираться с BOARD_MCK, вроде бы и так известно что это за величина.
а зачем тогда вы это спрашиваете?
рассуждаем: два человека советуют проверить определенное место - почему бы взять и не проверить его? т.б. мы на эти грабли уже наступали, а некоторые еще и драйвера писали :D
Что нужно изменить в проекте, что бы инициализация прошла успешно? Если в данном случаи это возможно.
Возможно и более чем. Многоуважаемые Jury093 и rw9uao сказали Вам в какую сторону копать более чем доступно. Если Вы еще не разобрались, выложу фрагменты своих доработок для запуска платы MAT91SAM9260 (запускалось так же и на процессоре AT91SAM9XE512).
Я думаю куда вставить соответствующие участки кода приводить нет необходимости.
После этих простых доработок у меня все запустилось и бегало =) Более того было проверено на самописном стеке TCP/IP.
В принципе, в качестве костыля можно было просто отключить проверку на валидность установленного физического уровня, но так будет лучше.
Попробовал аналогичную задачу (basic-emac-project) запустить на местном ките AT91SAM9G45. Добавил в оригинальные библиотеки поддержку MICREL 8721. Компилировал и заливал прогу в IAR. В терминале выдает следующее:
и не пингуется. Подключал перекрестным кабелем непосредственно к компу. Может JTAG мешает или что-то другое упустил из виду? В чем может быть проблема?