PDA

Просмотр полной версии : FAQ Инструкции и методики работы c RIFF JTAG


Sergey
08.07.2012, 09:34
Инструкция как искать JTAG распиновку на примере ZTE MF170
Источник (http://www.gsmforum.ru/threads/99284-%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-Probe-%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D 1%82%D1%8C%D1%81%D1%8F?p=620246&viewfull=1#post620246)

Инструкция как искать JTAG распиновку на ZTE MF170 (инструкция в RIFF-е идет на английском, поэтому может кому пригодится). Добавлю что в MF170 dll напряжение стоит 2.6В хотя у этого процессора - уровни 1.8В

1. Я использовал готовый RJ45 шнурок-папу в котором были проводки на 6м и 8м контактах. Не нужное - отрезал, а к "6му" проводку припаял иголку, и к 8-му - корпус (хотя его даже не подключал так как земля шла общая через ЮСБ шнурок (RIFF и модем подключены к одному компу, значит и земля более-менее общая)

2. Разбираем модем - в нем видна группа контактов:
оооооооо
оооооооо
ооо

3. Пронумеровываем их и подготавливаем пустой текстовый файл, подключаем модем к ЮСБ и предварительно тестером замеряем напряжения на каждой площадке, все это записываем в файлик. У меня получилось такое:
1 - 0В
2 - 0В
3 - 3.77В
4 - 3.77В
5 - 0В
6 - 0В
7 - 1.78В
8 - 0В
9 - 0В
10 - 1.70В
11 - корпус
12 - 1.71В
13 - 0В
14 - 1.71В
15 - 4.93В
16 - 0В
17 - 0В
18 - корпус
19 - корпус

Теперь все сомнения отпали - никакая тут не 2.6 логика а 1.8-товая. Плюс стало видно что 3,4 и 15 площадки никакого отношения к джитагу не имеют (по крайней мене - я таких уровней логики не знаю)

4. Теперь в софте бокса ставим Custom Target settings и выбираем Voltage = 1.8В и щелкаем на кнопку Start Probing

6. Ставим иголку на первую площадку - софт показывает probe0=0.75V, probe1=1.58V

7. Иголку на вторую площадку - софт пишет probe0=0.00 и probe1 = 1.68

8. 3,4 - вообще пропускаем. И так далее, короче меряем все 19 площадок. В результате у меня получилось:
1 - p0=0.75, p1=1.58
2 - p0=0.00, p1=1.68 - наверное trst
5 - p0=0.00, p1=1.78 - явно tdo
6 - p0=0.00, p1=0.00 - rtck
7 - p0=1.78, p1=1.80 -
8 - p0=0.00, p1=1.11 -
9 - p0=0.00, p1=1.68 - наверное trst
10 - p0=0.11,p1=1.78 - tdi,tms или tck
11 - корпус
12 - p0=0.11,p1=1.78 - tdi,tms или tck
13 - p0=0.00,p1=1.68 - наверное trst
14 - p0=0.11,p1=1.78 - tdi,tms или tck
16 - p0=0.00,p1=1.10
17 - p0=1.39,p1=1.38
18,19 - корпус

P.S. Функцию площадки я определял по аналогии с тем как написано в английской документации - trst ставят без подтяжек поэтому второе значение - probe1 обычно проседает слегка ниже заданного уровня (тут - 1.8В), tdi, tms и tck - c подтяжками, поэтому probe0 должен быть чуть выше нуля, rtck - выход поэтому он удерживает 0, tdo - откл. (high-impedance) поэтому когда иголкой дотрагиваемся - это никак не влияет на измерения (как будто площадка висит в воздухе)

9. Теперь можно припаять с большой вероятностью площадки 5,6 и корпус к соответствующим контактам на боксе. По инструкции чтобы найти tck надо проверить подозрительные площадки - здесь tck может быть на 10й, 12й или 14й площадке. Но в мануале еще надо знать наверняка trst - а здесь их целых 3 возможных - 2, 9 или 13-я площадка. Но это не очень страшно, просто надо в худшем случае 3 раза перепять trst.

10. Итак, в программе закрываем окошко probing и переходим на страницу JTAG read write, ставим частоту JTAG TCK Speed = RTCK, Custom Target Settings, Voltage = 1.8V
Припаиваем иголку к tck контакту на боксе, а trst сигнал с бокса - припаиваем к площадке 2 (предположим что trst это она).
Теперь ставим иголку на 10-ю площадку - и не отпуская - нажимаем в софте на Analize JTAG Chain - в ответ

Connecting to the target...ERROR
ERROR: The RTCK Signal does not respond.

иголку на 12-ю площадку - и не отпуская - нажимаем на Analize JTAG Chain - в ответ тоже самое
иголку на 14-ю площадку - и не отпуская - нажимаем на Analize JTAG Chain - в ответ тоже самое
Ни разу tck не прошло а значит trst это не 2я площадка. Пробуем 9ю площадку - перепаиваем trst от бокса на нее и снова 3 раза ищем tck дотрагиваясь иголкой на 10, 12 и 14 площадки. Снова неудача.

Осталось припаять trst на 13-ю площадку и снова повторить 3 раза поиск tck - и опа! с первой попытки когда иголка была на 10-й площадке получаем:

Connecting to the target...ERROR
None was found.

Значит tck проходит на rtck и джитаг работает - теперь наверняка известны trst,rtck и tck (плюс tdo - почти 99% это 5 площадка, по крайней мене других вариантов нет). Теперь можно отпаять иголку и припаять tck напрямую на площадку 12.

Остается определить 2 сигнала: tms и tdi - это 12 и 14я площадки или наоборот, 14я и 12я. Для этого первой попыткой паяем tdi с бокса на 14ю, tms с бокса - на 12ю площадку, нажимаем Analize JTAG chain и получаем:

Connecting to the target...ERROR
None was found.

значит надо наоборот - tdi с бокса на 12ю, tms с бокса - на 14ю площадку. После этого снова жмем Analize JTAG chain и о чудо!

Connecting to the target...OK
Set I/O Voltage reads as 1.80V, TCK Frequency is RTCK

Following devices are found on the JTAG chain:
Device on TAP #0: ID = 0x4015E0E1, IR Length = 0x04 bits
Total IR length: 0x0004 bits

Все работает, осталось только найти оставшийся сигнал - NRST
Отметим на самой первой таблице с измеренными напряжениями уже известные сигналы:
1 - 0В
2 - 0В
3 - 3.77В
4 - 3.77В
5 - 0В - TDO
6 - 0В - RTCK
7 - 1.78В -
8 - 0В
9 - 0В
10 - 1.70В - TCK
11 - корпус
12 - 1.71В - TDI
13 - 0В
14 - 1.71В - TRST
15 - 4.93В
16 - 0В
17 - 0В
18 - корпус
19 - корпус

Сигнал сброса системы - активный при уровне 0, значит он должен быть в свободном состоянии равен уровню 1 (=1.8В). Здесь - это вообще исключает любые варианты, площадка которая удовлетворяет этому условию - только одна - 7я площадка. Паяем NRST с бокса на эту площадку. Дополнительно ставим в настройках софта - Target = ARM926 и TAP#=0 пробуем нажимать Reset the Target несколько раз подряд и действительно ресет работает, так как после каждого нажатия пишет что-то типа такого:

Resetting target...OK
STATUS: Target is halted.

R0 = 0x00000010 R6 = 0x00002020 R12 = 0x00004023
R1 = 0x60008000 R7 = 0x00000050 R13 = 0x78017D08
R2 = 0x00000024 R8 = 0x780004A4 R14 = 0x80002000
R3 = 0x000F4240 R9 = 0x00000000 R15 = 0xFFFF0020
R4 = 0x00000000 R10 = 0x00000004 CPSR = 0x000000D3
R5 = 0x00000000 R11 = 0x60008000

Sergey
06.09.2012, 18:08
Как пользоваться плагином QUALCOMM eMMC MBR/EBR Partitioning plugin
источник (http://faq.riffbox.org/index.php?action=show)
Что-бы запустить это плагин, проделайте следующее:
- Запустите программу RIFF Box JTAG Manager
- Выберите подходящего Производителя/Модель DLL (или что-то одно)
- Перейдите во вкладку "Useful Plugins"
- Выберите "eMMC Partition Table (MBR,EBR) Fullflash Image processing tool"
840
- Нажмите "Activate Plugin"
838
- Теперь Вы запустили плагин. Выберите тип читабельных имен разделов, которые Вы хотите использовать:
839

Есть два способа работы этого плагина:

Как загрузить структуру разделов:
- откройте образ файла прошивки
- нажмите "Load Image from file"

842

В этом примере, мы использовали частичный образ флэш-памяти. (256MB от HTC Desire HD)
Мы сейчас видим, структуру разделов:

843

У нас есть список разделов в настоящее время, и мы можем увидеть много информации - названия разделов (если назначены) начальный адрес, размер, и если раздел является активным или нет. Активный раздел это загрузочный раздел в телефоне, и он отвечает за порядок загрузки. В данной модели, эти загрузочные разделы:
- DBL (Initial Boot)
- OSBL (Radio Boot)
- SPL (HBOOT)Как сохранить структуру разделов в один файл, для использования с чистыми чипами:
Нажмите правой кнопкой мыши на любом из разделов что-бы попасть в контекстное меню:

845

Выберите "Save only eMMC Re-partition info". Так вы сохраните "partition table", которую можно использовать позже для пустых (стертых или новых) eMMC чипов.
Замечание
- сохраняйте этот файл только с исправных образов fullflash.Как проверить пустые разделы:
Для сокращения времени прошивки телефона, Вы можете проверить есть ли пустые разделы, их пропуск сократит необходимое время. Или - в случае когда Вы анализируете образ прошивки с неисправного телефона, Вы увидите когда какие-нибудь разделы пустые.
После того как Вы выбрали образ прошивки, нажмите кнопку "Check for Blank". Образ прошивки будет проанализирован и показан результат в виде лога в том-же окне:

837Как сохранить один или все разделы в отдельные файлы:

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

845

Если вы выбрали сохранение всех разделов в отдельные файлы, надо указать префикс имени файла(ов). Это поможет Вам в будущем, когда вы захотите совместить их с файлами других моделей:

860

Файлы будут сохранены в следующей формате имени:
Префикс_стартовый_адрес_раздел_название.bin
Например:
HTC_Desire_HD_000005FC0000_P73_WLAN.binКак заменить один раздел внутри полной прошивки или отдельной части и сохранить как новый файл:
Нажмите правой кнопкой мыши на любом из разделов что-бы попасть в контекстное меню. Выберите "Inject Data from file into the "selected" partition"

845

В появившемся окне, выберите необходимый файл. В этом примере, мы будем использовать HBOOT для HTC Desire S, из пакета ROM.zip:

861

Как вы видите, можно использовать функцию фильтра открытия двух файлов.
- Binary files (*.bin)
- Any Files (*.*)
Этим способом, вы можете сделать образ прошивки из пакета RUU *.zip. Для примера у Вас есть модель которая официально не поддерживается, но вы можете подключить его с помощью JTAG или USB кабеля. Предположим что в телефоне только поврежден/стерт HBOOT, вы можете сделать полностью исправный образ прошивки.
Вы можете сохранить новый образ используя два способа:
- Сохранить как *riffpbin (сжатый образ прошивки)
- Сохранить как FullImageКак заново разметить новую или стертую eMMC, на любом из поддерживаемых процессоров:
Некоторые чипы памяти eMMC могут быть повреждены - во многих случаях они нуждаются в замене. Самые известные eMMC чипы это M4G2DE - можете сами в этом убедиться, набрав их маркировку в поисковике Google, результаты поиска в большинстве будут о проблеме. Этот чип eMMC был широко использован в первое время, в основном фирмой HTC устанавливался - HTC Desire S, HTC Desire Z, другие. Как только вы замените этот поврежденный чип, Вы должны выполнить две операции:
- Re-Partitioning
- Repair boot areas and security

Для Re-partition eMMC чипа, загрузите образ из прошивки full flash, или из ранее сохраненного partitioning файла, и просто нажмите "Re-Partition eMMC":

841
Как восстановить "кирпич" или частично поврежденное устройство на платформе поддерживаемых CPU

В зависимости от модели телефона и платформы, существуют различные списки разделов, которые будут восстановлены. В принципе, их можно разделить на несколько групп. В этом руководстве, рассматриваются следующие модели HTC Android:
HTC на основе MSM7230, MSM8255, MSM8255T, MSM8655, MSM8655T: (SnapDragon S2)
Boot разделы: (Обязательно)
- DBL
- OSBL
- SPL (HBOOT)
Android разделы: (Не обязательно)
- Recovery
- Boot
Security, calibration и hw_config info: (Надо прошить только если больше ничего не помогает, или в случае когда чистая/стертая eMMC)
- HTC
- MISC
- WLAN
- SPLASH1

HTC на основе MSM8260, MSM8660, APQ8060 и производные (SnapDragon S3)
Boot разделы: (Обязательно)
- DBL (SBL1)
- SBL2
- SBL3
- RPM
- TZ
- HBOOT
Android разделы: (Не обязательно)
- Recovery
- Boot
Security, calibration и hw_config info: (Надо прошить только если больше ничего не помогает, или в случае когда чистая/стертая eMMC)
- P5D (PGFS)
- ID
- WLAN
- P76_MISC
- HTC
- SPLASH1

Для этого загрузите образ исправной прошивки, или образ сделанный из кусков разделов и файлов из RUU пакета.
Выберите нужные разделы двойным щелчком мыши по разделу списка:

916

Как вы видите, выбранные разделы помечаются символом "+". Теперь нажмите кнопку "Flash Selected" и дождитесь завершения операции. Предполагая, что только загрузочные разделы были повреждены, после чего вы сможете ввести телефон в режим hboot и обновить ROM телефона с помощью RUU прошивки.

Sergey
16.09.2013, 16:30
Как восстанавливать Samsung baseband и IMEI
источник (http://forum.gsmhosting.com/vbb/f634/riff-jtag-how-repair-samsung-baseband-imei-2-a-1661209/)

Пошаговое руководство по восстановлению "Null Imei", "Unknown BaseBand", "Low Signal" и других проблем связанных с EFS. В зависимости от модели, указан правильный порядок действий.

SGH-I9003 Galaxy SL
----------------------------------------------------
Первый способ: Плагином

1735

Инструкция:

1) Откройте "Full Dump File" в окне "Source Image File Name"
2) Нажмите "Make Partition From File"
3) Кликните два раза на 3 разделе "Это раздел EFS"
4) Нажмите "Flash Selected"

