Еще об одном кардинальном способе восстановления кирпичей на процессорах mstar
Фирма MStar Semiconductor [1] выпускает большое количество специализированных чипов (System-On-Chip) для обработки видеосигналов. Назначение и внутренний состав этих чипов может быть очень разным, но есть общие черты, позволяющие унифицировать подход при ремонте (имеется в виду загрузка работоспособного программного обеспечения в память Flash). В нижеследующем материале все эти сложные чипы для простоты будем именовать процессор».
Рис. 1. Внешний вид платы монитора (процессор TSUM то же, что и MStar)
Несмотря на хранение кода во внешней памяти процессоры MStar имеют внутреннюю постоянную память (ROM), содержащую отладочные процедуры. В этом смысле чипы MStar чем-то похожи на чипы фирмы MediaTek (MStar на данный момент поглощена фирмой MediaTek). Однако между отладочными режимами процессоров
MediaTek и MStar есть разница. Чипы собственной разработки MediaTek имеют доступ в отладочный режим через интерфейс UART (стандартный низковольтный последовательный порт), а чипы MStar, изначально имевшие более простую архитектуру, используют UART как расширение более раннего отладочного режима, основанного на протоколе I2C. Фактически, включение отладочного режима процессоров MStar происходит всегда по протоколу I2C, а при необходимости в дальнейшем используется UART, причем для него используются те же выводы микросхемы (разработчикам почему-то показалось это удобным), поэтому контакты отладочного разъема, если он есть в наличии, могут быть маркированы Rx-Tx», хотя они же имеют функции шин SCL-SDA инерфейса I2C.
Рис. 2. Разъем VGA на плате телевизора (процессор MStar под радиатором)
Для внутрисхемного доступа к внешней (подключенной к процессору) SPI-Flash-памяти достаточно работать по протоколу I2C, что и использует наш программатор. Процессор для режима отладки имеет два адреса на I2C-шине, обычно это B2 и 92. Первый адрес (B2) предназначен для доступа к регистрам и используется для остановки исполняемого кода и установки высокого уровня на выводе WP ИМС SPI-Flash для возможности дальнейшей записи. Второй адрес (92) используется исключительно для доступа к SPI-Flash. Через первый отладочный адрес возможен доступ ко всем внутренним регистрам процессора, включая установку нужного уровня на любом выводе, фактически это некий аналог JTAG-интерфейса. Однако для целей ремонта имеет значение исключительно снятие блокировки записи во Flash-памяти, иногда это оказывается невозможно из-за закрытости протокола и различий в подключении вывода WP SPI-Flash к процессору. Тем не менее, чтение памяти возможно всегда, что позволяет без проблем считывать необходимые для ремонта дампы с аппаратов, вскрытие которых недопустимо.
Рис. 3. Плата телевизора на базе процессора MStar, также имеющая разъем VGA
Для исключения случайного входа в отладочный режим используются специальные слова, посылаемые в отладочный адрес в первую очередь. Это слово SERDB» для отладки и MSTAR» для включения интерфейса SPI-Flash. Если кто-либо использует анализатор протокола, то наличие этих слов в потоке данных однозначно идентифицирует процессор фирмы MStar.
Протокол I2C, используемый процессорами MStar в отладочном режиме, имеет ошибки в реализации, что требует специальной аппаратной поддержки, иначе безошибочное внутрисхемное чтение практически невозможно. USB-вариант программатора имеет специальный адаптированный для MStar режим Soft I2C», что обеспечивает уникальную точность чтения. LPT-вариант программатора изначально имеет автоматическую адаптацию протокола I2C для чипов MStar.
Для большинства процессоров MStar управляющая программа программатора автоматически инициализирует отладочный режим по сигнатуре либо использует стандартный метод для неизвестных процессоров. В общем случае достаточно знать: если процессор имеет происхождение от MStar, то программатор будет с ним работать.
Полное содержание статьи доступно только в печатном варианте. Вы можете приобрести свежие номера Р&С или оформить подписку в редакции.
Описание неисправностей ресиверов DVB-T2, форум, советы, видеоинструкции по их ремонту преимущественно для профессионалов и радиолюбителей.
Ещё об одном кардинальном способе восстановления «кирпичей» на процессорах Mstar и не только об этом .
Станислав Эминов запись закреплена
Здравствуйте, приставка Globo gl30, нет звука на выходе через "тюльпаны" через hdmi звук есть но немного искаженный, в чём может быть проблема?
Визуально вздутых кондеров нет, опыт в прошивках таких приставок есть.
Рекс, знаю знаю, решил убедиться. В прошлом было когда от проца на RCA выход дополнительные резисторные сборки ставили или транзисторы а ща просто перемычки и всё.
Виталий Башкин запись закреплена
Были недавно два таких аппарата, дата выпуска с разницей менне месяца. Один 20151014 и 20151105. Первый с тюнером MXL603, а второй R836. Так вот, тоже не придав этому значения, залил во второй прошивку с тюнером MXL603. Потом так же замучился искать прошивку под второй. Перепробовал много разных, но как и у Вас ловил каналы на 60 и 63 канале, вместо 29 и 31. В итоге подошла вот эта.
Анатолий Григорьев запись закреплена
Иван Новов запись закреплена
Добрый день. Тв-тюнер telefunken tf-dvbt214 не может найти каналы + не дает изменить вручную Полосу и частоту. Может есть у кого прошивка, а то на официальном сайте её нет.
216 модель на другом процессоре GX3235s. Смысл пытаться ставить от неё прошивку? В приставках на процессорах Mstar нельзя изменить полосу и частоту не в каких прошивках, поиск только по каналу. Какие каналы пытаетесь ловить и что используете в качестве антенны?
Рекс, в качестве антенны пробовал использовать общую домовую и внешнюю (фото внешней вложил)
И каналы совсем никак не хочет находить.
Пытался найти любые каналы, хоть какие-то. Пробовал страны менять, тоже тишина, ничего не находит.
На общедомовую, ничего не поймаете, это всего скорей кабельный оператор, а у этой приставки нет стандарта DVB-C. Что касается внешней, она у Вас активная, в меню приставки нужно включить питание антенны. Далее в ручном поиске вводите номер канала на котором у Вас в городе ведётся вещание и смотрите сколько "попугаев" показывает полоска качество. Если менее половины столбца, берёте в ручки антенну и перемещая её добиваетесь максимум показаний шкалы качество. Далее нажимаете поиск. Происходит захват каналов.
Напомню, что теперь даже ребенок, не вскрывая, может выполнить Сохранение дампа флеш-памяти приставок на MStar. Это готовый дамп — для программатора.
И также из дампа легко сделать файл для аварийного восстановления (а точнее автоматического обновления прошивки) — flash.bin. Подробно рассказано в конце: Восстановление приставки на MStar после неудачной прошивки.
Но — реагировать или нет на flash.bin — определяется текущей прошивкой, находящейся в приставке.
Если в ней изначально отключена реакция на flash.bin, то этот файл будет проигнорирован.
Некоторые пользователи (например, прошившие чужой прошивкой приставку и при этом она загрузилась) хотели бы иметь возможность не искать программатор, выпаивать флеш-память, прошивать дамп и запаивать обратно, а попробовать — из уже имеющегося дампа — сделать обычную прошивку для USB.
Кроме того, USB-прошивку можно заливать не только через меню, но и подключившись к UART процессора, ведь у многих, чужая прошивка приводит к тому, что приставка уже не загружается до конца, останавливаясь на заставке.
Ранее о формировании USB-прошивки в общих чертах уже не раз было рассказано. Да и многие давным-давно всё это умели и умеют.
На первый взгляд может показываться, что всё очень сложно, потому что так много всего написано, но на самом деле — всё легко, и это можно сделать буквально за 15 минут. И описать в 3 предложениях.
Просто это своего рода — Инструкция, поэтому всё так подробно, с картинками и примерами.
Сначала будет рассмотрено воссоздание USB-прошивки для процессоров MSD, как наиболее известное:
Структура USB-прошивки для MSD:
• Заголовок, 4096 байт.
• Данные.
• Контрольная сумма Заголовка + Данные, CRC32 (4 байта, в обратном порядке).
А во второй части — для новых процессоров MSA, но действия примерно те же, вплоть до парадоксальных (на осознание несуразности которых ушло время).
Для всего этого потребуется любой HEX-редактор .
Итак, в чём особенность приставок на процессоре MStar: файл USB-прошивки имеет Заголовок, в котором находится загрузочный скрипт, содержащий команды для загрузки прошивки в приставку.
Все эти команды хранятся в обычном текстовом виде.
Сразу подчёркнуты самые важные 3 числа (а 4 = 3), которые и предстоит найти.
Например, 323b7c — объём Данных (это без учёта 0x1000 (4096) байт Заголовка и 4 байт CRC32).
или всё тоже самое в более привычном для чтения виде:
cusid 169b 3b 1 SMC_U01 0x0CFF 1244054
spi_wrc 0x80001000 0 323b7c
setenv usb_complete 1
setenv usb_upgrade 0
setenv bootcmd ‘ spi_rdc 0x80b00000 0x7001c 0x2b3b60 ; LzmaDec 0x80b00000 0x2b3b60 0x80000180 0x81000000; go 0x80000224;
saveenv
reset
Вот примерно подобное и надо создать, но только уже без первой строки cusid (поэтому и перечеркнуто).
cusid — команда проверки «свой-чужой», поэтому лучше воссоздать USB-прошивку уже без неё.
Проблема восстановления в том, что после исполнения загрузочного скрипта, Заголовок USB-прошивки — нигде в дампе не сохраняется.
Поэтому основная задача — воссоздание заголовка для будущей прошивки — из той текстовой информации, которая всё-таки есть в дампе.
Несмотря на то, что заголовок текстовый, создавать его надо только в HEX-редакторе.
В конце дампов процессоров MSD/MSA можно увидеть текстовые данные — это переменные окружения.
Искать лучше всего, например, по команде — spi_rdc
Пример переменных в дампе от MSD:
или всё тоже самое в более привычном для чтения виде:
bootdelay=0
baudrate=115200
preboot=echo;echo Type «help» for more commands.
MS_BOARD=BD_MST204A_D01A_S
stdin=serial
stdout=serial
stderr=serial
logo_cmd=boot_logo 0 0 1 1
bootcmd=usb exit;spi_rdc 0x80B00000 0x5001C 0x2DE303 ; LzmaDec 0x80B00000 0x2DE303 0x80000180 0x81000000; go 0x80000224;
info_exchange=spi
CUSTOMER_OUI=0x169B
AP_SW_MODEL=0x0001
AP_SW_VERSION=0x0001
HW_MODEL=0x0001
HW_VERSION=0x0001
Выделенные числа как раз и являются одними из важных для заголовка. Но тут нет самого 1 числа — объёма Данных.
Раньше получить 1 было очень просто: 2 + 3 (например, как видно у заголовка в самом начале).
Но в современных прошивках стали добавлять ещё какой-то дополнительный блок данных, связанный с сетевыми приложениями.
И если повезёт, то среди переменных окружения будет готовая — общая длина файла будущей USB-прошивки:
filesize
Например, filesize=336DF8 (это уже с учётом 0x1000 (4096) байт Заголовка + 4 байта Контрольной суммы).
И, соответственно, разыскиваемый нами объём блока Данных [ 1 ] = filesize–0x1000–4
Но наличие переменной filesize большая редкость, поэтому придётся прикинуть просто на глаз примерное окончание блока Данных в дампе, на собственное усмотрение.
Дамп лучше листать — с конца (не обращая внимание на пустышки с повторяющимися 00, FF или какой-то рыхлый мусор) до тех пор, пока не начнётся плотный поток различных кодов:
В качестве конца блока Данных сам выбрал 36BB2C — теперь это и есть объём блока Данных. А весь остальной выделенный хвост дампа, начиная с 36BB2C — теперь можно и нужно удалить.
При желании можно оставить 00 и побольше (допустим несколько 00-строк), главное, запомнить Смещение (Offset).
Итак, определили все 3 числа , поэтому создаём файл Заголовка длиной 4096 байт и вбиваем в него эти числа:
Пример этого файла заголовка в архиве.
И добавляем заголовок в начало нашего уже обрезанного с конца дампа. Ешё раз напомню:
Структура USB-прошивки для MSD:
• Заголовок, 4096 байт.
• Данные.
• Контрольная сумма Заголовка + Данные, CRC32 (4 байта, записанные в обратном порядке).
У общего файла Заголовка + Данные подсчитываем его контрольную сумму CRC32.
Подсчет можно сделать с помощью одной из программ или же в Интернете, выбрав вариант CRC-32B :
нажимаем кнопку Выберите файл и указываем на подготовленный файл:
и затем внизу нажимаем кнопку Преобразовать файл:
После загрузки подготовленного файла и подсчёта CRC-32 результат будет выглядеть примерно так:
Теперь полученные 4 байта: B8 C5 12 6C добавляем к файлу в обратном порядке: 6C 12 C5 B8:
Всё, прошивка готова.
А теперь для процессоров MSA. Напомню, ключевое отличие — Заголовок стал длиной 16384 байта.
Структура USB-прошивки для MSA:
• Заголовок, 16384 байт.
• Данные, выровненные до ближайшего старшего адреса (как правило, до 0x*****000).
• Контрольная сумма Заголовка, CRC32 (4 байта, записанные в обратном порядке).
• 20 нулевых байт (0x00).
Парадокс, над которым пришлось долго ломать голову, в том, что здесь считается Контрольная сумма только Заголовка.
По привычке, пытался подсчитать CRC32 у различных вариантов Заголовка + Данные, но приставка упорно ругалась — Error: CRC error!
Потому что, как оказалось, у прошивок MSA проверяется только целостность Заголовка.
Видимо, целостность самого блока Данных проверяется позже.
Итак, как и у MSD, в заголовке у MSA — текстовый загрузочный скрипт, но с гораздо бОльшим числом команд и различных переменных.
Сразу отмечу наиболее важные, которые потом и предстоит определить из дампа.
И это всё те же самые — 3 числа :
или всё тоже самое в более привычном для чтения виде:
fatload usb 0 80000000 $(ForceUpgradePath)
spi_wrc 80004000 0 3bc000setenv usb_complete 1
setenv usb_upgrade 0
setenv OAD_NEED_UPGRADE 0
setenv OAD_TRIGGER_TYPE 0
setenv bootcmd ‘ spi_rdc 0x80b00000 0x39028 0x338f16 ; LzmaDec 0x80b00000 0x338f16 0x80000180 0x81000000; go 0x80000224;
setenv upgrade_mode null
setenv MstarUpgrade_complete 1
setenv bl_jpd_read_addr 0x01f1c800
setenv bl_jpd_read_size 0x00100000
setenv bl_jpd_write_addr 0x0201c800
setenv bl_jpd_write_size 0x003fc000
setenv bl_jpd_inter_addr 0x02418800
setenv bl_jpd_inter_size 0x00630000
setenv bl_dfb_framebuffer_addr 0x01b28000
setenv ve_buffer_addr 0x02a48800saveenv
reset
Сразу оговорюсь о последних 8 переменных: во многих официальных прошивках их значения равны 0x00000000, при этом потом уже в дампе — они имеют конкретные значения, т.е. сама прошивка всё равно знает их значения (можно посмотреть и через команду printenv). Поэтому не вижу смысла восстанавливать их значения из дампа. Но кто желает, может вбить точные значения из дампа.
Итак, как обычно, идём в конец дампа или просто через Поиск строки, например, spi_rdc
Находим область с переменными окружения и видим там нужные нам 2 и 3 число:
Также как у MSD, если повезёт, то среди переменных окружения будет готовая — общая длина файла будущей USB-прошивки:
filesize
Например, filesize=3C6018 (это уже с учётом 0x4000 (16384) байт Заголовка, 0x4 (4) байт Контрольной суммы и 0x14 (20) нулевых байт).
И тогда, разыскиваемый нами объём блока Данных [ 1 ] = filesize–0x4000–0x4–0x14
Но, как уже отмечалось, наличие переменной filesize большая редкость, поэтому также как и с MSD, просматривая с конца дампа, ищем плотный поток различных кодов:
Но, в отличие от MSD, у MSA официальный конец Данных — ближайший старший адрес строки, как правило, оканчивающийся на 0x*****000:
В данном случае, это — 0x3C2000 , а весь остальной выделенный хвост, начиная с 0x3C2000 — отбрасываем.
Итак, все 3 числа определили, вбиваем их в файл заголовка длиной 16384 байта:
Пример этого файла заголовка в архиве.
Подсчитываем контрольную сумму CRC32 файла Заголовка. В данном случае — 4D 95 D9 32.
Ещё раз напомню:
Структура USB-прошивки для MSA:
• Заголовок, 16384 байт.
• Данные, выровненные до ближайшего старшего адреса (как правило, до 0x*****000).
• Контрольная сумма Заголовка, CRC32 (4 байта, записанные в обратном порядке).
• 20 нулевых байт (0x00).
Итак, всё собираем вместе: добавляем Заголовок в начало нашего уже обрезанного с конца дампа,
затем сзади добавляем 4 байта CRC32 в обратном порядке (т.е. 32 D9 95 4D ) и ещё 20 нулевых байт.
Т.е. концовка получившийся USB-прошивки выглядит вот так:
Если что-то непонятно в структуре начала и конца USB-прошивок и дампов MSD и MSA, то можно посмотреть на различные заводские прошивки и слитые дампы.
Напомню, что прошивки можно загружать не только в полностью работающую приставку через меню, но и подключившись с помощью любой терминальной программы с обычными параметрами порта 115200 8N1 — через любой преобразователь TTL-RS232 (например, в программаторе CH341A) — к контактам UART процессора MStar.
В момент включения приставки быстро нажимать, например, Enter и попадём в консоль загрузчика.
Загрузка USB-прошивки процессора MSD:
Название файла прошивки может быть любым.
Загрузка USB-прошивки процессора MSA:
т.е. по сути сделать всё то же самое, что указано в заголовке.
На всякий случай, напомню, что у MSA команда help не работает:
Стандартное обновление через меню или же через UART помогает и в тех случаях, когда микросхема флеш-памяти — слишком новая и программатор о ней ещё ничего не знает, дамп не прошивается, приходится пытаться указывать другие какие-то более известные микросхемы и пробовать.
А когда обновляете через приставку, то она об этом типе флеш, естественно, знает.
После любых прошиваний не забудьте — сбросить в заводские настройки.
Все вышеуказанные операции проводить с флешкой, отформатированной FAT32.
Если что-то не получается, пробовать с другой флешкой, отформатированной FAT32.
И как всегда стоит ещё раз напомнить:
ВСЁ, ЧТО ВЫ ДЕЛАЕТЕ СО СВОЕЙ ПРИСТАВКОЙ, ВЫ ДЕЛАЕТЕ НА СВОЙ СТРАХ И РИСК!
Если что-то пойдёт не так и приставка вообще не загрузится, то всегда надо быть готовым обратиться к программатору: Восстановление приставки на MStar после неудачной прошивки.
Офф-топ: О работе приложения IPTV
У новых процессоров MSA среди переменных окружения (printenv) появилась интересная:
IPTV_data_size=23644
Если её там нет, то при запуске приложения IPTV будет ошибка:
и она будет создана автоматически.
А если она уже была, то при запуске IPTV будет показано:
Судя по названию, связана с размером какого-то буфера IPTV, но смущает очень маленький размер.
В любом случае, теперь появилась возможность для экспериментов с размером буфера, заходя в консоль и устанавливая свой размер, например:
и при запуске IPTV видно:
==== Memory usage====================
u32PoolSize = 0x95ae40
u32FreeSize = 0x8c4a90
u32LargestFreeBlockSize = 0x8c4a84
max usage = 0x8c4a90
min block free size = 0x0Start decode DB …Decodesize = 0x8
szbuf = 64000
Причём, например, если у приставки изначально размер IPTV_data_size был 292 байта, то после загрузки плейлиста на 107 каналов стало:
Но когда подставил плейлист уже на 282 канала, то размер буфера так и остался прежним:
Пока сложно сказать однозначно за какой именно буфер IPTV она отвечает. Но тот факт, что IPTV_data_size добавили в переменные окружения, говорит о том, что она действительно важна.
И эта же переменная используется для приложения YouTube:
Некоторые сталкивались с ситуацией, когда после обновления прошивки приставка загружалась, но пульт переставал реагировать, или же вообще — приставка останавливалась уже на полпути при загрузке.
Как правило, такое происходит, когда приставка имеет несколько аппаратных ревизий, а пользователь не прочитал для какой именно ревизии предназначалась та или иная скачанная прошивка.
Или же пытались прошить вообще чужой прошивкой в надежде получить какие-то преимущества для своей модели, либо, например, пытаясь получить поддержку кодека AC-3 (Dolby Digital) , не зная, что она определяется конкретным процессором, установленным на плате на заводе.
И если в процессоре изначально не было оплаченной лицензии AC-3, то никакие прошивки — ни от родственных, ни от чужих моделей — в этом деле не помогут.
Ниже перечислю 4 варианта решения: первые два способа подходят для всех приставок и ещё два — только для приставок на процессорах MStar, причем один из них даже без вскрытия и затрат.
Самой простой вариант проблемы — приставка загрузилась, но перестала реагировать на пульт.
Покупаем пульт той приставки чью прошивку подсовывали или же универсальный пульт, например, Huayu DVB-T2+2 для приставок:
В перечисленных городах он стоит всего лишь 140 р. и это совсем небольшая плата за свою оплошность. Тем более что пульт потом в любом случае пригодится.
И, соответственно, с помощью этого пульта прошиваем приставку обратно на свою родную прошивку.
Самый универсальный и кардинальный способ решения — разобрать приставку, выпаять флеш-память, прошить через программатор дамп, где-то заранее скачанный, и затем запаять микросхему обратно:
Всё это потребует как минимум паяльника, программатора (пусть даже и простейшего SPIPGM на 4 резисторах), ну а главное — хотя бы минимального опыта, а иначе можно сделать только хуже.
Напомню, что дамп для приставок на MStar легко получить из самой обычной заводской прошивки usb_upgrade_all_flash.bin отрезав от неё первые 4096 байт, а остальное можно забить до конца, например, 00.
Если приставка на новых процессорах MStar MSA7T00, MSA7T10, то аналогично, но отрезать от прошивки первые 16384 байта.
Размер файла дампа = размеру флеш-памяти, т.е. ровно 4 мегабайта = 4194304 байта.
Однако для приставок на процессоре MStar есть гораздо более изящный способ прошивки без необходимости «Выпаивания > Программирования > Впаивания» микросхемы флеш-памяти — а просто через USB с использованием консоли, подключенной к UART процессора.
На платах приставок MStar есть две контактные площадки, подписанные TX и RX или SDA и SCL, соответственно. Иногда они обозначены просто как контрольные точки, например, TP8, TP10.
У MSD7816 от TX и RX идут к 95, 94 контактам процессора, MSD7802 — 60, 59, MSD7T01 — 36, 35, MSA7T00, MSA7T10 — 74, 73.
Подключаемся к ним через преобразователь RS232 <> TTL или DATA-кабель от старого кнопочного сотового телефона.
Также можно использовать программатор CH341A (от 130 р), переведя перемычкой в режим «S» — Serial port.
На компьютере запускаем любую терминальную программу, например, HyperTerminal или PuTTY , и подключаемся к соответствующему COM-порту преобразователя с параметрами 115200 8N1.
После включения приставки — сразу нажимаем любую клавишу, чтобы попасть в консоль загрузчика:
И здесь можно выполнить командами то же самое, что мы делаем в меню приставки, обновляя прошивку:
Обычно файл USB-прошивки называется — usb_upgrade_all_flash.bin (но может быть любое имя).
На экране всё будет выглядеть так, как будто обновляем через меню приставки.
Или же ещё один вариант, чуть посложнее:
Также последовательно даём следующие команды:
просмотр списка файлов:
загрузка подготовленного файла прошивки без первых 4096 байт в оперативную память (0x80000000):
запись из памяти в SPI-флеш (0x0):
После загрузки желательно сбросить в заводские настройки.
Т.о. здесь уже не требуется навыков аккуратного паяния и не нужен программатор, но всё-таки потребуется сделать или приобрести консольный шнур-преобразователь.
Но, как оказалось, у приставок на процессоре MStar есть ещё гораздо более простой и элегантный способ, не требующий никаких финансовых затрат или виртуозного владения паяльником.
И при этом приставку даже открывать не надо.
Если включить приставку в розетку, то на консоли можно заметить, что система обращается к USB-порту:
Check USB port[0]:
. Waiting for Peripheral Connecting Fail…
usb init failed
Error, couldn’t init Lowlevel part
А т.к. флешки нет, то система продолжит обычный процесс загрузки.
Но если вставить флешку (даже пустую) и включить в розетку, то на экране кратковременно мелькнет SOFTWARE UPGRADE ERROR:
А в консоли увидим следующее (далее выделено мной):
not found osd language env.
reading /flash.bin** Unable to read «/flash.bin» from usb 0:1 **
cmd fatload usb 0 80000000 /flash.bin 0x400000 failed
not found osd language env.
cmd setenv USBUpdateFail 1 success
cmd setenv USBUpdateFlag 0 success
Приставка ищет файл flash.bin размером 4 мегабайта (4194304 байта).
Но если попытаться подсунуть ей обычный где-то слитый или подготовленный дамп, просто переименованный во flash.bin, то всё равно ничего не будет — кратковременно промелькнет надпись LOADING DATA…:
Но сразу же всё равно закончится ошибкой — SOFTWARE UPGRADE ERROR:
Однако в консоли можно заметить:
not found osd language env.
reading /flash.bin4194304 bytes read
cmd fatload usb 0 80000000 /flash.bin 0x400000 success
u32UbootInfoAddr: 0x4D957
K1_INFO_ADDR: 0x80000
AppMagicFlag is correct !!
CRC check error !!
not found osd language env.
Т.е. файл flash.bin не понравился ей, потому что он не имеет в конце контрольной суммы CRC-32.
Надо подсчитать CRC-32 первых 4194300 байт дампа, а затем в последние 4 байта вбить саму CRC-32 в обратном порядке.
Подсчет можно сделать с помощью одной из программ или же в Интернете, выбрав вариант CRC-32B :
нажимаем кнопку Выберите файл и указываем на подготовленный файл дампа с первыми 4194300 байтами (т.е. без последних 4 байт!).
И затем ниже нажимаем кнопку Преобразовать файл.
После загрузки подготовленного файла и подсчета CRC-32 результат будет выглядеть примерно так:
Теперь полученные 4 байта B8 C5 12 6C вбиваем в конец flash.bin в обратном порядке: 6C 12 C5 B8.
Втыкаем флешку с flash.bin в приставку и включаем приставку в розетку.
Результат (выделено наиболее важное):
not found osd language env.
reading /flash.bin4194304 bytes read
cmd fatload usb 0 80000000 /flash.bin 0x400000 success
u32UbootInfoAddr: 0x4D957
K1_INFO_ADDR: 0x80000
AppMagicFlag is correct !!
CRC check success !!
spi_wrc 0x80000000 0x00000 0x400000
0
offset 0x0, size 0x400000
Flash is detected (0x0C00, 0xC8, 0x40, 0x16)
initialization done!
MDrv_SERFLASH_GetInfo()
u32AccessWidth = 1
u32TotalSize = 4194304
u32SecNum = 64
u32SecSize = 65536
Erasing…
Writing…
Verifying…OK .
cmd spi_wrc 0x80000000 0x00000 0x400000 success
not found osd language env.
spi_rdc 0x80B00000 0x23000 0x10000
offset 0x23000, size 0x10000
WARNING: it is better to set flash start addr aligned to 65536 .
cmd spi_rdc 0x80B00000 0x23000 0x10000 success
u32UbootInfoAddr: 0x4D957
K1_INFO_ADDR: 0x80000
spi_rdc 0x80B00000 0x80000 0x10000
offset 0x80000, size 0x10000
cmd spi_rdc 0x80B00000 0x80000 0x10000 success
setenv bootcmd ‘ spi_rdc 0x80B00000 0x8001C 0x2AFBE1; LzmaDec 0x80B00000 0x2AFBE1 0x80000180 0x81000000; go 0x80000224;
cmd setenv bootcmd ‘ spi_rdc 0x80B00000 0x8001C 0x2AFBE1; LzmaDec 0x80B00000 0x2AFBE1 0x80000180 0x81000000; go 0x80000224; success
Saving Environment to spiflash…
Flash is detected (0x0C00, 0xC8, 0x40, 0x16)
Write addr=0x003E0000, size=0x00010000
Write addr=0x003F0000, size=0x00010000
cmd saveenv success
cmd setenv USBUpdateFail 0 success
cmd setenv USBUpdateFlag 0 success
Saving Environment to spiflash…
Этот же процесс на экране:
При обычном обновлении название может быть не только usb_upgrade_all_flash.bin, но в принципе любым. А вот при процедуре восстановления только flash.bin с обязательной CRC-32 в конце файла.
Неслучайно выше выделял — воткнуть в розетку, т.к. процесс восстановления запускается только при холодном старте.
Из дежурного режима проверка flash.bin не происходит.
После завершения восстановления удалите с флешки файл flash.bin , чтобы приставка не прошивалась каждый раз при включении в розетку или пропаданиях электроэнергии.
Итак, еще раз по шагам:
- Найти/скачать или создать из прошивки файл дампа (4194304 байта).
- Подсчитать CRC-32 первых 4194300 байт дампа. Для этого лучше временно создать отдельный файл.
- Полученные 4 байта CRC-32 вбить в конец дампа в обратном порядке.
- Переименовать файл дампа во flash.bin и скопировать на чистую флешку.
- Вставить флешку в приставку.
- Включить приставку в розетку.
- Наблюдать на экране за процессом.
- После восстановления удалить с флешки файл flash.bin !
Замечу, что в некоторых прошивках возможность аварийного восстановления отсутствует: при включении в розетку на консоли не видно обращений к какому-либо файлу. Но конечно всё равно стоит проверить данный способ, а затем уже обратиться к предыдущему.
BO? FAIL — Boot Failure — загрузчик испорчен.
BOOTSPI — первично загрузились с ПЗУ (могут быть квадратные скобки [с цифрами-буквами или без них])
BIST0-OK или BIST0_OK— проверка DDR прошла успешно
_OK!decomp — идет распаковка загрузчика
_done — распаковка загрузчика прошла успешно
бесконечные
BOOTSPI[]_OK! FAIL
или одиночный
BIST0-FAIL
Оперативная память не прошла тест. Проверить напряжение её питания и, если внешняя — прогреть в надежде, что из-за неконтакта.
Если встроенная, также проверить её питание, но причиной BIST0_FAIL может быть и прошивка, предназначенная для другого процессора. К примеру, если прошить MSD7T01 (64 МБ DDR2) прошивкой от нового MSD7T03 (128 МБ DDR3). И наоборот. Исправляется только программатором.
BIST (Build In Self Test) — это функция автоматического обнаружения модуля DDR при включении микросхемы.
После завершения BIST он немедленно автоматически найдет лучшее значение фазы (Auto Phase).
BIST: ОК — означает, что основной тест пройден.
Каким способом воспользоваться каждый решает сам: кому-то проще купить универсальный пульт, вернув себе управление приставкой, для кого-то владение паяльником и программатором не проблема, ну а кто-то, не прибегая к затратам, может попытаться восстановить одной лишь силой разума.
В любом случае, как всегда стоит ещё раз напомнить:
ВСЁ, ЧТО ВЫ ДЕЛАЕТЕ СО СВОЕЙ ПРИСТАВКОЙ, ВЫ ДЕЛАЕТЕ НА СВОЙ СТРАХ И РИСК!
Вы ещё не знаете как восстановить кирпич Mstar S700, который не включается? В этой статье вы узнаете как воскресить телефон. Если вы не можете включить устройство или ваш гаджет зависает на заставке производителя, уходя в вечную перезагрузку, то у вас в руках «кирпич» как бы грустно это не звучало.
Mstar S700 восстановление кирпича
Восстанавливать будем путём перепрошивки, загружаем ZYKUFlasher 1.1 и смотрим инструкцию здесь. Через утилиту zykufirmware.exe (файл есть в архиве с первой программой) выбираем стоковую (заводскую) прошивку для Mstar S700 и скачиваем её, утилита помечает такие как Stock.
Теперь осталось запустить ZYKUFlasher, заполнить нужные поля, выбрав файл с прошивкой и нажать Start Flash.
Почему Android может превратится в кирпич
- Сильный удар устройства, падение с большой высоты
- Залив водой
- Вредоносные приложения, могут быть в том числе и в Google Play
- Неквалифицированные действия, например, удаление каких-либо системных файлов, необходимых для работы Android, такое можно сделать только при наличии root
- Отключение питания во время прошивки телефона, установки обновлений или во время получения root прав
- Проблемы с Flash памятью
Если вы залили устройство водой, то вам однозначно надо отнести его в сервисный центр.
Варианты восстановления Андроид кирпича
«Окирпичивание» не приговор, есть три способа восстановить смартфон. Мы будем действовать первым способом, Я подробно расскажу вам про первый способ, он наиболее лёгкий из всех.
- Через компьютер и бесплатную программу ZYKUFlasher 1.1
- Через меню восстановления
- С помощью кастомного Recovery
Читайте также: