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

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


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

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

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

test

  • Гость

вот еще картинка.
подпаялся, перефлешил, затер мибиб. модем опять в enprg.

forth32, попробуй базовый адрес для мдм6600 0х70000000
Записан

carver

  • Новичок
  • *
  • Благодарность: +2/-0
  • Оффлайн Оффлайн
  • Сообщений: 33
  • Город: kiev.ua
  • Модем: MR1100
  • Провайдер: +380 50 387 0735

написатель софта юморист). команду QCOM fast download protocol host он обозвал как hello).
все верно, и стоит извинится перед автором qtools, и psas/qmat
тем более написать им спасибо за потраченное время.

QCOM fast download protocol host - это и есть hello в QCOM терминологии, для чего все и пишут софт.

/*==========================================================================

  This function handles the *hello command* packet and transmits the
  appropriate response packet. It sets a flag to indicate that flash driver
  commands could be processed after validating the hello packet.

===========================================================================*/

int handle_hello (incoming_t buffer)
{
  static const byte host_header[] = "QCOM fast download protocol host";
  static const byte target_header[] = "QCOM fast download protocol targ";
« Последнее редактирование: 13 Апреля 2015, 00:43:20 от carver »
Записан
/carv

Mr.Alex

  • WhatsApp: 066-2552121
  • Модератор форума
  • *
  • Благодарность: +1457/-0
  • Оффлайн Оффлайн
  • Сообщений: 10739
  • Город: Kharkiv city
  • Модем: вже немає
  • Провайдер: сусіди
  • Тариф: краду в них
  • Антенна: через WiFi
  • Раздаю БАНаны, налетай! Ночной и злой модератор.

все верно, и стоит извинится перед автором qtools, и psas/qmat
извиняюсь, если обидели чем.. уверен, что высказано это было не со зла, а в шутку. "hello" встретил в ревскиле и улыбнулся, а положительная эмоция никогда не бывает во вред. :))
тем более написать им спасибо за потраченное время.
вне сомнения, огромное спасибо и мегареспект за проделанный труд, который облегчает жизнь другим и вдохновляет на дальнейшее саморазвитие! ::)

test

  • Гость

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

forth32

  • Гость

mf667 ENPRG.
изначально QDloader 9008 - 05c6:9008.
потом порт 16 (см. рис) закрывается и появляется другой по номеру порт 19d2:9008.
execute не срабатывает. 7e05 в ком. строке сторонней софтины возвращается с ошибкой.


А, вот оно как... Все дело в том, что я работаю только под линуксом, с виндой почти никогда в жизни дела не имел, и эти проблемы мне не совсем понятны. Под линуксом порт всегда садится на /dev/ttyUSB0 и проблем не возникает. Я уже выше показывал, как выглядит процесс загрузки в модем MF667 под линуксом. А тут, в винде, разве нельзя сделать, чтобы USB-Serial устройству назначался конкретный номер COM-порта? Вроде мне VVE говорил что можно, но из его объяснений я мало что понял из-за полного незнания виндовой специфики.

Можно проводить загрузку по частям. Вначале запустить qdload без ключа -i то есть только загрузить загрузчик, без инициализации. И далее начинать работать с любой утилитой. С недавних пор любая утилита из комплекта автоматически инициализирует загрузчик (командой hello 01), если это не было сделано ранее.

Насчет записи через qwdirect в модемы с чипсетами 8200 и 9x00. Я нашел и уже исправил достаточно серьезную ошибку - оказалсь, эти чипсеты не поддерживают режим процессора Thumb-2. Поэтому пришлось переписать код на ARM. В репозитории уже лежат обновленные исходные тексты и исправленные загрузчики. Советую перескачать и пересобрать утилиты - и тогда запись на модеме mf667 заработает.

да, ENPRG9x00 пока нет, я так понимаю)...


Так никто и не заказывал :) Если надо - сделаю. Просто автоматизировать процесс патча загрузчиков не получается, уж больно они все разные. Приходится каждый грузить в IDA и разбирать. Так что я их делаю вручную, и только по мере необхдимости.
Записан

forth32

  • Гость

от еще картинка.
подпаялся, перефлешил, затер мибиб. модем опять в enprg.
Ну, вот это как раз типичное поведение загрузчика, пытающегося выполнить код Thumb-2 на неподдерживаемом процессоре. Я все это уже исправил - теперь будет работать. Только не забудь перескачать и пересобрать утилиты из последних исходников!

forth32, попробуй базовый адрес для мдм6600 0х70000000

ОК, я добавил в утилиты новый чипсет MDM6600 с кодом 4 ( -k4 ). Теперь надо, чтобы кто-нибудь его опробовал. У меня нет ни одного устройства на таком чипсете.
Записан

forth32

  • Гость

int handle_hello (incoming_t buffer)

Это что - исходники какого-то загрузчика?
А на остальное можно глянуть?
Записан

test

  • Гость

forth32, клёво, опять ты че-то наваял). обязательно сегодня заюзаю, но чуть позже. открыл сезон, 35км на веле с заездом рыбку попугать). ноги болят, опа болит, но настроение супер)))...

