128 [MB] NANDフラッシュ(4ビットECC)を使用して、openwrt環境で1 [MB]フラッシュをJFFS2 FSにマウントしようとしています。
私は次の順序を使用しています -
flash_eraseall -j dev/mtd6
mount -t jffs2 -o noatime /dev/mtdblock6 /NAME_OF_MOUNT
このシーケンスを実行すると、インストールが完了したように見え、アクセス、読み取り、書き込みができます。
設置場所に移動します。
システムを再起動すると問題が発生しました。起動プロセス中に次のメッセージが表示されました。
jffs2: mtd->read(0x800 bytes from 0x60000) returned ECC error
jffs2: notice: (667) read_dnode: wrong data CRC in data node at 0x00060000: read 0xf7a2ee2c, calculated 0x2f2a8b04
また、mkfs.jffs2を使用してnvm.jffs2ファイルを作成し、要求されたパーティションに書き込んでみましたが、問題は解決しません。
どんな考えやアイデアにも感謝します。
よろしくお願いします!
ベストアンサー1
問題の原因はクリアマーカーです。
インストール中、ブロックの先頭に透明マーカーが設定されます。
ただし、ブロックに書き込むと、oobデータはブロックの末尾に追加されます。
したがって、クリアマーカーが含まれていないため、誤ったCRCデータ報告が発生します。
Fast WAは起動時に各フラッシュブロックにClearmarkerを1回書き、Clearmarkerを書き込むことです。
ここに追加すると、すべてがうまく機能します。