единственное чего не пойму - или ошибаюсь - префикс 7E и команда посылаются в порт раздельно.
Уже не раздельно - исправлено. Тоже мелкая, но неприятная ошибка...
а вот дальше все)...
Ты уточни - ты используешь патченный загрузчик или стандартный?
Если патченный - то так и должно быть. Дело в том, что программа первым делом проверяет загрузчик, записывая тестовый байт по адресу секторного буфера. Записался - патч работает. Не записался - считается, что патч в загрузчике не реализован и больше попыток записи не делается.
Так вот. Если для данного чипсета неправильно определен адрес контроллера NANDc, то будет произведена запись по несуществующему в системе адресу. А это приводит к трапу загрузчика - или полное зависание, или рестарт модема. Вот отсюда и все проблемы. Если нужно добавить чипсет в программу - добавляй его в таблицу чипсетов в qcio.c, и затем правильно указывай значение ключа -k под этот чипсет.
Для работы с непатченными загрузчиками в программе qdload предусмтрен режим упрощенной инициализации - только отрабатывается протокол hello, а параметры кнфигурации флешки не настраиваются. Это делается указанием ключа -s вместо -i.
Кстати, я нашел-таки на модеме MF667 волшебную точку, при замыкании которой на землю модем при включении выходит в режим PBL-загрузки. После чего я спокойно перезалил прошивку через qwdirect и все заработало.
Получается, что jtag для этого модема теперь вообще не требуется. qrflash/qwdirect его полностью заменяют.