реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> DP83848, Поддержка PHY от TI DP83848J
xor.kruger
сообщение Oct 28 2013, 07:57
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Доброго времени суток!
Встречал на нашем форуме много тем и сообщений об использовании семейства PHY DP83848.
Но не разу не видел чтобы его использовали в сети из под Linux. Поддержка драйвера для данного семейства в последних версиях кернела также замечена не была sad.gif
Вопрос: использовал ли его кто нибудь в Linux и если да, то какой драйвер прикручивали ?
Заранее спасибо за любой ответ/совет sm.gif
Go to the top of the page
 
+Quote Post
Idle
сообщение Oct 28 2013, 09:07
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



Цитата(xor.kruger @ Oct 28 2013, 11:57) *
Заранее спасибо за любой ответ/совет sm.gif

По моим представлениям драйвера для фаев не очень-то и нужны. Настроил нужный режим "подтяжками" чипа и вперёд. Нет?
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 28 2013, 11:06
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Так ведь у всех Фаев одинаковый интерфейс. MII разрешается в конфигурации. Ключевой файл drivers/net/fec.c

Я недавно уже отвечал на подобный вопрос:
http://electronix.ru/forum/index.php?showtopic=115896
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Oct 30 2013, 07:31
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Цитата
По моим представлениям драйвера для фаев не очень-то и нужны. Настроил нужный режим "подтяжками" чипа и вперёд. Нет?

Для некоторых "стандартных" PHY действительно никаких особых опций не нужно, например для SMSC LAN83C185 необходимо только указать опцию в ядре CONFIG_MII, хотя для него есть также отдельная опция CONFIG_SMSC_PHY, которая, как я понимаю, позволяет выполнять более расширенные действия над ним.

Практически в такой же аппаратной системе стоит PHY DP83848J с которым данный трюк не прокатывает и отдельной опции в ядре для него также нету sad.gif
Вот кусок лога загрузки и работы:
Загрузка:
Код
[    4.391557] xilinx_emaclite 40e00000.ethernet: Device Tree Probing
[    4.398573] libphy: Xilinx Emaclite MDIO: probed
[b][    4.441222] mdio_bus c00e41c4: cannot get PHY at address 0[/b]
[    4.445633] xilinx_emaclite 40e00000.ethernet: MAC address is now 00:0a:35:00:00:00
[    4.460226] xilinx_emaclite 40e00000.ethernet: Xilinx EmacLite at 0x40E00000 mapped to 0xF0040000, irq=2
[    4.476092] TCP: cubic registered
[    4.478288] NET: Registered protocol family 17

Работа ifconfig:
Код
/ # ifconfig eth0 192.168.1.89 netmask 255.255.255.0
[   11.756935] net eth0: of_phy_connect() failed
ifconfig: SIOCSIFFLAGS: No such device

Вот такие пироги sad.gif

Цитата
Ключевой файл drivers/net/fec.c

Данный ключевой файл был ключевым до версии ядра 3.1
Go to the top of the page
 
+Quote Post
Idle
сообщение Oct 30 2013, 11:27
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



Цитата(xor.kruger @ Oct 30 2013, 11:31) *
Для некоторых "стандартных" PHY действительно никаких особых опций не нужно

Не, я так себе представлял что:
1. настроить любой фай можно или программно через MDIO (drivers/net/phy в mainline) или аппаратно подтяжкой выводов чипа или в 0 или к vcc
2. менять настройки фая мало кому нужно, поэтому все делают конфигурацию аппаратно раз и навсегда
3. поскольку все делают конфигурацию аппаратно - в ядре так мало драйверов MDIO

Т.е. я где-то ошибся и для DP83848J нужно обязательно что-то делать через MDIO?

Сообщение отредактировал Idle - Oct 30 2013, 11:28
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 30 2013, 11:34
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



