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

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


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

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

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

test

  • Гость

не могу понять смысл тестирования загрузчиков, если не работает сам алгоритм чтения, да и записи, наверное.
nprg6695p работает, qtools читать флешку не хочет.
кстати, при попытке закоротить в эмерженси модем стал HS-USB Diagnostics 900E. не qdload. может ли это быть причиной некорректной отработки ENPRG6695p?
Записан

forth32

  • Гость

nprg точно смогу проверить, enprg - пока вряд ли получится.

Тогда можно проверять. Загрузчики запатчил, положил в репозиторий, в loaders/, под такими именами:

-rw-rw-r-- 1 forth32 forth32 154288 мая   14 08:38 ENPRG6695_GOBI3000_p.bin
-rw-rw-r-- 1 forth32 forth32 199712 мая   14 08:38 NPRG6695_GOBI3000_p.bin

Может быть, эти загрузчики постабильнее будут работать.
Записан

forth32

  • Гость

не могу понять смысл тестирования загрузчиков, если не работает сам алгоритм чтения, да и записи, наверное.
nprg6695p работает, qtools читать флешку не хочет

Так ведь алгоритм-то одинаковый для всех загрузчиков. Если регистры чипестов одинаковые, то должно работать везде, если загрузчик правильно предоставляет доступ к регистрам чипсета.
Так что, получается, проблемы вылезают именно из-за неправильных загрузчиков.  Потому как на чипсетах 8200 и 9215 все работает совершенно правильно, я еще перед праздниками пару дней посвятил тестированию.

Или с 6600 такая же история, что и с 6800 - другой NAND-контроллер? Тогда, конечно, ничего не получится.
Записан

test

  • Гость

NPRG6695_GOBI3000_p на моем модеме не заработал. после отработки ОК - модем "ушел" из системы и ничем не вернулся.
NPRG6695p работает. но читает только первую страницу 0-2000. читает правильно, оказывается.
проверь, может подправишь?)
Bootloader port #: 23
 Отсылка hello...ok
 Чипсет: MDM6600  (70000000)
 Флеш-память: Hynix H8BCS0QG0MBP, NAND 128MiB 1,8V 16-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       = 00000002
* 010 NANDC_EXEC_CMD         = 00000000
* 014 NAND_FLASH_STATUS      = 00003020
* 018 NANDC_BUFFER_STATUS    = ffff0000
* 020 NAND_DEV0_CFG0         = aa5400c0
* 024 NAND_DEV0_CFG1         = 0004745e
* 028 NAND_DEV0_ECC_CFG      = 00000000
* 040 NAND_FLASH_READ_ID     = 5500b1ad
* 044 NAND_FLASH_READ_STATUS = 00000000
* 048 NAND_FLASH_READ_ID2    = 00000000
* 064 FLASH_MACRO1_REG       = 00000000
* 070 FLASH_XFR_STEP1        = 04e00480
* 074 FLASH_XFR_STEP2        = 45f0459b
* 078 FLASH_XFR_STEP3        = 85e08580
* 07c FLASH_XFR_STEP4        = d000d000
* 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

 Чтение блоков 00000000 - 000003ff
 Формат данных: 512+16
 Блок: 00000000
Записан

sand_rey

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

да,вырубается порт и не появляется после ОК
Найден блок идентификации загрузчика
Чипсет: MDM6600
Файл загрузчика: loaders\NPRG6695_GOBI3000_p.bin
Адрес загрузки: 00800000
Размер файла: 199700
Загружено: 199700
Запуск загрузчика...ok

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

NPRG6695p тоже читает только первую страницу(выше во вложении)
Записан

test

  • Гость

и регистры для сравнения с корректно работающим 8200.
Bootloader port #: 23
 Отсылка hello...ok
 Чипсет: MDM8200  (a0a00000)
 Флеш-память: Hynix HYNIX_HY27SF081G2A, 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             = 00000000
* 008 NAND_ADDR1             = 00000000
* 00c NAND_CHIP_SELECT       = 00000004
* 010 NANDC_EXEC_CMD         = 00000000
* 014 NAND_FLASH_STATUS      = 00000020
* 018 NANDC_BUFFER_STATUS    = 00ff0000
* 020 NAND_DEV0_CFG0         = a2d400c0
* 024 NAND_DEV0_CFG1         = 0004745c
* 028 NAND_DEV0_ECC_CFG      = 00000000
* 040 NAND_FLASH_READ_ID     = 1500a1ad
* 044 NAND_FLASH_READ_STATUS = 00000000
* 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 = 00000023
* 0ec NAND_ERASED_CW_DET_ST  = 00000000
* 0f0 EBI2_ECC_BUF_CFG       = 000001ff

 Чтение блоков 00000000 - 000003ff
 Формат данных: 512+16
 Блок: 000000bb
Записан

geoworld

  • Гость

Модем успешно запорот.
Этого я и боюсь.
какой тестпоинт замкнуть или напряжение подать
http://netobzor.org/forum/index.php?topic=10725.msg89839#msg89839
Кстати, у меня загрузчик nprg залился, на hello отзывается.
Просто записью образов убитых разделов с помощью qwdirect. Можно и фуллдамп записать таким же образом.
А можете выложить фулл mf677, желательно билайновский? В каком формате его писать? Какие разделы записать, чтобы модем определился как модем, и его увидела стандартная прога прошивки? И где собственно взять разделы и адресы, по которым их писать?


Модем в итоге поднял. Описание что и как тут не буду выкладывать дабы не портить бизнес программистам и ремонтникам, они время и силы потратили. Постучитесь в личку.
Записан

test

  • Гость

forth32, обнаружил еще одну интересную хрень. может, поможет тебе.

итак, 6600 в NPRG.

при запуске читает только первую страницу, как уже говорили.

но при вынимании модема в процессе работы проги появляется еще вторая страница в бинарннике.
тоесть, если изначально файл фулла имеет 8кб, то при вынимании модема он становится 16кб.
вторая страница тоже правильно считывается. лог при вынимании такой:
Bootloader port #: 23
 Отсылка hello...ok
 Чипсет: MDM6600  (70000000)
 Флеш-память: Hynix H8BCS0QG0MBP, NAND 128MiB 1,8V 16-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       = 00000002
* 010 NANDC_EXEC_CMD         = 00000000
* 014 NAND_FLASH_STATUS      = 00003020
* 018 NANDC_BUFFER_STATUS    = ffff0000
* 020 NAND_DEV0_CFG0         = aa5400c0
* 024 NAND_DEV0_CFG1         = 0004745e
* 028 NAND_DEV0_ECC_CFG      = 00000000
* 040 NAND_FLASH_READ_ID     = 5500b1ad
* 044 NAND_FLASH_READ_STATUS = 00000000
* 048 NAND_FLASH_READ_ID2    = 00000000
* 064 FLASH_MACRO1_REG       = 00000000
* 070 FLASH_XFR_STEP1        = 04e00480
* 074 FLASH_XFR_STEP2        = 45f0459b
* 078 FLASH_XFR_STEP3        = 85e08580
* 07c FLASH_XFR_STEP4        = d000d000
* 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

 Чтение блоков 00000000 - 000003ff
 Формат данных: 512+16
 Блок: 00000000
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 528 байт, получено 0

 Ошибка записи команды
 Ошибка записи команды
 Ошибка в процессе обработки команды чтения, требуется 4 байт, получено 0

прикрепляю в архиве 3 файлика:
- full.bin - первая страница, которая считывается.
- full1.bin - первая и вторая стр. вторая добавляется после выдергивания модема при запущенной проге.
- 1st.bin - для сравнения первый блок без спаре.

может, в процике чего резетить-сбрасывать надо? и будет нам счастие)))?
Записан

test

  • Гость

