На плате при использовании основной Nand flash для работы происходят сбои загрузки. Кто-нибудь сталкивался с подобным или все используют microSD? LOG в приложении.
Плату как отключаете - просто питание убираете ? ubifs теоретически устойчива к сбоям питания но практически работу системы надо завершать корректно - halt или poweroff
Это проявляется и при корректном и при некорректном завершении работы.
+ в сборке STARTERKIT - завершение работы (poweroff) происходит без размонтирования томов и закрытия запущенных служб -> возможен обрыв записи на flash.
Вероятнее всего дело в количестве бедблоков в UBI разделе или косячках загрузчика ...
С год назад я изредка наблюдал подобные экземпляры (когда модуль могло зациклить на UBI: fixable bit-flip detected at PEB ... от загрузки к загрузке).
Сейчас перебрал все имеющиеся модули, ни одного с подобным эффектом не нашел, были некоторые с бедами, но там видимо всего один блок попадал и при первой загрузке загрузчик выдавал:
Судя по вашему логу, их попадается 3 и видимо от этого у него что то "съезжает" ...
Вероятнее всего увеличение объема загрузочного раздела приведет загрузчик в чувства.
Но все-таки правильнее будет пробовать новое ядро 3.10.17, субъективно, эти NAND работают в нем на порядок быстрее (видимо серьезно переработан механизм кеширования блоков) и монтирование UBI как в загрузчике, так и в ядре происходит "махом", так что если нет особых претензий к скорости загрузки (лишние пара секунд) - можно будет грузиться с основного раздела.
Дело не в количестве бэдблоков а в кривой реализации поддержки MLC NAND в MTD, так как в убуте просто урезаная копия ядреной MTD - отсюда все те же проблемы + свои "тараканы", например при монтировании ubifs если есть бэдблоки убут убивает таблицу бэдов которую создало ядро пытаясь "исправить" ошибки хотя в режиме только чтение он должен просто пропустить блок который посчитал неисправным.
Вот это уже плохо звучит. это означает, что загрузчик портит корректирующую информацию, есть возможность это исправить? Новое ядро как раз над этим работает?
Помнишь, когда уперлись с MLC NAND при отладке imx6q, в итоге просто отключили использование таблицы бедов (непосредственно с nand проверяет блок) ... может в u-boot есть такая же "кнопка" ...
Помню - только наоборот, таблица хранится в nand, а при старте OOB не сканируется. У MLC очень большой размер erase block страниц и в OOB просто не остается места для статусной информации - она вся занята кодом для коррекции ошибок.