Прошивка DSL-2750U через программатор
Содержание
В виду разных обстоятельств, а именно, в большинстве случаев от невнимательности и от неумения читать/дочитывать инструкции от производителей, модем DSL-2750U зачастую выходит полностью из строя при попытке его перепрошивки традиционным методом. Вплоть до того, что модем вообще не подает признаков жизни, даже по интерфейсу UART, а так же не светится ни одним индикатором.
В данной инструкции описана процедура программирования flash памяти этого модема, что называется на «коленке».
Что потребуется:
- Внимательность и аккуратность.
- Владение паяльником, пинцетом (предполагается, что у вас есть опыт работы с микросхемами).
- 4 резистора по 100 Ом.
- LPT Коннектор.
- Преобразователь для UART на MAX232 или подобный и работа с ним.
Принципиальная схема соединения MX25L6445E-M2I-10G с компьютером:

Принципиальная схема соединения с LPT
Обращаем внимание на важные моменты по схеме
1. Очень важно аккуратно отпаять 1, 2, 5 и 6 выводы микросхемы. Например, можно выпаивать и чуть вверх приподнимать по одной ножке с помощью проволочки от 4-ех жильного телефонного провода. Остальные выводы трогать ненужно, чтобы не организовывать отдельное питание для микросхемы 3.3 вольта. Питаться микросхема будет от самого модема. Важно посадить на GND выводы LPT коннектора с 18-го по 25-й, а так же перемкнуть выводы 6 и 10 согласно схеме.

Поддеваем проволочку под ножку, нагреваем ножку паяльником и аккуратно тянем
2. Далее согласно схеме выше (рис 1) припаиваем проводки через резисторы к LPT коннектору. Обратите внимание, проводки не должны превышать длину 10 см. GND можно подключить к выходу GND разъема UART на плате модема (оранжевый провод на фотографии):

Припаеваем провода к LPT коннектору. Провода не более 10 см
После пайки садим компьютер на UPS. Блок питания модема тоже не лишне будет посадить на UPS. Подключаем LPT коннектор к компьютеру. Не подключайте разъем на работающем компьютере! В настройках BIOS’a включаем LPT и выставляем ему режим SPP. Далее загружаем систему. Включаем блок питания модема.
Скопируйте программу SPI Flash Programmer в корень диска где установлена ваша система (обычно это диск «С»). Не используйте каталоги в именах которых есть пробелы.
Запускаем ее. Возможно при первом запуске программа выдаст ошибку. Ничего страшного. В программе в первую очередь выбираем свою микросхему (см. рис. 4 (1)). Далее нажимаем кнопку чтения ID микросхемы (2). Должна отобразиться информация о микросхеме как на рисунке 5. У меня она определилась как MX25L6405. Если на этом этапе что-то не отображено или установлено как «Unknown», значит что-то пошло не так. В этом случае проверьте правильность пайки, отсутствие «соплей» на плате модема, длину проводов, резисторы, работоспособность LPT порта, включен ли блок питания модема в розетку, нажата ли кнопка питания модема. Если все условия выше выполнены, попробуйте поменять режим работы LPT в BIOS’е на EPP или ECP. Там же установите стандартное для LPT порта прерывание (7) и порт 378, убедитесь что ваша система видит LPT порт.

Главное окно программы SPI Flash Programmer
После того как ID флешки определено, необходимо стереть ее. Воспользуйтесь в программе кнопкой стирания (3).
Далее открываем dump прошивки этой микросхемы с помощью первой кнопки на панели инструментов программы (дискетка с зеленой стрелочкой). В моем случае файл называется «DSL_2750_v1.0.11_flash_image_96328AVNG_N31.w» любезно предоставленный службой поддержки D-Link. Содержимое должно отобразиться в главном окне программы в шестнадцатеричном виде.

