Нетобзор - форум про интернет

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Автор Тема: qtools-набор инструментов для работы с flash модемов на чипсете qualcomm  (Прочитано 216676 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

test

  • Гость

работает, спасибо.

захотелось немножко потворить)...

есть модем, который почему-то не захотел обновляться штатным апдейтером.
дабы не лепить клонов по серийникам, названию вайфайки, паролю - захотелось пописать кусками, тоесть сделать свой безотказный апдейтер.
подпаялся жтаг-ом и начал запихивать прошивку кусками.
если модем никак не отзывался по порту - тем же жтагом и исправлял (не начел точку на плате).
в результате определился с необходимыми файликами.
в батнике для qtools сделал пометки
rem пишем amss 1c 1b
напихал кучку qwdirect-ов, прописал смещения, чтобы юзать только один фулл файл.
получилось)...
Download mode port #: 7

 Найден блок идентификации загрузчика
 Чипсет: MDM9x00
 Файл загрузчика: loaders\NPRG9x00p.bin
 Адрес загрузки: 00100000
 Размер файла: 247248
 Загружено: 247248
 Запуск загрузчика...ok

Bootloader port #: 56
 Отсылка hello...ok
 Чипсет: MDM9x00  (81200000)
 Флеш-память: Toshiba TOSHIBA, NAND 128MiB 1,8V 8-bit
 Версия протокола: 3
 Максимальный размер пакета: 1024 байта
 Размер сектора: 512 байт
 Размер страницы: 2048 байт (4 секторов)
 Размер OOB: 64 байт
 Тип ECC: R-S, 4 бит
 Общий размер флеш-памяти = 1024 блоков (128 MB)


* 000 NAND_FLASH_CMD         = 0008000b
* 004 NAND_ADDR0             = 00810000
* 008 NAND_ADDR1             = 00000000
* 00c NAND_CHIP_SELECT       = 00000004
* 010 NANDC_EXEC_CMD         = 00000000
* 014 NAND_FLASH_STATUS      = 00c03020
* 018 NANDC_BUFFER_STATUS    = 00ff0000
* 020 NAND_DEV0_CFG0         = a2d400c0
* 024 NAND_DEV0_CFG1         = 000c745c
* 028 NAND_DEV0_ECC_CFG      = 00000000
* 040 NAND_FLASH_READ_ID     = 1590a198
* 044 NAND_FLASH_READ_STATUS = 000000c0
* 048 NAND_FLASH_READ_ID2    = 00000000
* 064 FLASH_MACRO1_REG       = 00000000
* 070 FLASH_XFR_STEP1        = 00e00080
* 074 FLASH_XFR_STEP2        = 45f04599
* 078 FLASH_XFR_STEP3        = 81e08180
* 07c FLASH_XFR_STEP4        = c400c000
* 080 FLASH_XFR_STEP5        = c000c000
* 084 FLASH_XFR_STEP6        = c000c000
* 088 FLASH_XFR_STEP7        = c000c000
* 0a0 FLASH_DEV_CMD0         = 1080d060
* 0a4 FLASH_DEV_CMD1         = f00f3000
* 0a8 FLASH_DEV_CMD2         = f0ff7090
* 0ac FLASH_DEV_CMD_VLD      = 0000001d
* 0d0 FLASH_DEV_CMD3         = f0ff7090
* 0d4 FLASH_DEV_CMD4         = 00800000
* 0d8 FLASH_DEV_CMD5         = 00f30094
* 0dc FLASH_DEV_CMD6         = 000040e0
* 0e8 NAND_ERASED_CW_DET_CFG = 00000003
* 0ec NAND_ERASED_CW_DET_ST  = 00000033
* 0f0 EBI2_ECC_BUF_CFG       = 000001ff

 Запись из файла full.bin, стартовый блок 000,
 размер 00a
 Режим записи: сырой образ без расчета ЕСС
 Формат данных: 512+16
 Блок: 0009   Страница: 3f

 Запись из файла full.bin, стартовый блок 00a,
 размер 006
 Режим записи: сырой образ без расчета ЕСС
 Формат данных: 512+16
 Блок: 000f   Страница: 3f

 Запись из файла full.bin, стартовый блок 010,
 размер 003
 Режим записи: сырой образ без расчета ЕСС
 Формат данных: 512+16
 Блок: 0012   Страница: 3f

 Запись из файла full.bin, стартовый блок 013,
 размер 009
 Режим записи: сырой образ без расчета ЕСС
 Формат данных: 512+16
 Блок: 001b   Страница: 3f

 Запись из файла full.bin, стартовый блок 01c,
 размер 01b
 Режим записи: сырой образ без расчета ЕСС
 Формат данных: 512+16
 Блок: 0036   Страница: 3f

 Запись из файла full.bin, стартовый блок 037,
 размер 01b
 Режим записи: сырой образ без расчета ЕСС
 Формат данных: 512+16
 Блок: 0051   Страница: 3f

 Запись из файла full.bin, стартовый блок 052,
 размер 148
 Режим записи: сырой образ без расчета ЕСС
 Формат данных: 512+16
 Блок: 0199   Страница: 3f


 ---- ответ ---
00000000: 7e 0c 14 3a 7e                                   *~..:~           *

