GSM Форум - GSMForum.SU

GSM Форум - GSMForum.SU (https://gsmforum.su/index.php)
-   RIFF Box JTAG (https://gsmforum.su/forumdisplay.php?f=382)
-   -   Восстановление boot на i9003 (https://gsmforum.su/showthread.php?t=77944)

Jet 28.08.2011 12:04

1. bambarmia описал все даже слишком подробно, и имея немного серого вещества, можно без проблем разобраться!
2. ответы на 3 дурацких вопроса!
---- Кто нибудь видел удачный пинг к процессору ТА ?
----Да, видел, и если подумать логически, раз к нему есть фулл, то и пинг соответственно был. по другому не слить.
---- на RIFF Users Data Exchange мона положить дамп Siemens A75?
---- да кладите сколько влезет, только RIFFом его сливать никто не будет, это еще очень давно делал Joker и больше таким заморачиваться никто не будет.
---- bambarmia, ты в этом, даташитах, что-то понимаешь наверное, мона я создам тему: "вот как бывает с HTC Desire HD" а ты подробнее опишешь то что было постом выше?
---- Куда еще подробнее, человек и так выдал слишком много информации. Может еще страницы мануала надо было указать?
3. На ТЫ с хамовитыми личностями переходить не собираюсь! Так что потрудитесь...
И завуалированные маты на форуме не приветствуются...

4. и еще по поводу этого "... наверно на мцрф скучно скучно профессионалам и они делятся знаниями с нубами" - думаю что там вас с таким поведением забанили бы уже очень давно!

haydeGen 28.08.2011 12:41

sJet - исчезни, я тебя умоляю! забудь.

и так, что мне не понятно:
Цитата:

если пережечь соответствующую перемычку то весь "самый-пресамый низкоуровневый интерфейс" просто напросто перестанет отвечать на запросы отладчика
что значит пережечь?
Цитата:

если при этом производителю добавить в один из лоадеров инструкции которые пропишут соответствующие биты
что за инструкции? и почему только производитель их может добавить ?

Jet 28.08.2011 12:59

правильно поставленный вопрос это уже половина ответа!!!
Изначально в процессоре доступен JTAG интерфейс, через который производитель может зашить все лоадеры в телефон, а потом и саму прошивку через них. (хотя как вариант возможно и на программаторе все заливается отдельно на флешку) В одном из лоадеров находится инструкция по программному включению JTAG. Если он будет не исправен, то JTAG станет недоступным.
И после проверки на работоспособность в аппарате "пережигается" нужный fuse.
Фактически это типа выставления битов секьюрити на atmel или pic, только там полностью стерев устройство биты возвращаются в исходное состояние. А в этих процах эти биты имеют строение OTP, один раз установил и все.
Достаточно доходчиво?

Serg555 28.08.2011 22:26

Цитата:

Сообщение от bambarmia (Сообщение 397314)
А то что касается непосредственно самого i9003 на OMAP3630 - то здесь хотя я и не углублялся в даташит на него, но с большой вероятностью предположу что там похожая ситуация. И никак это не относится к ревизиям плат.

Я тоже придерживаюсь такого же мнения...
А то что "убитые" платы первой ревизии цепляются к Jtag , а второй нет , то возможно платы 1-й ревизии это всего лишь протатипы и Jtag у них не отключен. Интересно было бы взглянуть на IMEI такого тела, сразу стало бы ясно...

Hustler82 29.08.2011 12:02

Вложений: 2
Ато вот это за jtag? контроллера питания? и зачем он нужен?
Вложение 90535

Вложение 90536

bambarmia 29.08.2011 12:41

Цитата:

Сообщение от Hustler82 (Сообщение 397539)
Ато вот это за jtag? контроллера питания? и зачем он нужен?

Это JTAG порт радиомодуля (Infenion), по блок схемам он не имеет связи с основной флеш памятью где лежит прошивка, значит и пользы от него никакой, разве что изучать и отлаживать как работает радиотракт

jblack 29.08.2011 13:43

Цитата:

Сообщение от sJet (Сообщение 397227)
Цитата:

Сообщение от Serg555 (Сообщение 397105)
Коллега , только не забываем что CPU довольно сложное устройство (это вам не микросхемка 74-й серии:D ) , в котором можно выставить фьюзы так , что Ваш "JTAG низкоуровневый интерфейс" пойдет лесом.
В лучшем случае увидите ядро , но остановить cpu не сможете... Телефонов с "закрытым" Jtag хоть и не очень много, но они есть!
А программно как раз можно и "открыть" Jtag , если это захочет производитель. Что мы и наблюдаем к примеру в новых моделях НТС на MSM8X55. Пока цел код FSBL , работа через Jtag доступна , но стоит его затереть и процу станет обсолютно ФИОЛЕТОВО на Ваш Jtag и его низкоуровневый интерфейс.
Изучайте даташиты, коллега...:

Сергей, абсолютно согласен на все 100%, что доказывает последний опыт общения с Desire HD. Новый телефон с коробки, кто то пытался зашить на русский, не удачно, аппарат труп. Проц виден, но дальше тишина. Убит FSBL, и пока что единственный вариант его воскрешения - это рабочая пара с другого аппарата, или хотя бы флешка.

Парни вам точно нужно изучить обсуждаемый вопрос, так как вы противоречите сами себе

Цитата:

но стоит его затереть и процу станет обсолютно ФИОЛЕТОВО на Ваш Jtag и его низкоуровневый интерфейс.
Цитата:

Проц виден, но дальше тишина.
Что бы дальше была не тишина надо загрузить нужный лоадер, что бы появилась возможность работать с процессором в нормальном режиме. Если бы каким либо образом вы смогли бы отключить интерфейс JTAG то вообще бы от процессора даже отклика бы не получили.

Jet 29.08.2011 13:55

процессор выдает только свой ID
какая подключена память - не выдает, на сброс не реагирует, больше никакие команды не проходят..

Код:

[30.07.2011 13:46:05] Открытие порта...OK
[30.07.2011 13:46:05] Подключение к RIFF Боксу...OK
[30.07.2011 13:46:05] Версия Прошивки: 1.26, Версия JTAG Manager: 1.34
[30.07.2011 13:46:05] Выбран Ресурректор: [HTC Desire HD]
[30.07.2011 13:46:05]
[30.07.2011 13:46:05] Подключение к мертвому телу...OK
[30.07.2011 13:46:05] Выставленное I/O Напряжение 1.80В, Частота TCK: RTCK
[30.07.2011 13:46:05] Выбрана модель: HTC - HTC Desire HD
[30.07.2011 13:46:05]
[30.07.2011 13:46:05] Обнаружено устройство с ID: 0x17B360E1
[30.07.2011 13:46:05] [FINISH OPERATION_ID = GET_DEVICE_ID]

[30.07.2011 13:46:09] [START OPERATION_ID = RESET_TARGET]
[30.07.2011 13:46:45] [START OPERATION_ID = READ_ICE_REGS]
[30.07.2011 13:46:45] Открытие порта...OK
[30.07.2011 13:46:45] Подключение к RIFF Боксу...OK
[30.07.2011 13:46:45] Версия Прошивки: 1.26, Версия JTAG Manager: 1.34
[30.07.2011 13:46:45] Выбран Ресурректор: [HTC Desire HD]
[30.07.2011 13:46:45]
[30.07.2011 13:46:45] Чтение ICE регистров...ОШИБКА
[30.07.2011 13:46:45] Чтние ICE регистров завершилось с ошибкой.
[30.07.2011 13:46:45] [FINISH OPERATION_ID = READ_ICE_REGS]

Код:

[30.07.2011 13:54:07] Открытие порта...OK
[30.07.2011 13:54:07] Подключение к RIFF Боксу...OK
[30.07.2011 13:54:07] Версия Прошивки: 1.26, Версия JTAG Manager: 1.34
[30.07.2011 13:54:07] Выбран Ресурректор: [HTC Desire HD]
[30.07.2011 13:54:07]
[30.07.2011 13:54:07] Подключение к мертвому телу...OK
[30.07.2011 13:54:07] Обнаружено устройство с ID: 0x17B360E1 - ПРАВИЛЬНО!
[30.07.2011 13:54:07] Выставленное I/O Напряжение 1.79В, Частота TCK: RTCK
[30.07.2011 13:54:07] Частота семплирования RTCK сигнала: [Sample at 20 kHz]
[30.07.2011 13:54:07]
[30.07.2011 13:54:07] Процедура восстановления начата.
[30.07.2011 13:54:07] Установка соединения с устройством...СБОЙ
[30.07.2011 13:54:07] ОШИБКА(0x44): Соединение не установлено. Завершение работы.


Serg555 29.08.2011 14:01

Цитата:

Сообщение от jblack (Сообщение 397556)
Что бы дальше была не тишина надо загрузить нужный лоадер, что бы появилась возможность работать с процессором в нормальном режиме. Если бы каким либо образом вы смогли бы отключить интерфейс JTAG то вообще бы от процессора даже отклика бы не получили.

Ключевой вопрос - как загрузить нужный лоадер?
Жду ответа...

з.ы.
Предложения снять флэш и прошить на внешнем программаторе или в другом теле не принимаются.

jblack 29.08.2011 15:42

Цитата:

Сообщение от Serg555 (Сообщение 397563)
Ключевой вопрос - как загрузить нужный лоадер?
Жду ответа...

з.ы.
Предложения снять флэш и прошить на внешнем программаторе или в другом теле не принимаются.

Ключевой ответ - сначала найдите нужный лоадер (производитель с большой вероятностью вам его не даст), а как загрузить его это уже будет решать команда RIFF-а.

Так что ответ - ждать пока появится решение.

Jet 29.08.2011 15:52

Выдержка из инструкции RIFF
Код:

"В некоторые (или всех) ревизиях плат HTC Desire HD JTAG интерфейс
деактивирован (т.е. в MSM8255 микросхеме перемычка MARM JTAG прожжена).
В этом случае JTAG интерфейс может быть активирован только прошивкой.
Это осуществляется в FSBL лоадере, в связи с чем, запись зоны FSBL в
DCC лоадере преднамеренно отключена. DCC лоадер отклоняет все попытки
записи в FSBL зону и не выдает ошибку, как будто запись выполнена успешно.
Тем самым FSBL зона защищена, но при этом пользователь по-прежнему сможет
записывать полный дамп без дополнительных трудностей.
Ресурректор восстанавливает бутовые области радио части (кроме FSBL зоны) и
переписывает SPL версии 0.85.0007. Дополнительно к зонам SPL и Radio, зона,
в которой содержится Model ID, тоже переписывается. Таким образом,
по окончанию процесса восстановления, телефон будет иметь
Model ID = ‘PD9810000’."

Выдрать из стоковой прошивки, или доступного фула FSBL не проблема. И вот он тот самый загрузчик который нам нужен. Но что с ним делать дальше, если запись во флеш по JTAG не доступна, и записать мы его туда не можем? А запись во влеш открывается только при наличии в ней FSBL загрузчика...
Итого замкнутый круг, "что было раньше курица или яйцо"?

jblack 29.08.2011 16:34

Цитата:

Сообщение от sJet (Сообщение 397574)
Выдержка из инструкции RIFF
Код:

"В некоторые (или всех) ревизиях плат HTC Desire HD JTAG интерфейс
деактивирован (т.е. в MSM8255 микросхеме перемычка MARM JTAG прожжена).
В этом случае JTAG интерфейс может быть активирован только прошивкой.
Это осуществляется в FSBL лоадере, в связи с чем, запись зоны FSBL в
DCC лоадере преднамеренно отключена. DCC лоадер отклоняет все попытки
записи в FSBL зону и не выдает ошибку, как будто запись выполнена успешно.
Тем самым FSBL зона защищена, но при этом пользователь по-прежнему сможет
записывать полный дамп без дополнительных трудностей.
Ресурректор восстанавливает бутовые области радио части (кроме FSBL зоны) и
переписывает SPL версии 0.85.0007. Дополнительно к зонам SPL и Radio, зона,
в которой содержится Model ID, тоже переписывается. Таким образом,
по окончанию процесса восстановления, телефон будет иметь
Model ID = ‘PD9810000’."


Вот вам и ответ как только добавят FSBL лоадер так и будет счастье.

Цитата:

Сообщение от sJet (Сообщение 397574)
Выдрать из стоковой прошивки, или доступного фула FSBL не проблема. И вот он тот самый загрузчик который нам нужен. Но что с ним делать дальше, если запись во флеш по JTAG не доступна, и записать мы его туда не можем? А запись во влеш открывается только при наличии в ней FSBL загрузчика...
Итого замкнутый круг, "что было раньше курица или яйцо"?

Содержимое микросхемы и лоадер разные вещи, лоадер это код который записывается в определенную область процессора для получения доступа к периферии и хранится там только во время текущего сеанса при перезагрузке данная область очищается.

Одним словом изучаем основы микропроцессорной техники.

Serg555 29.08.2011 16:36

Цитата:

Сообщение от jblack (Сообщение 397573)
Ключевой ответ - сначала найдите нужный лоадер (производитель с большой вероятностью вам его не даст), а как загрузить его это уже будет решать команда RIFF-а.

Так что ответ - ждать пока появится решение.

Лоадер есть , дальше что? Как и чем его загонять в тело будем?

Цитата:

лоадер это код который записывается в определенную область процессора для получения доступа к периферии и хранится там только во время текущего сеанса при перезагрузке данная область очищается.
RAM CPU. Как получить туда доступ ? JTAG деактивирован...

jblack 29.08.2011 16:59

Думаю стоит закончить дискуссию так как она переходит в теоретическую, а не практическую часть следовательно не имеет смысловой нагрузки.

Цитата:

Сообщение от Serg555 (Сообщение 397578)
Лоадер есть , дальше что? Как и чем его загонять в тело будем?


RAM CPU. Как получить туда доступ ? JTAG деактивирован...

Доступ к FSBL в DCC лоадере преднамеренно отключен, так как нужен FSBL лоадер, чего здесь не понятного, команда RIFF-а наверно над этим работает, так что подобные вопросы (что, как и когда) задавайте им на прямую.

Jet 29.08.2011 17:18

Цитата:

Сообщение от jblack (Сообщение 397584)
Доступ к FSBL в DCC лоадере преднамеренно отключен, так как нужен FSBL лоадер

Доступ к записи FSBL разработчиками RIFF отключен намеренно только с одной единственной целью, дабы юзеры не валили аппараты. Если его переписать чем то другим то на руках будет труп. А так даже при заливании кривого фулла зона загрузчика FSBL не записывается.

Я тоже предпочитаю закончить дискуссию, т.к. ничего толкового из этого не выйдет.

То что мы имеем на данный момент:
HTC а возможно и другие производители отключают JTAG интерфейс в своих телефонах. Восстановить работу которого без программирования флеш памяти во внешнем программаторе не представляется возможным.
Разработчики Riff забили на это, так как подхода не нашли. И копать в этом направлении не собираются. (исходя из общения с поддержкой и программером команды)

Serg555 29.08.2011 17:41

Цитата:

Сообщение от jblack (Сообщение 397584)
Доступ к FSBL в DCC лоадере преднамеренно отключен, так как нужен FSBL лоадер, чего здесь не понятного, команда RIFF-а наверно над этим работает, так что подобные вопросы (что, как и когда) задавайте им на прямую.

При чем тут вообще "DCC лоадер" и FSBL?:icq13:
Вы противоречите сами себе в своих сообщениях...

RAM CPU. Как получить туда доступ ? JTAG деактивирован...

jblack 29.08.2011 18:11

Цитата:

Сообщение от sJet (Сообщение 397587)
То что мы имеем на данный момент:
HTC а возможно и другие производители отключают JTAG интерфейс в своих телефонах. Восстановить работу которого без программирования флеш памяти во внешнем программаторе не представляется возможным.
Разработчики Riff забили на это, так как подхода не нашли. И копать в этом направлении не собираются. (исходя из общения с поддержкой и программером команды)

Немного не так на данный момент имеем отсутствие лоадера открывающего доступ к внутренней памяти процессора в которой по всей видимости и хранится настройка доступа через JTAG к нужной области.

Цитата:

Сообщение от Serg555 (Сообщение 397590)
При чем тут вообще "DCC лоадер" и FSBL?:icq13:
Вы противоречите сами себе в своих сообщениях...

RAM CPU. Как получить туда доступ ? JTAG деактивирован...

Вы просто не можете никак понять что один лоадер открывает доступ к внутренней памяти процессора, другой к внешней памяти.

Во внутренней памяти хранится все что связано с работой самого процессора, во внешней сама операционка телефона и все связанные с ней настройки.

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

haydeGen 29.08.2011 23:14

:icq54: Ребята, я опять тута, дамп слит-то, как быть? я так понял - зажигает производитель, но все же сцука дамп есть)))

