アームベースのボード(wb45n)でUブートしているときに、手動で消去してから、ブロックに不良のマークを付けます。
U-Boot> nand消去0x0072000020000
NAND消去:デバイス0オフセット0x00720000、サイズ0x20000
0x720000での消去-100%完了。
OK
U-Boot> nand markbad 0x00720000
ブロック0x00720000が正常に不良としてマークされました
U-Boot> nand bad
>
デバイス0の不良ブロック:
00720000
私はソフトウェアを作成し、その過程で不良ブロックがスキップされているのを見ることができます。
NAND書き込み:デバイス0オフセット0x5e0000、サイズ0x16c0000
不良ブロック0x00720000をスキップ
23855104バイトの書き込み:OK
ソフトウェアの作成後、再起動しましたが、不良ブロックはありません。
U-Boot> nand bad
>
デバイス0の不良ブロック:
U-Boot>
自動的に修正されたようです。不良とマークする前にブロックを消去しないと、ソフトウェアを正常に作成できますが、カーネルの起動中に次のエラーが発生します(常にではありませんが):(このエラーメッセージが生成される理由はよくわかりません。説明は大歓迎です)
UBIエラー:scan_peb:PEB 175の不正なイメージシーケンス番号1748114077、予想される1578922167
カウンターヘッダーダンプの消去:
magic 0x55424923 version 1 ec 1 vid_hdr_offset 2048 data_offset 4096 image_seq 1748114077 hdr_crc 0x285278f
カーネルを起動しています...
Linuxの解凍...完了、カーネルの起動。
消去に追加:PEB 0、EC 0 UBIエラー:ubi_compare_lebs:サポートされていないオンフラッシュUBI形式
UBIエラー:ubi_attach_mtd_dev:mtd6の接続に失敗しました、エラー-22
UBIエラー:ubi_init:mtd6をアタッチできません
UBIFSエラー(pid 1):ubifs_mount:「ubi0:rootfs」を開くことができません。エラー-19
カーネルパニック-同期していません:VFS:ルートfsを不明にマウントできません-block(0,0)
私がやろうとしているのは、ボードをテストして、失敗する前に処理できる不良ブロックの数を確認することです。
不良ブロックをマークする方法は正しいですか?
不良ブロックが消えるのはなぜですか?
持続する不良ブロックをマークする方法はありますか?
最後のエラーはどういう意味ですか?
https://community.nxp.com/thread/334536#comment-453692
エラーは、ボードのフラッシュの問題に関連しています。つまり、次のとおりです。
新しい画像を誤ってフラッシュします-全体フラッシュを消去しません
新しい画像をフラッシュします。書き込みを行った消去ブロックのみを消去し、残りの消去ブロックは消去しません。
私はこれが起こっていると想像することができます
nand erase
を省略したか