К сожалению мне не приходилось подключать PHY для поздних версий sad.gif
Однако они все должны работать по стандартному интерфейсу. Насколько я помню в протоколе на адресацию устройства отведено 5 бит. драйвер перебирает все 32 устройства, читая идентификацию. Если устройства по этому адресу нет, то читается 0xFFFFFFFF.
Как найти код драйвера. Легче всего посмотреть имя драйвера в другой системе с кернелом 3.1 в /sys:
$ ls /sys/bus/platform/drivers
у меня это fec.
Дальше поищите имя в коде драйверов. Находясь в корне кернела исполните команду:
grep -rn '"fec"' drivers

скорее всего вы ищите строку
.name = "fec",

Ну а потом добавляя в разные места printk протестируйте, что происходит.

Отдельной опции не бывает по двум причинам:
1. Она не нужна, т.к. стандартным драйвером поддерживается целый класс устройств.
2. Код драйвера не добавлен в ядро.

Я почти уверен, что у вас первый случай.

Вы взяли за прототип какое-то устройство и поменяли PHY на удобный вам?
Если так, то есть ли у вас исходное устройство живьём?


Сообщение отредактировал Tarbal - Oct 30 2013, 11:42
Go to the top of the page
 
+Quote Post
sasamy
сообщение Oct 30 2013, 12:07
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(xor.kruger @ Oct 30 2013, 11:31) *
Код
/ # ifconfig eth0 192.168.1.89 netmask 255.255.255.0
[   11.756935] net eth0: of_phy_connect() failed
ifconfig: SIOCSIFFLAGS: No such device


А в device tree PHY прописан ?

http://lxr.free-electrons.com/source/drive.../of_mdio.c#L191
Go to the top of the page
 
+Quote Post
Idle
сообщение Oct 30 2013, 12:15
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



Цитата(Idle @ Oct 30 2013, 15:27) *
Т.е. я где-то ошибся и для DP83848J нужно обязательно что-то делать через MDIO?

А, понял. Связь мака с фаем драйверу мака нужна в любом случае. Просто есть стандартные регистры и расширения для конкретного чипа. Собственно драйвера нужны для расширений. Там где нет прямой связи с фаем используют fixed phy.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 30 2013, 12:20
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(sasamy @ Oct 30 2013, 16:07) *
А в device tree PHY прописан ?

http://lxr.free-electrons.com/source/drive.../of_mdio.c#L191


Должен конечно. Он туда попадает при регистрации устройства. Это легко проверить, посмотрев в /sys
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Nov 1 2013, 09:19
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Цитата
А в device tree PHY прописан ?

Прописан.
По сути весь SoC тот же как и на рабочей системе за отличием PHY.

Думаю может написать пробный "базовый" драйвер для данного PHY по аналогии с другими имеющимися в linux-kernel/drivers/net/phy
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Nov 1 2013, 14:57
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Цитата
Отдельной опции не бывает по двум причинам:

Цитата
1. Она не нужна, т.к. стандартным драйвером поддерживается целый класс устройств.

Это и так понятно, только вот понятие "стандартное тоже достаточно широкое" sm.gif, например DP83865DVH (National), вообще не заведется если отдельно поддержку не включить (Стандартный такой себе PHY)
Цитата
2. Код драйвера не добавлен в ядро.

Что Вы хотели этим сказать ? sm.gif

НУ а если по теме, то проблема в считывании ID PHY, если в исходниках убрать проверку на йидишник, то дальше регистрация и "создание" устройства проходит нормально. В результате чего теже пинги на плату и с платы проходят нормально. Осталось разобраться почему считываются одни нули sad.gif
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Nov 2 2013, 19:47
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(xor.kruger @ Nov 1 2013, 18:57) *
Что Вы хотели этим сказать ? sm.gif


В сорс коде используемого вами ядра нет кодов драйвера.
Вы нашли какой драйвер используется?

Сообщение отредактировал Tarbal - Nov 2 2013, 20:05
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Nov 4 2013, 06:46
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Цитата
Вы нашли какой драйвер используется?