bambarmia 30.08.2011 14:44

Цитата:

Сообщение от jblack (Сообщение 397556)
Что бы дальше была не тишина надо загрузить нужный лоадер, что бы появилась возможность работать с процессором в нормальном режиме. Если бы каким либо образом вы смогли бы отключить интерфейс JTAG то вообще бы от процессора даже отклика бы не получили.

Пожалуйста, объясните мне в чем противоречия?
Вы конечно не обижайтесь, но значит вы просто не понимаете суть интерфейса JTAG.

Чтобы что-то загрузить, как минимум в память адресуемую процессором (32-бит 4ГБ адресное пространство), надо для начала подключиться к ядру процессора через JTAG. Подключение к ядру это значит остановить ядро и получить доступ к его внутренним регистрам. Только после этого можно выполнять какие бы нибыло операции типа чтения или записи памяти (что выполняется принудительной загрузкой инструкций в конвейер ядра в обход обычной схемы). Т.е. чтоб загрузить любой лоадер через JTAG для начала надо выполнить действия предложением выше. И вообще то что касатеся лоадеров в JTAG смысле - как их не назови, лоадер или dcc loader или флешер или еще как - все это обычный скомпилированный ARM код который загружается в память процессора (после того как он был введен в режим отладки) и потом запускается на исполнение - все это возможно когда отладка не заблокирована в чипе (DGBEN сигнал).