Для продолжения нажмите любую клавишу . . .
Записан

Energizer

  • Гость

напихал кучку qwdirect-ов, прописал смещения, чтобы юзать только один фулл файл.
получилось)...
- я тоже так примерно делал -только писал батник под житаг и им проливал нужные куски- однако припоминаю один нюанс- я по мимо правки данных с паролями и явками делал правку (пересчитывал коды Р-С) в поле ECC контроллера - или как там его зовут OOB (по онфи наверное- никак не привыкну)  .. без пересчета кодов в режиме записи сырого флеша результат был отрицательный.. так же пробовал делать правку только данных, а коды поручал считать самому контроллеру, используя режим с включенным движком ECC- reg - и так тоже получалось..
 вопрос - судя по логу вы писали сырой фулл - пришлось ли Вам править коды Р-С ??
или и так прокатило - что довольно странно у меня так не получалось -или сам считал и правил или контроллеру это поручал -но что бы и сам не правил и контроллер писал сырой не вышло ..
Записан

test

  • Гость
Записан

forth32

  • Гость

или и так прокатило - что довольно странн

А что странного? Если не менять данные сектора, то и ЕСС не изменится, чего ее пересчитывать?
Записан

test

  • Гость

forth32, клёвая штука у тебя получилась. для понимающего человека супер инструмент. спасибо еще раз).
но, от полного отказа жтаг-а еще далеко)... в случае, если "в воздухе зависнет" - нет портов и точки не знаешь - без проводков не обойтись. или экран припаян будет, где точки могут быть. хотя в том же novatel 5510 и экран припаян и распина jtag-а я пока не знаю...
Записан

forth32

  • Гость

Есть практически универсальный способ. Находишь флешку, и коротишь между собой любые 2 информационных сигнала, идущего к ней. То есть, любые 2 тонкие дорожки на плате, заходящие пoд флешку. Или даже любую одиночную тонкую дорожку на землю. Главное в питание не вдуться.

В результате PBL не может прочитать сигнатуру раздела mibib и вываливается в режим загрузки :)
Записан

test

  • Гость

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

хотя недавно одному юному форумному другу пытался восстановить телефон, так уж лучше потыкать, чем так паяться...
« Последнее редактирование: 22 Мая 2015, 21:35:19 от test »
Записан

Energizer

  • Гость

Цитата: forth32
А что странного? Если не менять данные сектора, то и ЕСС не изменится, чего ее пересчитывать?
Я так понял что test менял именно данные в секторах где записан имей есн и асес поинт... Я так понял его пост.
По поводу как вывалиться в данлоад мод из подвешенного состояния - по мимо корочения ног флеша или кварца иногда я сваливал мопед в пбл глитчем по питанию - микрик который коротит питание потребителя отключая питание от усби перекидным контактом . Как правило менее секунды - загрузчик начинает и сбиваем его - в такой методе плюс в том что и разбирать девайс не нужно вовсе.
Но в некоторых девайсах кондеров много и не прокатывает такой метод.
« Последнее редактирование: 22 Мая 2015, 21:40:24 от Energizer »
Записан

forth32

  • Гость

но вот картинка. в резюк возле флешки тыкал,

Судя по картинке, там еще как минимум 3 дорожки из-под флешки выходят. А если отогнуть центральный кружок - то, может, и еще найдется.
Я бы сделал так. Взял бы резистор ом в 100, одним концом припаял бы на землю, к другому - провод с иголкой. И потыкал бы вокруг флешки во все дорожки. А можно и в резисторы и конденсаторы вокруг главного чипа потыкать - бывает, волшебная точка находится в самом необычном месте.
Записан

test

  • Гость

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

Energizer

  • Гость

... Я подумал что вы делали после житага восстановление номеров с корпуса - я именно так и делал  :) и все получалось .
Записан

test

  • Гость

у нас гранаты немножко разных систем). у вас основной 550н. у нас 0, 550, 1943, их зеркала в др. нв, контрольки, соответствия номеров. менять флешированием ифс с правками - для меня большой изврат. эрайзом и восстановлением из бекапа (вот в бекапе можно править) либо переписыванием в диаге нв, но уже после флеширования, естественно.
я же, повторюсь еще раз, сделал апдейтер прошивки на qtools. который именно апдейтит прошивку, но не переписывает серийки, как это делает фулл при его полном пролитии.
Записан

test

  • Гость

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

Energizer

  • Гость

Не факт конечно но как понимаю нужно нажать подержать что бы девайс отключился потом отпустить и начать отсчет (до трех секунд) и нажать коротко еще раз( очень коротко) - свежие модели лте не пробовал но старые падали в данлоад более мение успешно. Сам сильно этим не увлекался статистики у меня нет но mf626 и mf100 так получалось перепрошить- идея видимо состоит в том что бы в модеме процесс загрузки пошел но сбился. На mf 30 прокатывал коротыш на кварце - причем порт появлялся иногда с приличной задержкой.
Записан

man

  • Новичок
  • *
  • Благодарность: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 8

А можно переделать файл загрузчика для 6085 из hex в bin для данной утилиты... имею модем zte ac2746 и в него нужно залить только amss. Надоело подпаивать риф к нему.
Записан