Ну для конкретного данного PHY нету => использую стандартный Framework for finding and configuring PHYs.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Nov 4 2013, 13:10
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(xor.kruger @ Nov 4 2013, 09:46) *
Ну для конкретного данного PHY нету => использую стандартный Framework for finding and configuring PHYs.


Вы так и не сказали что у вас в директориях:
/sys/bus/platform/drivers
/sys/bus/platform/devices
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Nov 5 2013, 07:36
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Цитата
Вы так и не сказали что у вас в директориях:

Это не имеет никакого отношения к решению моей проблемы. Например в каталоге /sys/bus/platform/devices описаны какие устройства зарегистрировались в моей системе; ну и что дальше, с работой периферийных устройств и шин у меня проблем нету sm.gif
Ну если Вы так настаиваете и может с помощью содержимых каталогов решить данную проблему, то милости просим sm.gif
Код
/ # ls -lR /sys/bus/platform/devices
/sys/bus/platform/devices:
total 0
lrwxrwxrwx    1 0        0                0 Jan  1 00:02 40000000.gpio -> ../../../devices/axi.1/40000000.gpio
lrwxrwxrwx    1 0        0                0 Jan  1 00:02 40600000.serial -> ../../../devices/axi.1/40600000.serial
lrwxrwxrwx    1 0        0                0 Jan  1 00:02 40e00000.ethernet -> ../../../devices/axi.1/40e00000.ethernet
lrwxrwxrwx    1 0        0                0 Jan  1 00:02 41200000.interrupt-controller -> ../../../devices/axi.1/41200000.interrupt-controller
lrwxrwxrwx    1 0        0                0 Jan  1 00:02 41c00000.timer -> ../../../devices/axi.1/41c00000.timer
lrwxrwxrwx    1 0        0                0 Jan  1 00:02 alarmtimer -> ../../../devices/platform/alarmtimer
lrwxrwxrwx    1 0        0                0 Jan  1 00:02 axi.0 -> ../../../devices/axi.0
lrwxrwxrwx    1 0        0                0 Jan  1 00:02 axi.1 -> ../../../devices/axi.1


Код
/ # ls -lR /sys/bus/platform/drivers
/sys/bus/platform/drivers:
total 0
drwxr-xr-x    2 0        0                0 Jan  1 00:01 alarmtimer
drwxr-xr-x    2 0        0                0 Jan  1 00:01 uartlite
drwxr-xr-x    2 0        0                0 Jan  1 00:01 xilinx_emaclite

/sys/bus/platform/drivers/alarmtimer:
total 0
lrwxrwxrwx    1 0        0                0 Jan  1 00:06 alarmtimer -> ../../../../devices/platform/alarmtimer
--w-------    1 0        0             4096 Jan  1 00:06 bind
--w-------    1 0        0             4096 Jan  1 00:06 uevent
--w-------    1 0        0             4096 Jan  1 00:06 unbind

/sys/bus/platform/drivers/uartlite:
total 0
lrwxrwxrwx    1 0        0                0 Jan  1 00:06 40600000.serial -> ../../../../devices/axi.1/40600000.serial
--w-------    1 0        0             4096 Jan  1 00:06 bind
--w-------    1 0        0             4096 Jan  1 00:06 uevent
--w-------    1 0        0             4096 Jan  1 00:06 unbind

/sys/bus/platform/drivers/xilinx_emaclite:
total 0
lrwxrwxrwx    1 0        0                0 Jan  1 00:06 40e00000.ethernet -> ../../../../devices/axi.1/40e00000.ethernet
--w-------    1 0        0             4096 Jan  1 00:06 bind
--w-------    1 0        0             4096 Jan  1 00:06 uevent
--w-------    1 0        0             4096 Jan  1 00:06 unbind
/ #


Реально, по факту, на данный момент проблема локализирована и как я писал выше - это проблема при считывании ID - считываются нули. Если убрать данную проверку то все отлично работает. Но это не спортивно и по свободе нуна будет этот момент добить до конца sm.gif
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 11:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01504 секунд с 7
ELECTRONIX ©2004-2016