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

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


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

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

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

sej

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

чтот запредельно невразумительное (
Download mode port #: 20

 Загрузка файла loaders\ENPRG8200p.bin
 Адрес загрузки: 58020000
 Размер файла: 162084
 Загружено: 162084
 Запуск загрузчика...ok
 Отсылка hello... hello возвратил ошибку!
00000000: 15 01 51 43 4f 4d 20 66 61 73 74 20 64 6f 77 6e  *..QCOM fast down*
00000010: 6c a8 8b 7e                                      *l..~            *

 Отсылка hello... hello возвратил ошибку!
00000000: 15 01 51 43 4f 4d 20 66 61 73 74 20 64 6f 77 6e  *..QCOM fast down*
00000010: 6c a8 8b 7e                                      *l..~            *

 #  адрес    размер   атрибуты ------ Имя------
00 0000000a  00000004  feffffff  0:SBL1
01 00000004  00000002  feffffff  0:SIM_SECURE
02 00000100  0000001e  ffffffff  0:FSBL
03 00000200  00000032  ffffffff  0:OSBL
04 00000bb8  0000012c  ffffffff  0:AMSS
05 00000bb8  0000012c  ff00ffff  0:DSP1
06 00004e20  000007d0  ff00ffff  0:DSP2
07 00013880  0000157c  ffffffff  0:EFS2QDSP
08 00001388  0000012c  ffffffff  0:NVBAK
09 ffffffff  0000ffff  ffffff01  0:EFS2

 Загрузчик не поддерживает команду 05:

 cmdbuf: 00000000: 05 00 20 00 a0 a0 04 00 51 29                    *.. .....Q)
     *

 ответ : 00000000: 14 05 00 20 00 a0 a0 04 00 51 29 89 64 7e        *... .....Q)
.d~  *

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


скрипт @echo off
set /p dlpnum="Download mode port #: "
qdload -k1 -a58020000 -p 20 -d50 -i loaders\ENPRG8200p.bin
qwflash -p 20 -k1 -m -s pt-mf667-w.bin -w 09:09-0-EFS2.bin
pause

сейчас ребутнусь под kali пробну
Записан

test

  • Гость

не работает у меня последний qwflash.

обычный скрипт:
Download mode port #: 16

 Загрузка файла loaders\ENPRG8200p.bin
 Адрес загрузки: 58020000
 Размер файла: 162084
 Загружено: 162084
 Запуск загрузчика...ok

Bootloader port #: 17

 secure mode...
! secure_mode() вернул ошибку: Invalid Command
Код ошибки = 00000005


 Ошибка входа в режим Secure mode


! [ERR]  вернул ошибку: Invalid Command
Код ошибки = 00000005

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

и с -m в конце:
Download mode port #: 16

 Загрузка файла loaders\ENPRG8200p.bin
 Адрес загрузки: 58020000
 Размер файла: 162084
 Загружено: 162084
 Запуск загрузчика...ok

Bootloader port #: 17

 #  размер1  размер2  атрибуты ------ Имя------  ------- Файл -----
00 00000000  0000000e  00ffffff  0:MIBIB           mf667_mibib.bin
01 0000000e  00000006  00ffffff  0:SIM_SECURE
02 00000014  00000003  00ffffff  0:FSBL
03 00000017  00000005  00ffffff  0:OSBL
04 0000001c  0000001b  00ffffff  0:AMSS
05 00000037  0000001b  0000ffff  0:DSP1
06 00000052  000000d8  0000ffff  0:DSP2
07 0000012a  000001d9  00ffffff  0:EFS2QDSP
08 00000303  000000b0  00ffffff  0:ZTEFILE
09 000003b3  0000002b  00ffffff  0:NVBAK
10 000003de  fffffc22  00ffff01  0:EFS2


! [ERR]  вернул ошибку: Invalid Command
Код ошибки = 00000005

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

sej

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

аналогично под форточкой
Записан

forth32

  • Гость

не работает у меня последний qwflash.
обычный скрипт:
Ты забыл проинициализировать загрузчик. То есть он запускается, но процедура hello нигде не выполняется - иначе было бы выведено сообщение об этом. Пока hello не отработает - загрузчик на все команды будет реагировать invalid command. Попробуй после загрузки загрузчика дать такую команду:
qcommand -k1 -p17 -c"i"
и только после этого уже запускай всякие qwflash.
Кстати, сейчас qwflash находится в процессе серьезной доработки. Я решил полностью выкинуть привязку к существующей карте разделов, чтобы порядок записи разделов можно было определять в командной строке.  Имена разделов для записи теперь также можно будет задавать прямо в ключе -w, то есть так:
-w 0:dbl.mbn:ALL
-w 1:efsmain.bin:EFS
и так далее. Иначе прошить все разделы просто не получается из-за несоответствия имен в карте разделов, и имен, передаваемых загрузчику в команде Open multi.
Думаю, завтра к вечеру я закончу эту доработку. Пока qwflash находится в промежуточном состоянии и не особо работоспособен.
Записан

forth32

  • Гость

Отсылка hello... hello возвратил ошибку!
00000000: 15 01 51 43 4f 4d 20 66 61 73 74 20 64 6f 77 6e  *..QCOM fast down*
00000010: 6c a8 8b 7e   

Это какой-то очевидный  бред. То есть загрузчик вместо ответа QCOM fast download protocol target выдает вот такой обрезок? Никогда в жизни такого не встречал и даже примерно не представляю, из-за чего это может быть. А если с другим модемом попробовать - тоже так будет?
И если в qcommand дать команду i или i s.
Записан

test

  • Гость

точно. а в предыдущих версиях qwflash была возможность инициализации?

