Использование одинаковых 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, но не пробовал их.