ID микросхемы. Не обращайте внимания на возможные каракули вместо русских символов
Ну собственно и сама прошивка — нажимаем кнопку (4). Минут 8-10 и, если все нормально, внизу окна программы, в строке состояния, зеленым цветом будет написано, что микросхема запрограммирована. Сделайте проверку кнопкой (5). Если ошибок не будет так же, зеленым цветом в строке состояния будет сообщено об успешной проверке. Если будут ошибки повторите стирание микросхемы и программируйте снова. Настоятельно рекомендую посадить блок питания модема на UPS.
Выключаем компьютер, отсоединяем блок питания модема, отсоединяем LPT коннектор, отпаиваем провода от микросхемы, аккуратно припаиваем ранее отпаянные ножки на место.
Включаем модем. Сразу должен загореться индикатор питания. Если нет — проверяйте пайку и «сопли» на плате.
Модем уже в работоспособном состоянии и доступен через WEB интерфейс. Его прошивка 1.0.11. Не спешите его (модем) закрывать. Можете тут же прошить модем последней прошивкой 1.0.14 прямо из WEB интерфейса.
Замена MAC-адреса модема
В прошивке которую предоставила служба поддержки зашит MAC адрес не нашего модема. Необходимо этот адрес поменять на свой. Он указан на наклейке на дне модема. Этого можно, конечно, не делать, но существует высокая вероятность того, что ваше устройство работать с провайдером не будет. Представьте если с десяток людей таким образом прошьют 10 модемов и у всех них будет одинаковый MAC адрес. Для смены MAC адреса потребуется подключение к компьютеру по интерфейсу UART. Сделать это можно через преобразователь на основе микросхемы MAX232. Я не буду расписывать схему и подключение, т. к. предполагается что уж эту операцию вы знаете, раз решились взяться за программирование FLASH памяти.
Распиновка UART на плате модема DSL-2750U