теперь другая проблема. мибиб вытерт. партишина в нем нет, естественно.
Download mode port #: 16

 Загрузка файла loaders\ENPRG8200p.bin
 Адрес загрузки: 58020000
 Размер файла: 162084
 Загружено: 162084
 Запуск загрузчика...ok

Bootloader port #: 17

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

-- write # 0 : mf667_mibib.bin -
 secure mode...ok
 Отсылаем таблицу разделов...
 ошибка!
! send_ptable() вернул ошибку: Unknown error accepting partition table
Код ошибки = 00000007

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

test

  • Гость

не хочешь по партишину - натравим qwdirect).
процесс пошел, только никак не выберу число записываемых блоков. куда не ставлю -l - все время 400.
Download mode port #: 16

 Загрузка файла loaders\ENPRG8200p.bin
 Адрес загрузки: 58020000
 Размер файла: 162084
 Загружено: 162084
 Запуск загрузчика...ok

Bootloader port #: 17

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

 Запись из файла qmem.bin, стартовый блок 000, размер 400
 Режим записи: только данные, стандартный формат
 Блок: 0025   Страница: 25
Записан

forth32

  • Гость

точно. а в предыдущих версиях qwflash была возможность инициализации?

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

test

  • Гость

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

так и не понял по ключу -l. не могу указать нужное число блоков.

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

forth32

  • Гость

в том то и суть)... часто emergency возникает из-за прибитого мибиба. естественно, партишина нет, сравнивать не с чем. но вопрос то в том и заключается, как обмануть штатную процедуру. если есть готовый файл партишина, зачем шить всю флешку, если его (партишин), по-идее, можно выдернуть из файла и прошить ту часть прошивки, которая нужна)... хотя есть qwdirect. и тоже самое можно сделать и им.
Тогда нужно вначале записать только таблицу разделов через qwdirect. А потом уже будут нормально писаться разделы в qwflash. По-другому  никак. Или же все писать в qwdirect. Я именно так предпочитаю.
так и не понял по ключу -l. не могу указать нужное число блоков.
Завтра проверю. Мне сейчас просто не на чем.

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

test

  • Гость

только что жтагом полностью оживил до 2-х портов и лампочки. и вот думаю, как же лучше затестить.
плохо, что с -l не могу разобраться. уж учень долго всю влешку писать...
Записан

test

  • Гость

вытер уже скриптом мибиб из рабочего состояния.

qwdirect-ом сделал, как внизу. тоесть взял файлик 00-0-MIBIB.oob., показало длину е. в ключе тоже -l e. но когда беру фулл - показывает и пишет 400 с тем же -l e.

в-общем, мибиб записался и модем ожил)...

Download mode port #: 16

 Загрузка файла loaders\ENPRG8200p.bin
 Адрес загрузки: 58020000
 Размер файла: 162084
 Загружено: 162084
 Запуск загрузчика...ok

Bootloader port #: 17

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

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


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

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

forth32

  • Гость

так и не понял по ключу -l. не могу указать нужное число блоков.

Вот, наконец, проверил. У меня ключ -l отлично работает:
forth32@core:~/zte/qtools$ ./qwdirect  -l1 -fi ../mf667/fullflash/mf667full.oob

 Запись из файла ../mf667/fullflash/mf667full.oob, стартовый блок 000, размер 001
 Режим записи: сырой образ без расчета ЕСС
 Формат данных: 512+16
 Блок: 0000   Страница: 3f
forth32@core:~/zte/qtools$ ./qwdirect  -l3 -fi ../mf667/fullflash/mf667full.oob

 Запись из файла ../mf667/fullflash/mf667full.oob, стартовый блок 000, размер 003
 Режим записи: сырой образ без расчета ЕСС
 Формат данных: 512+16
 Блок: 0002   Страница: 3f

Так что я совсем не понял, в чем у тебя может быть проблема. Файл mf667full.oob - это как раз и есть фуллфлеш, который тут недавно выкладывали.
Записан

test

  • Гость

вот и я не понимаю, почему у меня длина определяется по файлу, а не по ключу.

-k1 -le -fi -b0  mf667_full_rawdump.bin

mf667_full_rawdump.bin - это не полный файл, а огрызок. в свойствах его длина - 25,0 МБ (26 304 512 байт).

вот, что пишет софтина:
Download mode port #: 16

 Загрузка файла loaders\ENPRG8200p.bin
 Адрес загрузки: 58020000
 Размер файла: 162084
 Загружено: 162084
 Запуск загрузчика...ok

Bootloader port #: 17

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

 Запись из файла mf667_full_rawdump.bin, стартовый блок 000, размер 0c3
 Режим записи: сырой образ без расчета ЕСС
 Формат данных: 512+16
 Блок: 0006   Страница: 15
размер 0c3

в предыдущем сообщении, если ты увидишь - длина записи тоже определялась длиной файла.
Записан

forth32

  • Гость

Все, я нашел ошибку. Оказалось, что я в обработчике значения ключа -l написал шаблон %i вместо %xЖ
  case 'l':
     sscanf(optarg,"%i",&flen);
     break;

Пока указывалсь маленькие десятичные числа - все работало. Как только появлялась буква - %i возвращает 0 и размер берется из файла. Вот такая забавная ошибка. Это, блин, так удачно, что я попал на этот форум! Вдвоем с vve все эти тонкости было невозможно оттестировать.

А у меня 667 модем сдох после заливки полного фуллдампа. Зажигает красную лампочку, но USB-соединение так и не поднимает.
Ты не в курсе, что можно замкнуть на плате, чтобы выйти в режим PBL-загрузки?
Записан