-------------------------------------------------------------
Второй способ: Через вкладку Dcc Read/Write

1734

Инструкция:

1) Выберите "Speed"
2) Выберите модель "I9003". Если будут какие-нибудь ошибки, выберите версию Iram.dll.
3) Установите "Start Address" "Data Length"

Start Address : "0x0000 0008 0000"
Lentgh : "0X0000 00A8 0000"

4) Снимите выбор с 3 опций ... Выберите "Rom1"
5) Откройте "Full Dump file" в окне "Main"
6) Выберите "Use Adress as Offset xxxxxx"
7) Нажмите "write"
----
После записи, проверьте состояние телефона, если IMEI стал "0044xxxxxx" - ваша проблема решена.SGH-I9100 Samsung Galaxy SII
----------------------------------------------------
Первый способ:

1728

Инструкция:

1) Выберите "Speed"
2) Выберите модель "I9100"
3) Установите "Start Address" "Data Length"

Start Address : "0x0000 0040 0000"
Data Lentgh : "0X0000 0140 0000"

4) Снимите выбор с 3 опций ... Выберите "Rom1"
5) Откройте "I9100_EFS.bin" в окне "Main"
6) Выберите "Use Adress as Offset xxxxxx"
7) Нажмите "write"

Скачать I9100_EFS.Bin можно здесь:
I9100_RIFF_EFS.7z (32.1 Кб)
-------------------------------------------------------------
Второй способ: ( Запись efs из дамп файла )

