|
Проблема взаимодействия ядра и PHY, Ядро определяет PHY, но не поднимает eth0 |
|
|
|
Oct 28 2012, 18:39
|
Участник

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674

|
Здравствуйте. Возникла следующая проблема, ядро версии 3.2.1 и 3.4.6 на AM1705 не поднимают eth0 с ошибкой: net eth0: no phy, defaulting to 100/full Пробовал на двух платах с разными PHY, на одной Micrel KSZ8721, на другой SMCS LAN8710. При этом в логе загрузки видно, что физика определяется без проблем (для LAN аналогично): Код ... davinci_mdio davinci_mdio.0: davinci mdio revision 1.5 davinci_mdio davinci_mdio.0: detected phy mask ffffff7f davinci_mdio.0: probed davinci_mdio davinci_mdio.0: phy[7]: device 0:07, driver Micrel KS8001 or KS872 ... Однако под конец выдает Configuring network interfaces... net eth0: no phy, defaulting to 100/full. В системе появляются следующие файлы: ./sys/devices/platform/davinci_emac.1/net/eth0 ./sys/class/net/eth0 ./proc/irq/36/eth0 ./proc/irq/35/eth0 ./proc/irq/34/eth0 ./proc/irq/33/eth0 ./proc/sys/net/ipv4/neigh/eth0 ./proc/sys/net/ipv4/conf/eth0 Поиск в гугле результатов не дал.
|
|
|
|
|
Oct 29 2012, 17:40
|
Участник

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674

|
Все я не собирал, только три =) Это по началу, еще с NAND проблема была, думал в более новых версия их поправили, а оказалось не поправили. Но для однозначности остановимся на 3.2.1. И так ядру передаются следующие параметры: mem=32M consoleblank=0 console=ttyS1,115200n8 rw rootwait earlyprintk root=/dev/mtdblock4 rw rootfstype=jffs2 ip=off Конфиг ядра ниже.
config.txt ( 46.52 килобайт )
Кол-во скачиваний: 169
Сообщение отредактировал PavelG - Oct 29 2012, 17:40
|
|
|
|
|
Oct 29 2012, 20:43
|
Участник

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674

|
Цитата(am1808 @ Oct 29 2012, 22:32)  шаманство с ip дает что нибудь? например, передать ip=dhcp
и выхлоп ядра бы весь хотелось увидеть Нет, всегда одно и тоже, что нету phy. Логи для различных вариантов во вложение (ip=static, ip=off, ip=dhcp)
ip_dhcp.txt ( 6.56 килобайт )
Кол-во скачиваний: 265
ip_static.txt ( 9.34 килобайт )
Кол-во скачиваний: 142
ip_off.txt ( 8.25 килобайт )
Кол-во скачиваний: 204
|
|
|
|
|
Oct 30 2012, 09:28
|
Участник

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674

|
Цитата(am1808 @ Oct 30 2012, 07:21)  2. давайте ж все же попробуем передать ядру ip=192.168.1.1:192.168.1.5::255.255.255.0::eth0:off Без изменений:
ip_static2.txt ( 8.89 килобайт )
Кол-во скачиваний: 352Цитата(am1808 @ Oct 30 2012, 07:21)  з.ы. только свои значения подставьте з.ы. 2: ядро как бы для am1705 надо собирать, а не для am18xx т.е. тебе нужно конфигурить для da830 А с чего Вы взяли, что оно у меня для am18xx собирается? Выдержка из выхлопа Machine: DaVinci DA830/OMAP-L137/AM17x EVM, Вы меня так не пугайте  Судя по исходникам, ядро не может получить ID от физики... пытаюсь разобраться почему.
Сообщение отредактировал PavelG - Oct 30 2012, 09:40
|
|
|
|
|
Oct 30 2012, 10:48
|
Участник

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674

