Решил воспользоваться возможностью зашить MAC во фьюзы командой u-boot:
iim blow fecmac <mac>
Все зашилось, в u-boot сеть работает (правда после установки переменной ethaddr в то же значение). А вот после загрузки линукса сеть перестала работать, хотя рапортует все также:
eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=0:00, irq=-1)
PHY: 0:00 - Link is Up - 100/Full
И по ifconfig вижу прошитый в IIM MAC-адрес, но пакеты не идут.
Есть подозрение, что в u-boot что-то не так происходит, т.к. он по идее должен цеплять MAC из IIM, но почему-то этого не делает... Хотя после установки переменной ethaddr сеть там все-таки работает, странно...
Перед тем, как копать исходники, хотелось бы узнать, может кто сталкивался с подобным.
раскоментируйте (или добавьте если нет) в конфиге include/configs/mx53_sk_nand.h
#define CONFIG_GET_FEC_MAC_ADDR_FROM_IIM
#define CONFIG_IIM_MAC_ADDR_OFFSET 0x24
Спасибо, попробую. А не подскажите по какому адресу лежит u-boot в nand? Есть желание поменять его прямо из под u-boot, чтобы не заморачиваться с mfg-tool, а то плата материнская своя и цивилизованный USB там не предусмотрен.
Надо Linux загрузить - там kobs-ng пишет все по нужным адресам, из убута помоему не получится правильно записать, по крайней мере я не видел нигде упоминаний как записать в nand u-boot из u-boot.
Спасибо за совет, это помогло MAC из IIM цепляется теперь в u-boot, но проблема с сетью была не в этом...
Оказалось, что проблемы возникают на уровне чипа PHY LAN8720, которые "сходят с ума" по непонятным мне причинам. А первый такой казус с чипом совпал как раз с прошивкой MAC в IIM. PHY работает на холодную в u-boot и перестает работать на горячую в u-boot или при последующей загрузке Linux.
При проявлении признаков неработоспособности чип бодро моргает светодиодом Link/Act и действительно шлёт кучу пакетов, о чем свидетельствует свитч. Или может он соединение рвет так часто...
P.S. Перепрошить u-boot у меня так и не получилось (запустил из оперативки с помощью MfgTool). kobs-ng ругается при попытке дать ему команду:
kobs-ng init -v u-boot.bin
Причем ругается не столько он, сколько ubifs. Может раздел u-boot стереть надо предварительно?
Не пойму причем тут ubifs - u-boot в разделе MTD на котором нет никакой ФС. Я перешивал после обычной загрузки linux (без MFG) и в MFG и не один раз.
По поводу LAN8720 - сомневаюсь что дело в нем, с MAC в переменных окружения он же как-то работает, попробую потом у себя..
Да, пожалуй вы правы, ubifs к прямой записи в mtd никакого отношения не имеет, но почему-то ядро ругалось в кольцевой буфер от имени ubifs... Завтра еще раз посмотрю, что за ошибки были.
C MAC теперь все в порядке, я зря на это грешил: работает установка MAC и в переменной ethaddr и из IIM. У меня теперь безотносительно к этой проблеме чипы LAN8720 выходят из строя, вернее работают но только при холодном старте и только в u-boot. Выяснилось это заменой чипа на новый, после этого он какое-то время работает нормально, а потом опять та же песня.
У нас используется своя мат.плата с модулем OEM ревизии B. Скорее всего косяк конечно в мат.плате, так что не буду тут пока слюни разводить по пусту.
Светодиодная подсветка сетевого интерфейса на вашей материнской плате выполнена по той же схеме что и на нашей материнской плате?
Я совсем забыл опубликовать один момент, с заменой чипа физики на LAN8720 необходимо патчить уровни светодиодной подсветки, завтра опубликую схему новой ревизии материнских плат.
По другому не получилось (заменить чип физики без изменения в схеме материнской платы) т.к. у LAN8720 сигналы управления светодиодной подсветки совмещены с конфигурационными функциями (использование внутреннего LDO и т.п.).
Правда, OEM модули B ревизии в материнских платах старой ревизии вобще не должны работать (мы мамки у себя сейчас патчим перед отгрузкой).
Спасибо, может кстати это и поможет подняться интерфейсу при загрузке линукса после холодного старт -u-boot, но после перезагрузки наверняка будет все тоже самое. Полагаю проблему мне надо как-то решить кардинально, и на уровне железа.
Да, управление светодиодами я переделал под SMSC, я вам как раз писал по этому поводу на почту. Однако через какое-то время у меня эти контроллеры слетают с описанными раннее симптомами. Как я понял у вас такого не наблюдается, значит буду искать у себя в мат.плате проблему.
Есть пока только один подозрительный момент: я беру 3,3В с вашего модуля с пина ETH_CT, там у меня нагрузка небольшая <10мА. С модулем ревизии А это было протестировано и не вызвало никаких проблем, может засада именно в этом... Попробую внешний стабилизатор задействовать.