Linux カーネル バージョン 2.6.30 を実行する armv9 SOC を取得しました。複数の PHY デバイスに接続できる MAC レイヤーを処理する必要があります。いくつかの GPIO を有効にするように設定することで、実際に接続されているデバイスを選択できます。したがって、いつでも、物理的にイーサネット層に配線されている PHY は 1 つだけです (この時点では、他のすべての PHY は MDIO および MII/GMII バスに対して高インピーダンスを示すため、両方に影響を与えません)。
私の質問は、Linux カーネル層でこれを適切に処理する方法についてです。このトリックを実行するためのさまざまな方法を見つけましたが、それは汚れていて、美しい方法で処理されていないため、PHY/MAC ドライバーで醜い回避策に陥ります。
MACモジュールが挿入されたときに行われるように、MAC層PHYの「再検出」を再起動する必要があると思います。MAC レイヤー モジュールを挿入すると、実際の有線 PHY プローブが発生し、上位の MAC レイヤー ドライバーによって適切なドライバーが読み込まれます。
カーネルのレイヤーを処理する場所と、特定のケースでは、検出ルーチンを呼び出す方法と、MAC レイヤーで彼女を見つけることができる場所を考える方法についてアドバイスしていただけますか。
ありがとう