"Товарищи ученые! Не сумневайтесь, милые:
Коль что у вас не ладится - ну, там, не тот aффект, -
Мы мигом к вам заявимся с лопатами и с вилами,
Денечек покумекаем - и выправим дефект."

forth32, вон чел мр.алекс еще кнопку нашел в очередном модеме на 6600.
может, помочь чем? немножко ж осталось)))...
Записан

Mr.Alex

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

вон чел мр.алекс еще кнопку нашел в очередном модеме на 6600.
найти-то нашел, да вот поди - ну не "ладится" все никак.. перевел в QDLoad 9008, ревскилом "закинул" ENPRG6695p.bin, QPSTом "влил" партишн, дбл и осбл - стал типа "готов к приему апдейтера". запустил апдейтер, тот "прошелся" и.. очередной "трабл". выглядит это таким образом, поведение нумбер 1: подключаешь по юсб - "помаргивает" зеленым светодиод сети, вайфайный не светиться. в такт "помаргивания" - появляется и пропадает виртуальная сетевая карта в системе ("ты-дын"-"ты-дын"). и так где-то с минуту-две, а потом тело "сваливается" в "обычный" Q62xx-OSBL довнлоад мод с равномерным "миганием" зеленого светодиода сети и появлением двух интерфейсных портов - application & pc ui.. поведение нумбер 2: подключаешь к юсб - никакой реакции. абсолютно никакой. через две-три минуты типа "раздупляется" и.. "обычный" Q62xx-OSBL довнлоад мод с равномерным "миганием" зеленого светодиода сети и появлением двух интерфейсных портов - application & pc ui.. чего ему еще не хватает - хз. :'(

test

  • Гость

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

Сергей (интертелеком)Автор темы

  • Модератор 3G дилер
  • *
  • Благодарность: +425/-0
  • Оффлайн Оффлайн
  • Сообщений: 2516
  • Город: Одеса
  • Модем: разные
  • Провайдер: интертелеком-(представитель)
  • Тариф: дилерский
  • Готов помочь в любое врямя по возможности

нарыл у себя около 500 штук Huawei E182E там проц МДМ 8200
может ктото подскажет как с рабочего снять фул и повливать в нерабочие ?
Записан
Прошиваю модемы онлайн!
Подключаю к Интертелекому онлайн   CDMA iPhone 4 и iPad 2
На вооружении имеется -    DC-Unlocker.   DFS Evolution.   RIFF Box.   Omnia Repair Tool.   Medusa PRO Box.   Volcano box . Octoplus LG Tool + Samsung Tool.  InfinityBox. RBSoft Mobile Tool. MRT Box.  TL866. BST

Energizer

  • Гость

вот заголовочный кусок из  флешера под жилинк - который я писал для mdm6200 (6600)
по моему мнению он работает правильно - ниже конфиг с которым 128 метровая флеш работала корректно . отличий в адресации по сравнению с mdm8200 и выше для такой флеши точно нет.
(в регистрах конфига контроллера  по моему есть отличия - чуть другие значения -думаю в этом и проблема у кутулса...что именно отличается уже не помню а щита нет под рукой)
однако отличие в адресации с 64 метровой нандою может быть запросто.. столкнулся с иным способом адресации - когда писал флешер для  квалкомовских камней которые были до MDM --> QSC (6240\70 и 6055\85) однако мелкие нанды (менее 128 метров ), мне под MDM никогда не попадались..



Скрытый текст
#define ID_CORE_TARGET          0xB360E1
#define TARGET_NUM              0x0

#define NAND_CMD_SWRESET        0x1
#define NAND_CMD_PAGE_READ      0x33
#define NAND_CMD_PAGE_WRITE     0x36
#define NAND_CMD_PAGE_WRITE_ECC 0x37
#define NAND_CMD_BLOCK_ERASE    0x3A
#define NAND_CMD_ID_FETCH       0xB
#define NAND_CMD_STATUS_CHECK   0xC
#define NAND_CMD_RESET          0xD
#define EXEC                    0x1

