|
Проблемма с LAN (PHY MII/RMII) : at91sam9g20ek+PHY Davicom DM9161AEP, ifconfig : error overruns |
|
|
|
Dec 22 2011, 14:32
|
Группа: Участник
Сообщений: 13
Регистрация: 1-06-11
Из: Днепропетровск
Пользователь №: 65 405

|
Цитата(aaarrr @ Dec 22 2011, 14:19)  Тут уже упоминался at91_ether. Насчет его кривизны ничего сказать не могу.
Можно попробовать замести ошибку под ковер, выставив более высокий приоритет EMAC в MATRIX. Не знаю только, поможет ли. Судя по исходникам - at91_ether применим для процессора at91rm9200. он у меня довольно хорошо работает на этом чипе (board ar91rm9200-dk с PHY Rtl) А вот на at91sam9g20, я так понимаю, его ипользовать не получится, по крайней мере без изменений (он и хэадеры использует от at91rm9200) А вот насчет "замести ошибку под ковер" - хотелось бы попробывать , только вот не знаю как, можите надоумить ? Кстати, может кто-то пытался отправить в Atmel кляузу на macb ? честно говоря - я пробовал, но ни ответа и привета....(хотя назад письмо не вернулось)
|
|
|
|
|
Dec 22 2011, 15:02
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(salara @ Dec 22 2011, 18:32)  Судя по исходникам - at91_ether применим для процессора at91rm9200. он у меня довольно хорошо работает на этом чипе (board ar91rm9200-dk с PHY Rtl) А вот на at91sam9g20, я так понимаю, его ипользовать не получится, по крайней мере без изменений (он и хэадеры использует от at91rm9200) Сами модули у этих процессоров практически идентичные, поэтому должен запуститься с минимальными изменениями. Цитата(salara @ Dec 22 2011, 18:32)  А вот насчет "замести ошибку под ковер" - хотелось бы попробывать , только вот не знаю как, можите надоумить ? Попробуйте записать 0x10000 в MATRIX_PRAS3 - это даст приоритет EMAC'у на шине. Не факт, что в этом дело, но возможно. Цитата(salara @ Dec 22 2011, 18:32)  Кстати, может кто-то пытался отправить в Atmel кляузу на macb ? честно говоря - я пробовал, но ни ответа и привета....(хотя назад письмо не вернулось) Ну, тут как бы as is и все такое. Быстрее будет исправить самому. Тем более что атмеловский софт, на мой взгляд, отличается отвратным качеством изначально.
|
|
|
|
|
Dec 22 2011, 17:34
|
Группа: Участник
Сообщений: 13
Регистрация: 1-06-11
Из: Днепропетровск
Пользователь №: 65 405

|
Пробовал поднять приоритет - писал 0x10000 -> MATRIX_PRAS3 - не помогло, посмотрел по доке этот регистр и похоже туда надо писать 2 разряда, то есть не 0х10000 а 0х30000 (константа M4PR) - записал. по началу вроде ничего было, overruns-ов не было (на одиночных sip-вызовах), но как только завел sipp - начали копится overruns-ы (это на 100Мбитах), спустился на 10Мбит - стали копиться ошибки frame. блин, наказание какое-то. похоже не удалось "загнать проблемму под ковер" А насчет патча - так ведь он вроде передачи касается (буфер на передачу в SRAM переезжает- или я ошибаюсь ? да и размер SRAM у 9260 и g20 разные вроде), а у меня на интерфейсе по передаче не ошибок, так что и не знаю - пробовать его или нет.... Цитата(Dron_Gus @ Dec 22 2011, 17:56)  Вклинюсь в вашу беседу. Колега некоторое время назад боролся с аналогичной проблемой на 9260. Его решение - это перенос дескрипторов DMA во внутреннюю SRAM, т.к. доступ к ней несколько быстрее. Вот этот патч.Кроме того, на более свежих ядрах это проявляется редко и патч, в принципе, не требуется. а на более свежих это каких ? я уже пробовал даже 3.0.3 - результат тот же (да там и macb старый и похоже не правился со времен царя гороха).
|
|
|
|
|
Dec 23 2011, 11:13
|
Группа: Участник
Сообщений: 13
Регистрация: 1-06-11
Из: Днепропетровск
Пользователь №: 65 405

|
Цитата(Dron_Gus @ Dec 23 2011, 09:50)  Мне кажется, корни у underrun'ов и overrun'ов одни - DMA не успевает. Или память. Можно так же попробовать и с буферами для приема. Сомневаюсь насчет DMA да и памяти тоже (хотя с DMA что-то неладное делается, при попутке перенести буфер на передачу в SRAM ядро пракитчески сразу падает -> "kernel BUG at arch/arm/mm/dma-mapping.c:426!", что-то видимо я не включил через menuconfig для ядра). При работе через конвертор usb-lan все же нормально и с памятью и с dma (хотя может в этом случае dma и вовсе не используется)
|
|
|
|
|
Jul 26 2012, 12:33
|
Группа: Участник
Сообщений: 13
Регистрация: 1-06-11
Из: Днепропетровск
Пользователь №: 65 405

|
Свершилось ! Нашелся человек, который вправил мозги атмеловскому драйверу macb. Теперь у меня lan (на at91sam9g20ek) работает отлично !
|
|
|
|
|
Jul 30 2012, 04:38
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Цитата(salara @ Jul 26 2012, 17:33)  Свершилось ! Нашелся человек, который вправил мозги атмеловскому драйверу macb. Теперь у меня lan (на at91sam9g20ek) работает отлично ! И? Патч не хотите здесь опубликовать?
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
Aug 3 2012, 14:04
|
Группа: Участник
Сообщений: 13
Регистрация: 1-06-11
Из: Днепропетровск
Пользователь №: 65 405

|
Цитата(alx2 @ Jul 30 2012, 07:38)  И? Патч не хотите здесь опубликовать? патча как такового нет, правили по-живому, но кому надо - дам исправленный исходник macb.c (под 2.6.33)
|
|
|
|
|
Aug 9 2012, 08:50
|
Группа: Участник
Сообщений: 13
Регистрация: 1-06-11
Из: Днепропетровск
Пользователь №: 65 405

|
Цитата(alx2 @ Aug 8 2012, 06:42)  Надо!!! ftp://elgato@ltd.com.ua/g20/macb.c_correct.tar.gzpwd=login для ядра 2.6.33
Сообщение отредактировал salara - Aug 9 2012, 09:02
|
|
|
|
|
Aug 10 2012, 04:35
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Спасибо. Не ожидал такого объема изменений... Приемная часть чуть ли не переписана заново...  Можете в нескольких словах описать суть сделанных изменений?
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
Aug 13 2012, 14:00
|
Группа: Участник
Сообщений: 13
Регистрация: 1-06-11
Из: Днепропетровск
Пользователь №: 65 405

|
Цитата(alx2 @ Aug 10 2012, 07:35)  Спасибо. Не ожидал такого объема изменений... Приемная часть чуть ли не переписана заново...  Можете в нескольких словах описать суть сделанных изменений? Не я автор изменений, могу только сказать что основные изменения претерпели функции macb_rx_frame (на ней собственно ядро и падало при приеме фрэйма), macb_rx, macb_poll
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|