"Блокирование JTAG" т.е. пережигание соотв. перемычки в MSM чипах вовсе не означает что после этого JTAG интерфейс вообще отвалится (не говоря уже об ICEPICK в OMAP3xxx процессорах).
Все ядра АРМ имеют внутренний сигнал DBGEN (что подробно описано во всех спецификациях ARM) - если этот сигнал установить в "0" - отладка ядра (а именно его остановка, доступ к его регистрам и конвейеру) станет невозможной. Именно этот сигнал и обрубается в MSM после пережигания перемычки.

Но только не следует путать "отключить отладку" и "отключить TAP контроллер".
Пережигание перемычек защиты например в микроконтроллерах Atmel SAM семейства именно отключает TAP - и в этом случае JTAG действительно перестает быть виден вообще. Но квалком пошел другим путем - они просто дают возможность заблокировать доступ к отладке, при этом TAP остается виден.

Тоже самое я уверен касается и OMAP процессоров.

jblack 30.08.2011 16:39

Цитата:

Сообщение от bambarmia (Сообщение 397679)
Вы конечно не обижайтесь, но значит вы просто не понимаете суть интерфейса JTAG.

Какой бы ни был интерфейс суть его сводится к передаче данных и частично его отключить нельзя (можно только запретить доступ к определенной области памяти этому интерфейсу что в нашем случае и является проблемой), суть JTAG сводится к работе с процессором напрямую минуя стандартные шины данных, так что проблема не в JTAG, а в отсутствии нужной команды, лоадера (называйте как хотите) для открытия нужного доступа.

