Использование одинаковых rootfs для разных ARM SOC

Я пытаюсь использовать пользовательское пространство, созданное для i.mx53, на идентичной плате с i.mx6. Плата i.mx6 отличается только используемым процессором. Я собрал новое ядро ​​и соответствующий DTB, я могу загрузить его с помощью Uboot, и он запускается нормально. Однако, когда я пытаюсь использовать rootfs, который у меня был для платы i.mx53, я получаю следующую ошибку jffs:

jffs2: inconsistent device description

которая имеет отношение к flash OOB, не содержащему достоверной информации. Я пишу rootfs во флэш-раздел с nand write.trimffs команда. Нужно ли как-то инициализировать OOB? Я не помню, как делал это на старой доске. Откуда может появиться эта ошибка?

1 ответ

Оказывается, контроллер i.MX6 NAND (драйвер gpmi) использует все пространство OOB для ECC, а JFFS2 не может разместить там свои маркеры. Возможно сообщить ядру более слабые требования к ECC на основе спецификации и использования чипа NAND fsl,use-minimum-ecc опция дерева устройств, чтобы сэкономить немного OOB. Тем не мение, u-boot похоже, не поддерживается такая переконфигурация ECC, и становится невозможным использовать NAND как в загрузчике, так и в Linux. Вероятно, лучший выход в этой ситуации - это отказаться от JFFS2 и использовать вместо этого UBIFS.

Примечание: я видел патчи JFFS2, которые не используют OOB, но не пробовал их.

Другие вопросы по тегам