mf667 enprg.
изначально QDloader 9008 - 05c6:9008 (порт 16).
потом порт 16 (см. рис) закрывается и появляется другой по номеру порт (17) 19d2:9008.
после "отсылка хелло ок" порт сбрасывается опять на 16.
процесс останавливается, но аварийного завершения программы уже нет.
« Последнее редактирование: 13 Апреля 2015, 21:16:13 от test »
Записан

sand_rey

  • Модератор
  • *
  • Благодарность: +165/-0
  • Оффлайн Оффлайн
  • Сообщений: 575
  • Модем: MiFi8000
  • Провайдер: lifecell
  • Тариф: Гаджет роутер
  • Антенна: Antex ZETA-F mimo

ОК, я добавил в утилиты новый чипсет MDM6600 с кодом 4 ( -k4 ). Теперь надо, чтобы кто-нибудь его опробовал. У меня нет ни одного устройства на таком чипсете.

я вот пока что только пару раз смог проверить на модеме с 6600.после qdload с ключами -a 00800000 -i loaders\NPRG6695p.bin -d20 после инициализации загрузчика порт отключается и появляется неизвестное устройство ZTE WCDMA Technologies MSM(USB\VID_19D2&PID_0016)
потом на этот порт попробовал(на скрине) qrflash с ключами -s@ -x
Записан

forth32

  • Гость

изначально QDloader 9008 - 05c6:9008 (порт 16).
потом порт 16 (см. рис) закрывается и появляется другой по номеру порт (17) 19d2:9008.
после "отсылка хелло ок" порт сбрасывается опять на 16.

Ну, вообщем, понятно. Это действительно чисто виндовая проблема, под линуксом не встречающаяся, которую я даже не знаю как красиво решить. Я так понимаю, здесь использован какой-то скрипт? Я думаю, инициализацию загрузчика можно делать так:

qdload -p16 -k1 -a100000 -d10 loaders/NPRG8200p.bin
qcommand -p17 -k1 -c "c i"

Видимо, что-то похожее и у тебя в скрипте есть. Только непонятно, почему qcommand виснет после обмена по протоколу Hello. Он дальше должен выкатить информацию о параметрах флешки:
forth32@core:~/zte/qtools$ ./qcommand -k1 -i
 Отсылка hello...ok
 Флеш-память: Elite Semiconductor ESMT_FM6AD1G12A, NAND 128MiB 1,8V 8-bit
 Версия протокола: 3
 Максимальный размер пакета: 1024 байта
 Размер сектора: 512 байт
 Размер страницы: 2048 байт (4 секторов)
 Размер OOB: 64 байт
 Тип ECC: R-S, 4 бит
 Общий размер флеш-памяти = 1024 блоков (128 MB)
Записан

forth32

  • Гость

потом на этот порт попробовал(на скрине) qrflash с ключами -s@ -x

Для этого чипсета надо еще ключ -k4 добавить, иначе работать не будет, а будет вешать загрузчик намертво.
Записан

test

  • Гость

кумат с твоим лоадером флешку отдает
7E 02 51 43 4F 4D 20 66 61 73 74 20 64 6F 77
6E 6C 6F 61 64 20 70 72 6F 74 6F 63 6F 6C 20 74
61 72 67 03 02 00 04 00 00 00 00 00 00 12 48 59
4E 49 58 5F 48 59 32 37 53 46 30 38 31 47 32 41
64 00 80 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00
00 00 10 00 09

~QCOM fast down
load protocol ta
rg



HYN
IX_HY27SF081G2Ad


Bootloader running ....
Found NAND : HYNIX_HY27SF081G2A
Записан

forth32

  • Гость

кумат с твоим лоадером флешку отдает
И qcommand должен ее отдавать. То, что он этого не делает - странно. Я могу предположить следующее:
- ты забыл указать ему ключ -k1. посмотри в своем запускающем скрипте, точно ли он указан.
- используешь старую версию утилиты. Дело в том, что я сам не собираю виндовых exe-файлов, поскольку винды у меня нет, а под линуксом этого не сделаешь. Те EXE-файлы, которые лежат в репозитории, собирает мой коллега, известный здесь VVE. Он это делает достаточно регулярно, но не всегда, в результате на данный момент исходники в репозитории гораздо новее собранных exe-файлов.
Записан

test

  • Гость

к1  то точно, а вот ехе-шники я не пересобирал...
у тебя vs 2012, используется, вроде. а у меня хр-шка. 2012 не становится, а 2010 ругается.
Записан

forth32

  • Гость

у тебя vs 2012, используется, вроде. а у меня хр-шка
vs - это в смысле visualstudio, система сборки? Тут я не вкурсе - порт утилит на винду не я делал, а vve. Я их умею собирать только под линукс.
Ну, будем надеяться, что сегодня ночью vve пересоберет утилиты. Еще раз, давай проверим. Если загрузить NPRG так:

qdload -p16 -a10000 -k1 -d10 loaders/NPRG8200p.bin

А потом запустить qcommand так:

qcommand -p17 -k1 -c"c i"

То он только отсылает hello и на этом виснет?
Записан