* Обратите внимание: Размер дампа не имеет значения....Таким образом, пользователь может использовать любой размер, больше чем 128MB...
Это означает, что вы можете использовать 128MB,256MB,512MB,1GB,----16GB

1729

Инструкция:

1) Выберите "Speed"
2) Выберите модель "I9100"
3) Установите "Start Address" "Data Length"

Start Address : "0x0000 0040 0000"
Data Lentgh : "0X0000 0140 0000"

4) Снимите выбор с 3 опций ... Выберите "Rom1"
5) Откройте "Dump File" в окне "Main"
6) Снимите выбор "Use Adress as Offset xxxxxx"
7) Нажмите "write"SGH-N7000 Galaxy Note
----------------------------------------------------
Первый способ:

1730

Инструкция:

1) Выберите "Speed"
2) Выберите модель "N7000"
3) Установите "Start Address" "Data Length"

Start Address : "0x0000 0040 0000"
Data Lentgh : "0X0000 0140 0000"

4) Снимите выбор с 3 опций ... Выберите "Rom1"
5) Откройте "N7000_EFS.bin" в окне "Main"
6) Выберите "Use Adress as Offset xxxxxx"
7) Нажмите "write"

Скачать "N7000_EFS.Bin" можно здесь:
N7000_RIFF_EFS.7z (14.8 Кб)
---------------------------------------------------------------------------
Второй способ: ( Запись efs из дамп файла )