|
Цитата(am1808 @ Oct 30 2012, 12:43)  может перепутал на счет лога, но вроде ваш смотрел. а по юсб 1.1 все ж обратите внимание и на VBUS. USB я смотрел, в файле борды где идет инициализация usb, закоментил все что относится к USB1.1, а в логе загрузки всеравно выдает ее инициализацию, но с этим потом разберусь. Цитата(am1808 @ Oct 30 2012, 12:43)  по поводу последнего лога, вижу, все поднялось. пинг есть? Нет не работало, плюс там же тоже вышла эта ошибка... Итог такой, поковырял файл davinci_emac.c и вот, что обнаружил. В функции открытия emac закоментировал if и заставил искать физику, и все заработало ping есть. Вопрос, насколько грубо я исправил проблему, и как это можно cделать лучше? Код [Выхлоп ядра:] net eth0: !!!!!!davinci_emac.c::1584:: Check phy id=3225088728!!!!!!!! net eth0: !!!!!!davinci_emac.c::1590:: Check phy id=3248789512!!!!!!!! net eth0: !!!!!!davinci_emac.c::1600:: !!!!!!!! net eth0: attached PHY driver [Micrel KS8001 or KS8721] (mii_bus:phy_addr=0:07, id=221619) Исправленный кусок Код //if (!priv->phy_id) { struct device *phy;
phy = bus_find_device(&mdio_bus_type, NULL, NULL, match_first_device); dev_err(emac_dev, "!!!!!!davinci_emac.c::1590:: Check phy id=%u\n!!!!!!!!", phy); if (phy) priv->phy_id = dev_name(phy); //}
|
|
|
|
|
Oct 30 2012, 11:29
|
Участник

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674

|
Цитата(am1808 @ Oct 30 2012, 13:58)  а в юбуте правили что нибудь касаемо езернета? пинг из юбута есть? Нет, из ютуба все прекрасно пингуется и передается по tftp. Кстати, вопрос, а U-toob как-то передает ядру информацию о физике, или они ее иниициализируют независимо друг от друга?
|
|
|
|
|
Nov 1 2012, 12:34
|
Участник

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674

|
Цитата(am1808 @ Oct 30 2012, 14:34)  Павел, тогда в ядре еще рас посмотрите пинмуксы, может там что конфликтует Проверил, была возможность для конфликта (EMACа с McASP0), хотя этот модуль у меня и неинициализировался, я его закоментировал, что бы не смущал. Итог тод же, спасает только, как говорил выше, если заставить ядро искать по новой PHY а именно его ID.
|
|
|
|
|
Nov 1 2012, 14:27
|
Частый гость
 
Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337

|
Павел, давайте пробовать начнем, Код # CONFIG_KS8851 is not set # CONFIG_KS8851_MLL is not set # CONFIG_MICREL_PHY is not set # CONFIG_FIXED_PHY is not set # CONFIG_MDIO_BITBANG is not set # CONFIG_SMSC_PHY is not set # CONFIG_MDIO_BITBAN is not set # CONFIG_ETHOC is not set # CONFIG_NET_VENDOR_SEEQ is not set # CONFIG_SEEQ8005 is not set # CONFIG_NET_VENDOR_SMSC is not set # CONFIG_SMC91X is not set # CONFIG_SMC911X is not set # CONFIG_SMSC911X is not set # CONFIG_SMSC911X_ARCH_HOOKS is not set # CONFIG_NET_VENDOR_STMICRO is not set # CONFIG_NET_VENDOR_BROADCOM is not set # CONFIG_B44 is not set # CONFIG_NET_VENDOR_CHELSIO is not set # CONFIG_DM9000 is not set # CONFIG_DNET is not set Код CONFIG_LXT_PHY=y CONFIG_LSI_ET1011C_PHY=y далее, откатываемся к той версии ядра, где вы ничего не трогали, касаемо phy и ethernet жду лог и CONFIG_MDIO_GPIO не устанавливайте еще
Сообщение отредактировал am1808 - Nov 1 2012, 14:23
|
|
|
|
|
Nov 1 2012, 15:09
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(PavelG @ Oct 30 2012, 14:48)  Итог такой, поковырял файл davinci_emac.c Лучше board-da830-evm.c поковыряйте  вот тут http://lxr.free-electrons.com/source/arch/...v=3.2;a=arm#L37#define DA830_EVM_PHY_ID "" вместо "" #define DA830_EVM_PHY_ID NULL phy_id can be one of the following: - NULL : use the first phy on the bus, - "" : force to 100/full, no mdio control - "<bus>:<addr>" : use the specified bus and phy
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|