#define NAND_FLASH_CMD          0x70000000
#define NAND_FLASH_ADDR0        0x70000004
#define NAND_FLASH_ADDR1        0x70000008
#define NAND_FLASH_CHIP_SELECT  0x7000000C
#define NANDC_EXEC_CMD          0x70000010
#define NAND_FLASH_STATUS       0x70000014
#define NAND_FLASH_READ_ID      0x70000040
#define NAND_FLASH_READ_STATUS  0x70000044
#define NAND_FLASH_BUFFER       0x70000100
#define NAND_DEV0_CFG0          0x70000020
#define NAND_DEV0_CFG1          0x70000024
#define FLASH_DEV_CMD_VLD       0x700000AC

//#define CONFIG_DEV0_CFG0        0xAAD400D7
//#define CONFIG_DEV0_CFG1        0x0004745D
[свернуть]

Скрытый текст
            if (nid==0xADB1||nid==0xADA1||nid==0xECB1||nid==0xECA1||nid==0x98B1||nid==0x98A1||nid==0xADBA||nid==0xECBA||nid==0x98BA||nid==0x98C1||nid==0xECC1||nid==0xADC1) { // сюда добавлять id новые с размером страниц 2048
                 printf("==    Type NAND  recognized  !!  == capacity 128 Mb - 16 bit \n");
                 printf("==    PageSize: 0x800, Page-per-Block: 0x40 ,Blocks-per-Device: 0x400\n");                                           
                 pages_per_block=0x40;  //  свойственно для флеша с размером 128M
                 page_size=0x800;
                 blocks_per_device=0x400;
                 nand_type=128;
                 CONFIG_DEV0_CFG0  =      0xAAD400D7;  //  думаю вот тут засада
                 CONFIG_DEV0_CFG1  =      0x0004745D;
                 y=0;    }
[свернуть]

запись адреса в регистры  как обычно..
Скрытый текст
        adreg=adrw << 16;
        memory_poke(NAND_FLASH_ADDR0,adreg,1); 

        adreg=(adrw >>16) & 0xff; ;
        memory_poke(NAND_FLASH_ADDR1,adreg,1); 
[свернуть]

со временем у меня совсем тяжко.. к компу попадаю редко ..
однако попробовать кутулс с этим чипсетом в планах есть ;-)
вот как то так..
« Последнее редактирование: 18 Мая 2015, 12:41:06 от Energizer »
Записан

forth32

  • Гость

Ну, вот какая-то конкретная инфрмация
CONFIG_DEV0_CFG0  =      0xAAD400D7;  //  думаю вот тут засада
Вполне может быть. Как я понимаю, на этих чипсетах загрузчик инициализирует этот регистр в aa5400c0? Тут есть существенная разница - параметр SPARE_SIZE_BYTES. В aa5400c0 он равен 4, а в  AAD400D7 он равен 5. Это важно.
В качестве эксперимента предлагаю попробовать почитать различные сектора флешки с помщью qcommand (команда r), предварительно записав одно, а потом и другое значение в регистр cfg0. И посмотреть, в каком случае будет читаться правильное содержимое сектора.
В остальном, как я понимаю, nand-интерфейс этих чипсетов аналогичен MDM8200 и 9x15. Так что qtools должен правильно работать с этими чипсетами.
Записан

Energizer

  • Гость

Что еще бросилось в глаза так это содержание регистра чипселект я привык видеть там 4 а не 2йку
Хотя судя по содержимому регистра нандайди чип нанда  контроллер видит - но встает вопрос может он id защелкнул раньше ??? А может сам чип разведен иначе- нужно глянуть в док - может рулить не получается именно по тому что команды даем не тому интерфейсу.. 
Я пока до компа добраться не могу - в инет лазию с айпадлы- так что не тестер ниразу  sk
Записан