* Обратите внимание: Размер дампа не имеет значения....Таким образом, пользователь может использовать любой размер, больше чем 128MB...
Это означает, что вы можете использовать 128MB,256MB,512MB,1GB,----16GB

1731

Инструкция:

1) Выберите "Speed"
2) Выберите модель "N7000"
3) Установите "Start Address" "Data Length"

Start Address : "0x0000 0040 0000"
Data Lentgh : "0X0000 0140 0000"

4) Снимите выбор с 3 опций ... Выберите "Rom1"
5) Откройте "N7000_EFS.bin" в окне "Main"
6) Выберите "Use Adress as Offset xxxxxx"
7) Нажмите "write"

Sergey
01.11.2013, 01:15
Описание работы во вкладке - DCC Read/Write
источник (http://faq.riffbox.org/content/9/59/en/jtag-manager-_-dcc-read_write-tab.html)

Руководство описывает вкладку DCC Read/Write в оболочке RIFF JTAG, и содержит разделы:

DCC Read/Write TAB функции и описания кнопок
1804
Как вы видите интерфейс вкладки DCC Read/Write разделяется на несколько секций:
- окно просмотра журнала операций (не нуждается в описании)
- область прогресс бара (не нуждается в описании)
Раздел открытия файла(ов) и установок:

2173
Поле Main файла:
Используется для всех типов памяти (NAND, NOR, eMMC). Чтобы открыть файл, отметьте флажок и нажмите "..." которое запустит диалоговое окно открытия файла.

2174
Выбранный файл будет открыт в главной области и использоваться в операциях записи флэш:
2175

Поле Spare файла:
Используется только для флэш-памяти NAND. Все файлы RIFF NAND уже содержат Main и Spare данные объединенные в одном файле, так что это поле будет использоваться только в том случае, у вас есть собственный Spare файл. Для обычных операций RIFF это поле не используется.

Описание установок:
- Используется образ файла (Main + Spare объединены в одном файле)
2172

Эта опция может быть использована только с NAND файлами, ранее считанными с рабочего устройства. Подходят только RIFF файлы!
В приведенном выше примере "Radio_boot.bin" файл содержит как Main и Spare данные, объединенные в одном файле.

- Использовать адрес как смещение в файлах
Эта опция должна использоваться в случае, если Вам нужно записать определенный диапазон адресов для полного или части образа прошивки.
Например, у вас есть полный образ прошивки, и вы хотите записать диапазон от 0x000 0020 0000 и длина 0x0000 0001 0000 на устройство. Таким образом, Вы можете "клонировать" сектора от одного устройства на другое, без траты времени на прошивку полного образа флеши.
Как прочесть full flash из устройстваКак записать full flash в устройствоКак стереть full flash устройства

LuzerGSM
22.02.2017, 01:11
Эх ещё бы прикрепить написаное,тхт файлом,будеть здорово).