Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: драйвер ethernet switch
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
tturist
Есть процессор с одним портом ethernet (АМ1808), linux 2.6.37. Требуется прикрутить ethernet switch (KSZ8863). Подскажите, где можно посмотреть примеры кода? Ткните, плс, в какую-нибудь плату с ethernet switch + linux.
ObitJr
Цитата(tturist @ May 10 2012, 09:22) *
Есть процессор с одним портом ethernet (АМ1808), linux 2.6.37. Требуется прикрутить ethernet switch (KSZ8863). Подскажите, где можно посмотреть примеры кода? Ткните, плс, в какую-нибудь плату с ethernet switch + linux.


В исходных текстах ядра, net/dsa - поддержка switch'а 88EXXXX от Marvell.
tturist
Цитата(ObitJr @ May 10 2012, 17:25) *
В исходных текстах ядра, net/dsa - поддержка switch'а 88EXXXX от Marvell.

Спсб. Но я неточно сформулировал вопрос - скорее хотелось бы воспользоваться стандартным "Generic PHY" драйвером, но не могу найти примера - как сконфигурировать несколько phy к одному сетевому устройству.
DSA - любопытная вещь. Опять-таки не могу найти толкового описания принципа работы. Основное что не понятно - DSA требует поддержки в чипе свича или это чисто софтовая примочка линукса?
ObitJr
Цитата(tturist @ May 11 2012, 16:59) *
Спсб. Но я неточно сформулировал вопрос - скорее хотелось бы воспользоваться стандартным "Generic PHY" драйвером, но не могу найти примера - как сконфигурировать несколько phy к одному сетевому устройству.
DSA - любопытная вещь. Опять-таки не могу найти толкового описания принципа работы. Основное что не понятно - DSA требует поддержки в чипе свича или это чисто софтовая примочка линукса?


Технологию DSA должен поожерживать чип. И похоже что ваш чип ее тоже поддерживает.
В сети есть куча исходников где реализовано DSA для 8863.
Посмотрите на http://www.eleaks.org/tmp/micrel/
tturist
Цитата(ObitJr @ May 12 2012, 12:21) *
Технологию DSA должен поожерживать чип. И похоже что ваш чип ее тоже поддерживает.
В сети есть куча исходников где реализовано DSA для 8863.
Посмотрите на http://www.eleaks.org/tmp/micrel/


Да, спасибо, видел эти исходники. Есть так же поддержка DSA для чипа KSZ8893M в ветке uLinux для BlackFin (вроде как стоит на плате BF518-EZBRD). Но нет ни одного слова про DSA в даташитах KSZ8863 и KSZ8893! И вообще сайт микрела про DSA ничего не знает. Или рассказать не хочет. Странно все это как-то... Кроме загадочных слов из описания DSA про специальный "ethernet header format" - все остальное скрыто туманом.

Остается открытым вопрос - как подключить switch без использования DSA.
ObitJr
Цитата(tturist @ May 12 2012, 16:39) *
Да, спасибо, видел эти исходники. Есть так же поддержка DSA для чипа KSZ8893M в ветке uLinux для BlackFin (вроде как стоит на плате BF518-EZBRD). Но нет ни одного слова про DSA в даташитах KSZ8863 и KSZ8893! И вообще сайт микрела про DSA ничего не знает. Или рассказать не хочет. Странно все это как-то... Кроме загадочных слов из описания DSA про специальный "ethernet header format" - все остальное скрыто туманом.

Остается открытым вопрос - как подключить switch без использования DSA.


Берете драйвер под emac вашего процессора, добавляете в список фитеров новый с ID вашего свитча. Базовые функции должны работать. Далее правите под switch если нужно.

Я так понял что вы используете davinci_emac. Он, вроде, должен брать первый попавшийся phy (найденный по ID) и использовать его. Насколько я помню, если ID фитера не опознан - используется "Generic PHY".
tturist
Цитата(ObitJr @ May 14 2012, 11:37) *
Берете драйвер под emac вашего процессора, добавляете в список фитеров новый с ID вашего свитча. Базовые функции должны работать. Далее правите под switch если нужно.

Я так понял что вы используете davinci_emac. Он, вроде, должен брать первый попавшийся phy (найденный по ID) и использовать его. Насколько я помню, если ID фитера не опознан - используется "Generic PHY".


Да, все так - davinci_emac берет первый phy на шине и Generic PHY работает. Но только для первого phy порта. Соответственно если кабель воткнули не в первый, а во второй порт, линка нет, интерфейс не работает.
По исходникам Generic PHY у меня складывается впечатление что несколько phy на одном сетевом устройстве не поддерживается (phy_connect() этого вроде не предусматривает). Я конечно могу все это переделать. Но складывается стойкое ощущение что я копаю "не в ту сторону". Как-то все должно быть проще... Но не могу найти примеров - как.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.