私は現在、NANDフラッシュメモリをベースストレージとして使用する組み込みシステムを開発しています。 Bootloader + Kernel + rootfsはここに書かれており、NANDに関連する多くの問題に対してシステムをより強力にする方法を探しています。
現在、JFFS2の上にカーネルとrootfsパーティションがあり、ブートローダパーティションを保護する方法を見つけようとしています(私たちはSPLとU-Bootを使用しています)。
私たちのプロセッサはフラッシュメモリの最初の4つのブロックを自動的にチェックし、破損していないSPLイメージを得ることができます。しかし、U-Bootコードを確認しましたが、そのような機能を有効にする方法が見つかりませんでした。
U-Bootがサポートしていますか?そのために私のコードをハッキングしようとしましたが、これまで成功していませんでした。
長すぎます。:NANDに破損したU-Bootイメージがあるかどうかを検出し、その場合は他の破損していないパーティションから起動できるようにしたいです。
ベストアンサー1
通常、U-Boot SPLはECCを実行しますが、NANDを更新しません。しかし、これはあなたがすでに知っていると確信しています。
良い方法は、U-BootをNORに保存し、カーネル、FS、および冗長U-Boot環境変数をNANDに保存することです。
それではカーネルについてお話しましょう。以前のLinuxカーネルイメージ(uImage)は、CRC32チェックサムの方が弱いです。私は署名可能で設定可能なチェックサムアルゴリズムと他の便利な機能を含むfitImageを選択します。