Samsung снял с производства eMMC флешки, которые ранее устанавливались на imx6s/d sodimm модули.
Новые eMMC V5.0 и к сожалению, опубликованные версии ядра не знают о их существовании.
Потребуется внести небольшую поправку в драйвер MMC (обновлять из-за этого виртуальные машины на ФТП не вижу особого смысла), в файле drivers/mmc/core/mmc.c:
Пришлось поменять флешку устанавливаемую на SK-iMX6S-SODIMM-Ind (предыдущий партнамбер сняли с производства).
И снова повторилась эта история, только теперь "(card->ext_csd.rev > 6)" на циферку 8 заменить потребовалось, после чего, я решил вообще удалить это условие.
Эта тема получила продолжение (на этот раз с другой стороны).
Касается модулей выпускаемых с июня 2018 года!
Предистория.
Пришла очередная партия индустриальных eMMC флешек (партнамбер без изменений, их же до этого уже с годик ставили на модули), часть модулей (причем до 25%) либо не загружается после программирования, либо загрузчик выдает всякие "чудеса": ошибка файловой системы, ошибка чтения файла, ошибка контрольной суммы ядра и т.п. ...
В ходе разбирательств выяснилось, что дело не в "бракованности" флешек, а в "технологическом дрейфе" параметров буферов флешек - т.е. параемтры буферов флешек находятся в допуске, а параметры буферов процессора в загрузчике uboot не учитывают весь разброс.
Обращаю внимание!
Т.к. этот макрос определяет параметры буферов и для внешнего интерфейса SD карт (как показывает практика, uSD карточки очень к нему чувствительны), в загрузчике возможно перестанут работать внешние карты памяти. Во избежание этого, советую, создать отдельный макрос параметров буферов для внешнего интерфейса.
Еще хочу обратить внимание!
Эту процедуру (обновление параметров в загрузчике) нужно сделать в любом случае, даже если в вашей текущей партии Вы не наблюдаете описываемых выше эффектов, т.к. "эффект" может не меть свойства стабильного проявления!
Это изменение не повлияет на работоспособность загрузчика на модулях с предыдущими eMMC флешками.
Здравствуйте Павел!
Внес изменения как вы сказали запустил на компиляцию uboot. Командой ./uboot_rebuild.sh. Потом смотрю исходники которые поправил а там изменения затерлись. Как сделать так что бы изменения не перезаписывались. Откуда берутся изменения? Это наверное какая то папка configs но где она находится? Непонятно
Павел добрый день, я использую buildroot-2015.08-sk. Открыл файл drivers/mmc/core/mmc.c (длина 55735 байт, дата создания 28 дек. 2015г) и не нашел там строку:
if (card->ext_csd.rev > 6) {
Там в строке 543 есть условие:
if (card->ext_csd.rev >= 6) {
Для того чтобы работать с новыми eMMC флешками, я должен удалить условие в строке 543?