четверг, 11 апреля 2013 г.

Реанимация роутера D-Link DIR-320 A1




    Достался мне, по случаю, беспроводной 3G /Wi-Fi маршрутизатор МТС DIR-320  в нерабочем состоянии.
Симптоматика как здесь: "Работал до тех пор, пока однажды не засветились сразу 6 светодиодов: power, internet и все 4 LAN".

    Первичные предпринятые меры:

– припаять разъем JTAG
DIR-320 JTAG Pinout
– спаять кабель JTAG Buffered Cable, Wiggler
(перед экспериментами, сохранить оригинальный загрузчик CFE)
– используя программу BrJTAG стереть NVRAM, Kernel, записать CFE.
Эти действия ни к чему не привели — гирлянда как горела так и горит. Однако флеш прошивается и читается — значит процессор и флеш исправны, проблема в чем то другом.
    Дальнейшее изучение вопроса показало, что такие же симптомы были в случаях, когда при замене чипа RAM был непропай. Вероятно, в моем случае битая память не дает роутеру загрузиться.
    Меняем установленную в роутере память на новую: Увеличение оперативной памяти до 64MB на D-Link DIR-320 (cписок совместимых модулей и чипов).
Я использовал чип с такого модуля памяти:
VDATA MDYVD6F4G2880B1E0H DDR400(3) 256MX4
    Роутер загрузился и стал доступен по адресу 192.168.1.1 через веб-интерфейс, но в связи с большим числом предыдущих экспериментов по заливке во флеш чего попало, на нем была установлена чужая прошивка с неизвестными мне логином и паролем.
    Зальем прошивку заново. Попытки перевести роутер в Crash mode (режим для восстановления ПО в случае возникновения проблем при обновлении) при помощи кнопки Reset потерпели неудачу. Пришлось поступить так:
через JTAG стираю NVRAM, Kernel, записываю загрузчик CFE:

C:\DIR-320\win32>brjtag -erase:nvram /wiggler /wx8 /dma /fc:033

===============================================
Broadcom EJTAG Debrick Utility v1.9o-hugebird
===============================================


Probing bus ... Done

Detected IR Length is 8

CPU assumed running under LITTLE endian

CPU Chip ID: 00110101001101010100000101111111 (3535417F)
*** Found a Broadcom manufactured BCM5354 REV 03 CPU ***

- EJTAG IMPCODE ....... : 00000000100000010000100100000100 (00810904)
- EJTAG Version ....... : 1 or 2.0
- EJTAG DMA Support ... : Yes
- EJTAG Implementation flags: R4k MIPS16 MIPS32
*** DMA Mode Forced On ***

Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... Done
Halting Processor ... <Processor Entered Debug Mode!> ... Done
Clearing Watchdog ... Done
Loading CPU Configuration Code ... Skipped
*** Manually Selected a MX29LV320AT/BT 2Mx16 TopB (4MB) from Macronix

- Flash Chip Window Start .... : 1FC00000
- Flash Chip Window Length ... : 00400000
- Selected Area Start ........ : 1FFF0000
- Selected Area Length ....... : 00010000

*** You Selected to Erase the NVRAM.BIN ***

=========================
Erasing Routine Started
=========================
Total Blocks to Erase: 8

Erasing block: 64 (addr = 1FFF0000)...Done
Erasing block: 65 (addr = 1FFF2000)...Done
Erasing block: 66 (addr = 1FFF4000)...Done
Erasing block: 67 (addr = 1FFF6000)...Done
Erasing block: 68 (addr = 1FFF8000)...Done
Erasing block: 69 (addr = 1FFFA000)...Done
Erasing block: 70 (addr = 1FFFC000)...Done
Erasing block: 71 (addr = 1FFFE000)...Done
=========================
Erasing Routine Complete
=========================
elapsed time: 3 seconds


*** REQUESTED OPERATION IS COMPLETE ***


C:\DIR-320\win32>brjtag -erase:kernel /wiggler /wx8 /dma /fc:033

===============================================
Broadcom EJTAG Debrick Utility v1.9o-hugebird
===============================================


Probing bus ... Done

Detected IR Length is 8

CPU assumed running under LITTLE endian

CPU Chip ID: 00110101001101010100000101111111 (3535417F)
*** Found a Broadcom manufactured BCM5354 REV 03 CPU ***

