デバイス ツリーに依存するcustom_hardware用の動作するドライバーを開発しました。ドライバーは進化する可能性があるため、ドライバーをカーネルの一部にしたくありません (「カーネルの一部である」と言う場合、カーネルの作成中にカーネルと共にコンパイルされることを意味します)。
ここに私のdtsを垣間見ることができます:
custom_hardware: custom_hardware@0x41006000 {
compatible = "mfg,custom";
reg = <0x41006000 0x1000>;
#interrupt-cells = <0x1>;
interrupt-controller;
};
existing_hardware: existing_hardward@41004000 {
compatible = "mfg,existing";
reg = <0x41004000 0x1000>;
interrupt-parent = <&custom_hardware>;
interrupts = <0>;
};
existing_hardwareのドライバーは、既にカーネルでコンパイルされています ( existing_hardwareのドライバーは、カーネルの作成中にカーネルでコンパイルされています)。
私がやりたいのは、私のcustom_hardwareのドライバーを ramfs に追加し、カーネルが existing_hardware のドライバーの前に custom_hardware のドライバーをロードできるように することです。
existing_hardwareのドライバーはcustom_hardwareのドライバーのirq_domainからvirqを要求するため、これは重要です。irq_domainを取得するには、最初にcustom_hardwareのドライバーをロードする必要があります。
existing_hardwareのドライバーは、カーネル ブート シーケンスの初期段階で発生するように見えるデバイス ツリーのプローブ中に読み込まれることに注意してください。