コンテンツに応じてパーティションを設定したいと思います。システムの起動中に、フラッシュ領域にデータが含まれているかどうかを確認したいと思います。true の場合 - 読み取り専用または再書き込み可能にします。
U-boot シェルなしで自動的に作成したい...
Linux カーネル レベルでは、パーティション テーブルで静的にしか作成できません。U-bootでそれを行うことは可能ですか?
ヒントをありがとう。
更新: CmdLine と mtd_partition がチェックされました
2 つの可能性を確認しました: U-boot mtd-parts
U-Boot>
setenv mtdparts mtdparts=atmel_nand:2M@0x40000(u-boot),30M@0x200000(kernel),-@0x2000000(user),**0x20000@0x100000(u)**
U-Boot>
mtdparts
パーティションがいっぱいになった後は、パーティションは許可されません
残念ながら、テーブルにパーティションを追加することはできません。データがエリアに存在する場合、mtd4 を別のパーティションとして使用したいと考えています0x100000
。
カーネル mtd_partition テーブルで可能です。ただし、このテーブルは arch/arm... board ファイルで宣言されています (初期の起動段階)。このスタートアップ段階では、nand を読み取ることができません。nand ドライバーが提供する nand 読み取りインターフェースにアクセスできません。
更新: 解決策
すべてのヒントをありがとう。「芸術のないノイズ」のヒントに従って、u-boot の nand 領域を読み取り、さまざまなカーネル コマンド ライン引数を介して有用なパラメーターを送信することにしました。これは非常に柔軟です。他の一部のハードウェア構成はフラッシュに保存して、カーネルの初期化に使用できます。
カーネル パラメーターのキャッチは、次の方法で実行できますearly_param()
。