- EJTAG IMPCODE ....... : 00000000100000010000100100000100 (00810904)
- EJTAG Version ....... : 1 or 2.0
- EJTAG DMA Support ... : Yes
- EJTAG Implementation flags: R4k MIPS16 MIPS32
*** DMA Mode Forced On ***

Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... Done
Halting Processor ... <Processor Entered Debug Mode!> ... Done
Clearing Watchdog ... Done
Loading CPU Configuration Code ... Skipped
*** Manually Selected a MX29LV320AT/BT 2Mx16 TopB (4MB) from Macronix

- Flash Chip Window Start .... : 1FC00000
- Flash Chip Window Length ... : 00400000
- Selected Area Start ........ : 1FC40000
- Selected Area Length ....... : 003B0000

*** You Selected to Erase the KERNEL.BIN ***

=========================
Erasing Routine Started
=========================
Total Blocks to Erase: 59

Erasing block: 5 (addr = 1FC40000)...Done
Erasing block: 6 (addr = 1FC50000)...Done
Erasing block: 7 (addr = 1FC60000)...Done
Erasing block: 8 (addr = 1FC70000)...Done
Erasing block: 9 (addr = 1FC80000)...Done
Erasing block: 10 (addr = 1FC90000)...Done
Erasing block: 11 (addr = 1FCA0000)...Done
Erasing block: 12 (addr = 1FCB0000)...Done
Erasing block: 13 (addr = 1FCC0000)...Done
Erasing block: 14 (addr = 1FCD0000)...Done
Erasing block: 15 (addr = 1FCE0000)...Done
Erasing block: 16 (addr = 1FCF0000)...Done
Erasing block: 17 (addr = 1FD00000)...Done
Erasing block: 18 (addr = 1FD10000)...Done
Erasing block: 19 (addr = 1FD20000)...Done
Erasing block: 20 (addr = 1FD30000)...Done
Erasing block: 21 (addr = 1FD40000)...Done
Erasing block: 22 (addr = 1FD50000)...Done
Erasing block: 23 (addr = 1FD60000)...Done
Erasing block: 24 (addr = 1FD70000)...Done
Erasing block: 25 (addr = 1FD80000)...Done
Erasing block: 26 (addr = 1FD90000)...Done
Erasing block: 27 (addr = 1FDA0000)...Done
Erasing block: 28 (addr = 1FDB0000)...Done
Erasing block: 29 (addr = 1FDC0000)...Done
Erasing block: 30 (addr = 1FDD0000)...Done
Erasing block: 31 (addr = 1FDE0000)...Done
Erasing block: 32 (addr = 1FDF0000)...Done
Erasing block: 33 (addr = 1FE00000)...Done
Erasing block: 34 (addr = 1FE10000)...Done
Erasing block: 35 (addr = 1FE20000)...Done
Erasing block: 36 (addr = 1FE30000)...Done
Erasing block: 37 (addr = 1FE40000)...Done
Erasing block: 38 (addr = 1FE50000)...Done
Erasing block: 39 (addr = 1FE60000)...Done
Erasing block: 40 (addr = 1FE70000)...Done
Erasing block: 41 (addr = 1FE80000)...Done
Erasing block: 42 (addr = 1FE90000)...Done
Erasing block: 43 (addr = 1FEA0000)...Done
Erasing block: 44 (addr = 1FEB0000)...Done
Erasing block: 45 (addr = 1FEC0000)...Done
Erasing block: 46 (addr = 1FED0000)...Done
Erasing block: 47 (addr = 1FEE0000)...Done
Erasing block: 48 (addr = 1FEF0000)...Done
Erasing block: 49 (addr = 1FF00000)...Done
Erasing block: 50 (addr = 1FF10000)...Done
Erasing block: 51 (addr = 1FF20000)...Done
Erasing block: 52 (addr = 1FF30000)...Done
Erasing block: 53 (addr = 1FF40000)...Done
Erasing block: 54 (addr = 1FF50000)...Done
Erasing block: 55 (addr = 1FF60000)...Done
Erasing block: 56 (addr = 1FF70000)...Done
Erasing block: 57 (addr = 1FF80000)...Done
Erasing block: 58 (addr = 1FF90000)...Done
Erasing block: 59 (addr = 1FFA0000)...Done
Erasing block: 60 (addr = 1FFB0000)...Done
Erasing block: 61 (addr = 1FFC0000)...Done
Erasing block: 62 (addr = 1FFD0000)...Done
Erasing block: 63 (addr = 1FFE0000)...Done
=========================
Erasing Routine Complete
=========================
elapsed time: 42 seconds


*** REQUESTED OPERATION IS COMPLETE ***


