Page 10 of 11 FirstFirst ... 891011 LastLast
Results 136 to 150 of 157

Thread: Установка Debian на роутер Asus WL-500gP/RT-N10U/N16 (MIPS)

  1. #136
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by linvinus View Post
    И всё же непонятно.
    На старых картах wl500g действительно usb был на шине pci.
    А начиная с версии wl500g v2 вроде как SSB ( Sonics Backplane) (по информации отсюда https://dev.openwrt.org/ticket/6425)
    Я не готов спорить с гуру из OpenWRT, тем более при отсутствии документации на чип. Но и в wl500gP v2, и RT-N16, на PCI шине видны контроллеры USB 1.1/2.0. Безусловно, внутреннее управление и первоначальная инициализация идёт через SSB в hndmips.c. А в OpenWRT не используется Broadcom SDK.

    Может, если потратить кучу времени, и можно найти лучшие настройки для контроллера USB в N16. Но без документации это подвиг, и я пока на него не готов.

  2. #137
    Quote Originally Posted by lly View Post
    Я не готов спорить с гуру из OpenWRT, тем более при отсутствии документации на чип. Но и в wl500gP v2, и RT-N16, на PCI шине видны контроллеры USB 1.1/2.0. Безусловно, внутреннее управление и первоначальная инициализация идёт через SSB в hndmips.c. А в OpenWRT не используется Broadcom SDK.

    Может, если потратить кучу времени, и можно найти лучшие настройки для контроллера USB в N16. Но без документации это подвиг, и я пока на него не готов.
    Вот мысли Георгия по этому вопросу, вдруг кому то ещё интересно.

    usb в gpl-прошивке работает потому что броадком свою шину в своем же коде заворачивает в обертки для эмуляции pci после чего регистрирует в системе эту эмулируемую шину pci. Регистры устройства usb совместимы с hcd-usb поэтому когда в системе появляется эмуль ssb/axi в виде pci штатный драйвер usb/pci подхватывает этот контроллер usb.

    Именно изза эмуляции pci в штатной прошивке ты увидишь 2 шины если сделаешь lspci. И изза этого же в драйверах броадкома все probe для шины pci, кроме разумеется тех, что добавлены в последствии для поддержки с использованием кода linux/ssb. Все это завернуто таким нетривиальным способом для возможности использовать большую часть кода монолитного драйвера под другие ОС - виндовс/мак и не писать драйвер usb.

    Вся инициализация шины - это сканирование (поиск доступных устройств на шине - siutils.с, si_doattach), инициализация buscore (mips для внедряемых систем либо pcmcia/pci/sdio/etc. хоста - файлы hndmips.c/hndpci.c/etc.), инициализация buscommon (chipcommon либо extif - hndpmu.c)
    На самом деле все довольно таки просто (особенно для внедряемых систем - для них даже инициализация не обязательна так как при включении устройства его инициализирует код cfe и остается лишь определить текущую конфигурацию). Вот только нагромождение кода выглядит пугающе поскольку у броадкома все свалено в кучу ради монолитного драйвера

    Судя по тем крохам информации что мне удалось нарыть, контроллер USB Broadcom
    имеет 5 каналов dma, но linux ими пользоваться не умеет, а драйвер написать
    в виду отсутствия какой либо документации не представляется возможным. Драйвера
    ohci-ssb/ehci-ssb предоставляют лишь pio доступ к USB.

    Чтобы завести USB не в PIO режиме нужна
    информация по регистрам host-контроллера либо пример в виде драйвера под
    Броадкомовские библиотеки как это было для bgmac.

    Источники информации - старые коды Broadcom (svn dd-wrt лучший источник этого хлама), более
    новые коды броадком (почти все кроме mips есть в linux/staging/brcm80211/{util,include},
    GPL-пакет ASUS (ftp://ftp.asus.com). В старых исходниках из dd-wrt есть .h файл с описанием
    регистров usb, однако к сожалению без описания зачем они нужны - "голые" названия и карта
    их размещения


    В ядре есть поддержка шины SSB. Я добавил код поддержки шины AXI с использованием базы кода
    SSB. В моих патчах есть ssb_dma.c - это порт hnddma.с для linux/ssb.

    Тут не путай код SSB (код поддержки шины SB включенный в mainline linux) с шиной.
    Broadcom для дров своих устройств использует библиотеки, полностью скрывающие архитектуру от
    ядра. Вместо реализации кода шины отделно, кода драйверов отдельно, Broadcom все свалили в
    одну кучу и, например, тот же драйвер brcm80211 при запуске поднимает/настраивает шину, но
    системе показывает лишь наличие одного устройства - карточки wifi. Код ssb работает по другому,
    реализация управления шиной отдельно, драйвера отдельно.
    С выходом шины AXI все стало совсем печально, поддержки её в linux нет и не скоро будет, а
    драйвера от броадком в mainline попадут очень не скоро если вообще попадут. Поэтому написал
    поддержку AXI с использованием SSB надеясь что это может быть включено в mainline но похоже
    не судьба.

    Что такое SB - это весьма длинная история. Если в кратце, то это набор устройств, где одно из
    них (опциональное) выполняет роль как бы арбитра шины, и ещё одно (обязательное) выполняет роль
    "ведущего". Устройства доступны в физическом адресном пространстве, регистры устройств располагаются
    в этом физ. адресном пространстве друг за другом по 0x1000 байт на устройство. Все программирование
    шины сводится к первичной настройке двух спец. устройств упомянутых выше. После их настройки остальные
    устройства могут управляться собственными драйверами независимо друг от друга и от самой шины.
    Шина AXI - та же шина SB, с небольшими изменениями. В SB спец. регистры шины были в адресном
    пространстве устройств по смещению 0x800 от начала регистров каждого устройства. В AXI аналогичные
    регистры шины расположены отдельно от блока регистров устройств и обрабатываются несколько по другому.
    При этом и в SB и в AXI сами устройства (USB/Wifi/etc.) имеют те же самые регистры и могут управляться
    теми же самыми дровами. Тоесть вся разница что при обращении к регистрам собственно SB либо AXI их нужно
    "искать" в разных местах и использовать по разному. А в остальном с точки зрения программирования
    это "те же яйца только в профиль".
    Last edited by linvinus; 16-03-2011 at 08:53.
    wl500w 300MHz/128Mb спасибо Олегу за инструкцию и Danya0w за перепайку.
    RT-N16 - debian Squeeze/2.6.37->wheezy/3.8.13 (теперь bgmac работает стабильно)

  3. #138
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by linvinus View Post
    Вот мысли Георгия по этому вопросу, вдруг кому то ещё интересно.
    usb в gpl-прошивке работает потому что броадком свою шину в своем же коде заворачивает в обертки для эмуляции pci после чего регистрирует в системе эту эмулируемую шину pci. Регистры устройства usb совместимы с hcd-usb поэтому когда в системе появляется эмуль ssb/axi в виде pci штатный драйвер usb/pci подхватывает этот контроллер usb.
    С такой постановкой вопроса почти полностью согласен, за исключением формулировки "эмуляции" - большая её часть выполнена на аппаратном уровне, а именно совместимость memory-mapped регистров с hcd-usb.

    P.S. Если Георгий может поделиться еще какими подробностями - мы завсегда за

  4. #139
    Quote Originally Posted by lly View Post
    С такой постановкой вопроса почти полностью согласен, за исключением формулировки "эмуляции" - большая её часть выполнена на аппаратном уровне, а именно совместимость memory-mapped регистров с hcd-usb.

    P.S. Если Георгий может поделиться еще какими подробностями - мы завсегда за
    Вроде ничего секретного в сказанном нет, приведу всю информацию что я получил от него из переписки.
    Циатата увеличена.
    Last edited by linvinus; 16-03-2011 at 08:43.
    wl500w 300MHz/128Mb спасибо Олегу за инструкцию и Danya0w за перепайку.
    RT-N16 - debian Squeeze/2.6.37->wheezy/3.8.13 (теперь bgmac работает стабильно)

  5. #140
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by linvinus View Post
    Вроде ничего секретного в сказанном нет, приведу всю информацию что я получил от него из переписки.
    Я к тому, что он может знать гораздо больше

  6. #141
    Quote Originally Posted by lly View Post
    Но и в wl500gP v2, и RT-N16, на PCI шине видны контроллеры USB 1.1/2.0. Безусловно, внутреннее управление и первоначальная инициализация идёт через SSB в hndmips.c.
    И в wl500gP v1/v2 и в RT-N16 шина pci 00 - программная эмуляция шины SB (wl500gP)/AXI(N16). В wl500gPv1 и RT-N16 также есть pci 01 - хост-контроллер pci на sb0 - мост к внешней шине sb/axi. В отличие от них у wl500gPv2 какого либо аппаратного pci нет вообще.

    Что же касается usb, то хост контроллер wl500gPv2/N16 - составное устройство шины sb/axi (ohci+ehci контроллер в одном флаконе). У wl500gPv1 ohci прибит к системной шине sb, ehci же, судя по логам, гдето за мостом pci на внешней шине.

    В реализации Broadcom SDK, хост контроллер usb сопоставляется с драйвером как устройство pci, после чего драйвер usb определяет пространство регистров контроллера через его bar0. В случае linux/ssb привязка к регистрам hcd происходит в probe драйвера ohci/ehci-ssb с передачей в драйвер абсолютно того же пространства регистров. После завершения pci/ssb probe драйвер usb работает с хост контроллером абсолютно одинаково. Другими словами, способ управления контроллерами ohci/ehci не меняется вне зависимости от используемой программной абстракции.

  7. #142
    Quote Originally Posted by GKashperko View Post
    И в wl500gP v1/v2 и в RT-N16 шина pci 00 - программная эмуляция шины SB (wl500gP)/AXI(N16). В wl500gPv1 и RT-N16 также есть pci 01 - хост-контроллер pci на sb0 - мост к внешней шине sb/axi. В отличие от них у wl500gPv2 какого либо аппаратного pci нет вообще.

    Что же касается usb, то хост контроллер wl500gPv2/N16 - составное устройство шины sb/axi (ohci+ehci контроллер в одном флаконе). У wl500gPv1 ohci прибит к системной шине sb, ehci же, судя по логам, гдето за мостом pci на внешней шине.

    В реализации Broadcom SDK, хост контроллер usb сопоставляется с драйвером как устройство pci, после чего драйвер usb определяет пространство регистров контроллера через его bar0. В случае linux/ssb привязка к регистрам hcd происходит в probe драйвера ohci/ehci-ssb с передачей в драйвер абсолютно того же пространства регистров. После завершения pci/ssb probe драйвер usb работает с хост контроллером абсолютно одинаково. Другими словами, способ управления контроллерами ohci/ehci не меняется вне зависимости от используемой программной абстракции.
    И в заключении, я провел тесты производительности на новом ядре 2.6.37 , она такая же как и производительность на ядре 2.6.22.19, которые я проводил ранее (http://wl500g.info/showpost.php?p=218296&postcount=23)
    Другими словами ничего не мешает взять ядро 2.6.37 в качестве основы в прошивке от энтузиастов.
    wl500w 300MHz/128Mb спасибо Олегу за инструкцию и Danya0w за перепайку.
    RT-N16 - debian Squeeze/2.6.37->wheezy/3.8.13 (теперь bgmac работает стабильно)

  8. #143
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by linvinus View Post
    И в заключении, я провел тесты производительности на новом ядре 2.6.37 , она такая же как и производительность на ядре 2.6.22.19, которые я проводил ранее (http://wl500g.info/showpost.php?p=218296&postcount=23)
    Спасибо за информацию. Если вдруг найдешь время сравнить еще и скорость потока WAN -> LAN, было бы замечательно!

  9. #144
    Quote Originally Posted by lly View Post
    Спасибо за информацию. Если вдруг найдешь время сравнить еще и скорость потока WAN -> LAN, было бы замечательно!
    Я раньше не проводил такие тесты,
    Судя по speedtest.net с интернета по wifi 19мбит

    по данным iptraf с локальной машины на wifi скорость
    [ 4] local 192.168.1.xx1 port 5001 connected with 192.168.1.xx2 port 55635
    [ 4] 0.0-10.4 sec 22.6 MBytes 18.3 Mbits/sec
    Правда у меня адаптер только g поддерживает
    wl500w 300MHz/128Mb спасибо Олегу за инструкцию и Danya0w за перепайку.
    RT-N16 - debian Squeeze/2.6.37->wheezy/3.8.13 (теперь bgmac работает стабильно)

  10. #145
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by linvinus View Post
    Я раньше не проводил такие тесты,
    Судя по speedtest.net с интернета по wifi 19мбит
    Неинструментальные измерения с WiFi бессмысленны, слишком много факторов. Я имел в виду скорость маршрутизации исключительно по проводу.
    speedtest.net к сожалению - погода на луне, iptraf и т.п гораздо лучше.

  11. #146
    Quote Originally Posted by lly View Post
    Неинструментальные измерения с WiFi бессмысленны, слишком много факторов. Я имел в виду скорость маршрутизации исключительно по проводу.
    speedtest.net к сожалению - погода на луне, iptraf и т.п гораздо лучше.
    У меня pppoe , максимум с инета http://www.speedtest.net/result/1209782569.png

    Воткнул в wan порт ноут с ip:192.168.5.6 , в локалке подключился клиентом iptraf
    На роутере работал маскарадинг

    Вот что получилось
    > iperf -c 192.168.5.6
    ------------------------------------------------------------
    Client connecting to 192.168.5.6, TCP port 5001
    TCP window size: 16.0 KByte (default)
    ------------------------------------------------------------
    [ 3] local 192.168.1.xxx port 59389 connected with 192.168.5.6 port 5001
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0-10.0 sec 94.4 MBytes 78.8 Mbits/sec
    wl500w 300MHz/128Mb спасибо Олегу за инструкцию и Danya0w за перепайку.
    RT-N16 - debian Squeeze/2.6.37->wheezy/3.8.13 (теперь bgmac работает стабильно)

  12. #147
    Может скомпилируете вашу работу в виде инструкции? Тоже хотелось бы на дебиан пересесть

  13. #148
    Quote Originally Posted by Krey View Post
    Может скомпилируете вашу работу в виде инструкции? Тоже хотелось бы на дебиан пересесть
    Вот уже готовые образы, и инструкция.
    http://dev.debwrt.net/wiki/AsusRT-N16
    wl500w 300MHz/128Mb спасибо Олегу за инструкцию и Danya0w за перепайку.
    RT-N16 - debian Squeeze/2.6.37->wheezy/3.8.13 (теперь bgmac работает стабильно)

  14. #149
    Quote Originally Posted by linvinus View Post
    Вот уже готовые образы, и инструкция.
    http://dev.debwrt.net/wiki/AsusRT-N16
    Никто не в курсе, что произошло с данным проектом? Хост не отвечает..
    Last edited by Omega; 11-05-2012 at 23:23. Reason: сейчас всё работает :)

  15. #150
    Георгий Кашперко всё ещё продолжает свою работу по портированию Broadcom'овской проприетарщины на свежие ядра:
    Changelog:
    * 2012-03-09
    moved on to 3.2.9 kernel;
    Но правильно ли я понимаю, что...

    1. этот путь слишком далёк от Broadcom'овского SDK и поэтому не может быть использован в нашей прошивке?
    2. нет большого смысла гнаться за свежими ядрами, так как в текущем отсутствуют какие-либо фатальные болячки?


    Quote Originally Posted by GKashperko View Post
    И в wl500gP v1/v2 и в RT-N16 шина pci 00 - программная эмуляция шины SB (wl500gP)/AXI(N16). В wl500gPv1 и RT-N16 также есть pci 01 - хост-контроллер pci на sb0 - мост к внешней шине sb/axi. В отличие от них у wl500gPv2 какого либо аппаратного pci нет вообще.

    Что же касается usb, то хост контроллер wl500gPv2/N16 - составное устройство шины sb/axi (ohci+ehci контроллер в одном флаконе). У wl500gPv1 ohci прибит к системной шине sb, ehci же, судя по логам, гдето за мостом pci на внешней шине.

    В реализации Broadcom SDK, хост контроллер usb сопоставляется с драйвером как устройство pci, после чего драйвер usb определяет пространство регистров контроллера через его bar0. В случае linux/ssb привязка к регистрам hcd происходит в probe драйвера ohci/ehci-ssb с передачей в драйвер абсолютно того же пространства регистров. После завершения pci/ssb probe драйвер usb работает с хост контроллером абсолютно одинаково. Другими словами, способ управления контроллерами ohci/ehci не меняется вне зависимости от используемой программной абстракции.

Page 10 of 11 FirstFirst ... 891011 LastLast

Similar Threads

  1. Установка Tor и I2P на роутер Asus
    By MIB in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 55
    Last Post: 10-02-2015, 08:25
  2. Установка Debian на Asus RT-N66U/AC66U (MIPS) и RT-N18U/AC56U/AC68U/AC87U (ARM)
    By ryzhov_al in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 36
    Last Post: 30-09-2014, 11:03
  3. Проблема на роутере WL-500gP/W (MIPS R1) с прошивкой -rtn (2.6)
    By staticroute in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 138
    Last Post: 29-10-2013, 19:09
  4. Установка VLC на роутер ?
    By jek8 in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 88
    Last Post: 23-05-2013, 09:18
  5. ICQ и роутер Asus WL-500gP
    By ZeusEX in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 111
    Last Post: 14-07-2012, 22:49

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •