Цитата(Diz)
На всякий случай - SCSI-команда VERIFY(10) реализована (хотя бы в виде заглушки) ? Винда ее хочет при форматировании, хоть она и не обязательна по стандарту.
VERIFY(10) реализована была, и корректно работала.
Цитата(Alex11)
При форматировании винды проверяют, что написалось в mass storage. Если не совпадает - идет отлуп. Поставьте сниффер и смотрите логи, или, если есть такая возможность, смотрите логи изнутри устройства, нет ли там неотработанных команд или ошибки в данных.
Да, так и оказалось. После долгого и вдумчивого изучения логов от сниффера и из уарта прибора обнаружил, что некоторые блоки флэш неправильно пишутся. Я кое-что недоглядел когда тестировал функции работы с флэш. Исправил ошибку, форматирование заработало.
Большое спасибо всем откликнувшимся.
PS
Пока сниффил встретил непонятную вещь. USBtrace почему-то не показывает большие (в данном случае 512 и т.д.) OUT пакеты. Короткие (типа CSW,CBW) показывает. IN показывает все нормально. Фильтр был отключен.
Пришлось достать из закромов sniffusb - он показывает все нормально. Это и помогло понять причину.