C:\DIR-320\win32>brjtag -flash:cfe /wiggler /wx8 /dma /fc:033

===============================================
Broadcom EJTAG Debrick Utility v1.9o-hugebird
===============================================


Probing bus ... Done

Detected IR Length is 8

CPU assumed running under LITTLE endian

CPU Chip ID: 00110101001101010100000101111111 (3535417F)
*** Found a Broadcom manufactured BCM5354 REV 03 CPU ***

- EJTAG IMPCODE ....... : 00000000100000010000100100000100 (00810904)
- EJTAG Version ....... : 1 or 2.0
- EJTAG DMA Support ... : Yes
- EJTAG Implementation flags: R4k MIPS16 MIPS32
*** DMA Mode Forced On ***

Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... Done
Halting Processor ... <Processor Entered Debug Mode!> ... Done
Clearing Watchdog ... Done
Loading CPU Configuration Code ... Skipped
*** Manually Selected a MX29LV320AT/BT 2Mx16 TopB (4MB) from Macronix

- Flash Chip Window Start .... : 1FC00000
- Flash Chip Window Length ... : 00400000
- Selected Area Start ........ : 1FC00000
- Selected Area Length ....... : 00040000

*** You Selected to Flash the CFE.BIN ***

=========================
Flashing Routine Started
=========================
Total Blocks to Erase: 4

Erasing block: 1 (addr = 1FC00000)...Done
Erasing block: 2 (addr = 1FC10000)...Done
Erasing block: 3 (addr = 1FC20000)...Done
Erasing block: 4 (addr = 1FC30000)...Done

Loading CFE.BIN to Flash Memory...
Done (CFE.BIN loaded into Flash Memory OK)

=========================
Flashing Routine Complete
=========================
elapsed time: 925 seconds


*** REQUESTED OPERATION IS COMPLETE ***


   После перезагрузки роутера появилась возможность зайти в Сrash mode по адресу 192.168.0.1
DIR-320 Loader
   Шью официальную прошивку D-Link dir320_v1.22_babh.bin .
   Получаю рабочий роутер DIR-320 с восстановленной заводской прошивкой.
DIR-320 Login
   По этому методу, используя промежуточную прошивку DIR320-wimax-1.2.6 (admin/admin),
прошиваю OpenWRT.
   Осталось  задействовать весь объем ОЗУ и  отрихтовать MAC-адреса.






11 комментариев:

  1. Скажите, как припаять такой разъем к JTAG?

    ОтветитьУдалить
    Ответы
    1. Как паять?
      Вопрос в чем?

      Удалить
    2. Каким способом вы припаяли разъем к месту, где должен стоять JTAG?

      Удалить
    3. Отверстия под пайку залиты тугоплавким припоем. Очистил отверстия, (здесь есть технология http://ydoma.info/kak-payat-payalnikom.html), вставил колодку (типа такой http://goo.gl/1EMk3r) и припаял паяльником, используя припой и флюс.

      Удалить
    4. Отчищали отсосом?

      Удалить
    5. Увидел. Спасибо, посмотрю.

      Удалить
  2. в общем собрал виглер. проц определяеться флешка пишется и стирается. но гирлянда горит как и горела, дважды менял оперативку не помогло. не подскажете куда копать, и где взять гарантировано рабочий CFE. как я понимаю для загрузки crash mode нужен только CFE больше заливать не чего не надо?

    ОтветитьУдалить
    Ответы
    1. https://drive.google.com/file/d/0B1W1Gn-qVH-AbXpBbHVtUzFyUnM/edit?usp=sharing
      Здесь CFE и программа для записи флеши, которыми я пользовался. Если флеш записывается и читается (записанный и считанный файлы на идентичность я проверял НЕХ-редактором http://mh-nexus.de/en/hxd/), и ОЗУ нормальное, то я не знаю что еще посоветовать.

      Удалить
    2. спасибо за помощь, но роутер так и не удалось поднять. CFE заливалась без ошибок. но проблема видимо не в этом. да и проц как то подозрительно греется. за 5-10 минут работы начинают лезть ошибки и приходиться прибегнуть к активному охлаждению. видимо в нем и проблема

      Удалить
  3. Без пайки реально такое провернуть? Просто у меня та же проблема!

    ОтветитьУдалить
  4. А почему пи работе с brjtag вы указываете /fc:033 это для MX29LV320AT/BT, а на dir-320 A1, насколько я знаю S29AL032D90TFI03
    ???

    ОтветитьУдалить