Распиновка интерфейса UART на DSL-2750U
Уже в терминале прерываем загрузку модема с помощью любой клавиши при появлении строки:
*** Press any key to stop auto run (1 seconds) ***: CFE version 1.0.37-106.24 for BCM96328 (32bit,SP,BE) Build Date: Срд Мар 21 08:38:40 UTC 2012 (legath@desk) Copyright (C) 2000-2009 Broadcom Corporation. HS Serial flash device: name MX25L64, id 0xc217 size 8192KB Total Flash size: 8192K with 2048 sectors Chip ID: BCM6328B0, MIPS: 320MHz, DDR: 320MHz, Bus: 160MHz Main Thread: TP0 Memory Test Passed Total Memory: 33554432 bytes (32MB) Boot Address: 0xb8000000 Board IP address : 192.168.1.1:ffffff00 Host IP address : 192.168.1.100 Gateway IP address : Run from flash/host (f/h) : f Default host run file name : vmlinux Default host flash file name : bcm963xx_fs_kernel Boot delay (0-9 seconds) : 1 Board Id (0-6) : 96328AVNG_N31 Number of MAC Addresses (1-32) : 11 Base MAC Address : 02:10:18:01:00:01 PSI Size (1-64) KBytes : 24 Enable Backup PSI [0|1] : 1 System Log Size (0-256) KBytes : 0 Main Thread Number [0|1] : 0 Voice Board Configuration (0-11) : *** Press any key to stop auto run (1 seconds) *** Auto run second count down: 1
С помощью команды «p» просматриваем что у нас имеется. Обратите внимание на строку «Base MAC Address» — это текущий адрес модема (тот который в восстановительном дампе). Его то и надо заменить на свой.
CFE> p Board IP address : 192.168.1.1:ffffff00 Host IP address : 192.168.1.100 Gateway IP address : Run from flash/host (f/h) : f Default host run file name : vmlinux Default host flash file name : bcm963xx_fs_kernel Boot delay (0-9 seconds) : 1 Board Id (0-6) : 96328AVNG_N31 Number of MAC Addresses (1-32) : 11 Base MAC Address : 02:10:18:01:00:01 PSI Size (1-64) KBytes : 24 Enable Backup PSI [0|1] : 1 System Log Size (0-256) KBytes : 0 Main Thread Number [0|1] : 0 Voice Board Configuration (0-11) : *** command status = 0
Меняем адрес при помощи команды «b». Указано также какие кнопки можно жать. Жмем «Enter» (оставить текущее значение) до тех пор пока не покажется строка «Base MAC Address».
CFE> b Press: <enter> to use current value ‘-‘ to go previous parameter ‘.’ to clear the current value ‘x’ to exit this command 96328avng ——- 0 96328avngrP1 ——- 1 96328avngr ——- 2 96328AVNG_N31 ——- 3 963281TAN ——- 4 963281TAVNG ——- 5 DSL_2600NRU ——- 6 Board Id (0-6) : 3 — 96328avng ——- 0 96328avngrP1 ——- 1 96328avngr ——- 2 96328AVNG_N31 ——- 3 963281TAN ——- 4 963281TAVNG ——- 5 DSL_2600NRU ——- 6 Board Id (0-6) : 3 Number of MAC Addresses (1-32) : 11
Когда строка показалась, аккуратно вписываем свой MAC адрес с наклейки на дне модема (здесь мак указан крестиками). Жмем «Enter». И далее еще 4 раза «Enter»:
Base MAC Address : 02:10:18:01:00:01 XX:XX:XX:XX:XX:XX PSI Size (1-64) KBytes : 24 Enable Backup PSI [0|1] : 1 System Log Size (0-256) KBytes : 0 Main Thread Number [0|1] : 0
После появление следующего раздела выключаем модем:
Press: <enter> to use current value ‘-‘ to go previous parameter ‘.’ to clear the current value ‘x’ to exit this command LE88276 — 0 SI3226 — 1 VE890 — 2 SI3217X — 3 LE88506 — 4 AVNG_SI32267 — 5 LE88276-NTR — 6 AVNG_VE890HVP — 7 AVNG_VE890HV — 8 AVNGR_SI32176 — 9 AVNGR_LE89116 — 10 AVNGR_SI3217X — 11 Voice Board Configuration (0-11) :
Включаем его снова и смотрим с каким MAC адресом загружается система:
CFE version 1.0.37-106.24 for BCM96328 (32bit,SP,BE) Build Date: РЎСЂРґ Мар 21 08:38:40 UTC 2012 (legath@desk) Copyright (C) 2000-2009 Broadcom Corporation. HS Serial flash device: name MX25L64, id 0xc217 size 8192KB Total Flash size: 8192K with 2048 sectors Chip ID: BCM6328B0, MIPS: 320MHz, DDR: 320MHz, Bus: 160MHz Main Thread: TP0 Memory Test Passed Total Memory: 33554432 bytes (32MB) Boot Address: 0xb8000000 Board IP address : 192.168.1.1:ffffff00 Host IP address : 192.168.1.100 Gateway IP address : Run from flash/host (f/h) : f Default host run file name : vmlinux Default host flash file name : bcm963xx_fs_kernel Boot delay (0-9 seconds) : 1 Board Id (0-6) : 96328AVNG_N31 Number of MAC Addresses (1-32) : 11 Base MAC Address : XX:XX:XX:XX:XX:XX PSI Size (1-64) KBytes : 24 Enable Backup PSI [0|1] : 1 System Log Size (0-256) KBytes : 0 Main Thread Number [0|1] : 0 Voice Board Configuration (0-11) : LE88276 *** Press any key to stop auto run (1 seconds) *** Auto run second count down: 1#1#0 Booting from only image (0xb8010000) … Code Address: 0x80010000, Entry Address: 0x80014230
Вот теперь все. Модем готов к работе. Отпаиваем от UART’а преобразователь и можно закрывать крышку модема. Девайс готов к работе снова.