Цитата:

Сообщение от bambarmia (Сообщение 397679)
Чтобы что-то загрузить, как минимум в память адресуемую процессором (32-бит 4ГБ адресное пространство), надо для начала подключиться к ядру процессора через JTAG. Подключение к ядру это значит остановить ядро и получить доступ к его внутренним регистрам. Только после этого можно выполнять какие бы нибыло операции типа чтения или записи памяти (что выполняется принудительной загрузкой инструкций в конвейер ядра в обход обычной схемы). Т.е. чтоб загрузить любой лоадер через JTAG для начала надо выполнить действия предложением выше. И вообще то что касатеся лоадеров в JTAG смысле - как их не назови, лоадер или dcc loader или флешер или еще как - все это обычный скомпилированный ARM код который загружается в память процессора (после того как он был введен в режим отладки) и потом запускается на исполнение - все это возможно когда отладка не заблокирована в чипе (DGBEN сигнал).

"Блокирование JTAG" т.е. пережигание соотв. перемычки в MSM чипах вовсе не означает что после этого JTAG интерфейс вообще отвалится (не говоря уже об ICEPICK в OMAP3xxx процессорах).
Все ядра АРМ имеют внутренний сигнал DBGEN (что подробно описано во всех спецификациях ARM) - если этот сигнал установить в "0" - отладка ядра (а именно его остановка, доступ к его регистрам и конвейеру) станет невозможной. Именно этот сигнал и обрубается в MSM после пережигания перемычки.

Но только не следует путать "отключить отладку" и "отключить TAP контроллер".
Пережигание перемычек защиты например в микроконтроллерах Atmel SAM семейства именно отключает TAP - и в этом случае JTAG действительно перестает быть виден вообще. Но квалком пошел другим путем - они просто дают возможность заблокировать доступ к отладке, при этом TAP остается виден.

Тоже самое я уверен касается и OMAP процессоров.

Не обижайтесь, но явно пере читались сервисных мануалов, но сути так и не уловили, хотя что бы понять суть надо читать мануалы другого уровня которые предоставляют разработчикам программного обеспечения, а не сервисные мануалы предназначенные для общего развития.


Текущее время: 23:57. Часовой пояс GMT +3.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot