Linux で MTD の可視性を制御するにはどうすればよいですか?

Linux で MTD の可視性を制御するにはどうすればよいですか?

私は Linux を実行するボードで作業していますが、このボードには 2 つの NOR フラッシュ デバイスがあります。これらのデバイスはデバイス ツリーに記述されており、多数の MTD が /dev/ の下に表示されます。

しかし、実際に必要になるまで(アップグレード中)、NOR フラッシュ デバイスの 1 つから MTD を非表示にしたいと思います。

起動後にNORフラッシュからドライバをアンバインドし、必要に応じて再バインドできることが分かりました。しかし、そもそもバインドせずにシステムが起動できれば良いと思います。デバイスツリーを編集して設定してみました。ステータス="無効"そして、互換性があるどちらのアプローチも、NORフラッシュにドライバをバインドすることは不可能だったようです。(ドライバーオーバーライドノード。)

システムに許可させる方法はあるでしょうか?自分ドライバーをバインドするか、MTD を表示するタイミングを決定しますか?

答え1

属性compatibleはドライバーをデバイス (NOR フラッシュ コントローラー) に関連付け、statusデバイスに影響を及ぼします。
試したことで目的の結果が得られなかったのは当然です。MTD
パーティション定義が DT にある場合、表示したくないパーティションをコメント アウトするだけでは不十分ではないでしょうか。

ドライバーをバインドするタイミングをシステムで決定できるようにする方法はありますか?

はい、それがデバイスツリーの機能です。
ただし、あなたの状況では、デバイスではなくパーティションを扱う必要があります(1つのコントローラに2つのチップが接続されているため)
https://www.kernel.org/doc/Documentation/devicetree/bindings/mtd/partition.txt
MTDパーティションが定義されていない場合、デバイスノードは当然作成できません。/開発

関連情報