こんにちは 、
私たちの潜在的なプロジェクトの一つにデュアルイーサネットを利用するために、Imx6ullプロセッサを搭載した2つのイーサネット物理線を接続しました。
一方のPHYはKSZ8081、もう一方のPHYはKSZ8041です。以下は当社のDTS構成です。
&fec1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet1>;
phy-mode = "rmii";
phy-handle = <ðphy0>;
phy-reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
phy-reset-duration = <26>;
phy-reset-post-delay=<20>;
phy-supply = <®_peri_3v3>;
ステータス = "正常";
};
&fec2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet2>;
phy-mode = "rmii";
phy-handle = <ðphy1>;
phy-reset-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
//phy-reset-gpios = <&gpio5 6 GPIO_ACTIVE_LOW>;
phy-reset-duration = <26>;
phy-reset-post-delay=<20>;
phy-supply = <®_peri_3v3>;
ステータス = "正常";
mdio {
#address-cells = <1>;
#size-cells = <0>;
ethphy0: イーサネット-phy@1 {
reg = <1>;
micrel、LEDモード = <1>;
クロック = <&CLKS IMX6UL_CLK_ENET_REF>;
クロックネーム = 「rmii-ref」;
};
ETHphy1: イーサネットphy@3 {
reg = <3>;
micrel、LEDモード = <1>;
クロック = <&clks IMX6UL_CLK_ENET2_REF>;
クロックネーム = 「rmii-ref」;
};
};
};
pinctrl_enet1: enet1grp {
fsl、pins = <
MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031
>;
};
pinctrl_enet2: enet2grp {
fsl、pins = <
MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0
MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031
>;
};
イーサネットの物理はカーネルログで検出され、イーサネットケーブルを接続するとリンクも検出されています。
しかしIPはKSZ8081物理に接続されているイーサネットに届き、IPはKSZ8084NLに接続されているイーサネットに割り当てられていません。
そして、イーサネットKSZ8041NL eth0でrxエラーが観察されます。以下のログは以下の通りです:
root@sls-IMX6ull14X14evk:~# ifconfig
eth0 リンク encap:イーサネット HWaddr BA:9C:69:1F:76:3A
UP放送マルチキャスト MTU:1500 メトリック:1
RXパケット:0 エラー:1065 ドロップ:0 オーバーラン:0 フレーム:1065
送信パケット数:65 エラー数:0 ドロップ:0 オーバーラン数:0 キャリア:0
衝突:0 TCキューレン:1000
RXバイト:0(0.0 B) TX バイト:12024(11.7 KiB)
eth1 リンク encap:イーサネット HWaddr 42:19:11:7F:5E:89
inet addr:10.20.0.184放送日時: 10.20.1.255マスク:255.255.254.0
inet6 アドレス: fe80::8248:9837:9647:2a00/64 スコープ:リンク
UP ブロードキャスト実行中 マルチキャスト MTU:1500 メトリック:1
受信パケット数:18 エラー数:0 ドロップ数:0 オーバーラン数:0 フレーム数:0
送信パケット数:23 エラー数:0 ドロップ数:0 オーバーラン数:0 キャリア数:0
衝突回数:0 txqueuelen:1000
RX バイト:2494 (2.4 KiB) TX バイト:3162 (3.0 KiB)
lo Link encap:ローカルループバック
インターネットアドレス: 127.0.0.1マスク:255.0.0.0
inet6 アドレス: ::1/128 スコープ:ホスト
UPループバック実行中 MTU:65536 メトリック:1
受信パケット数:17 エラー数:0 ドロップ数:0 オーバーラン数:0 フレーム数:0
送信パケット数:17 エラー数:0 ドロップ数:0 オーバーラン数:0 キャリア数:0
衝突回数:0 txqueuelen:1000
RX バイト:2011 (1.9 KiB) TX バイト:2011 (1.9 KiB)
root@sls-IMX6ull14x14EVK:~# ethtool eth0
eth0の設定:
対応ポート:[TP MII ]
対応リンクモード:10baseT/Half、10baseT/Full。
100ベースT/ハーフ 100ベースT/フル
サポートされる一時停止フレーム使用:対称
自動交渉を支持:はい
対応FECモード:報告されていません
広告リンクモード:10baseT/ハーフ 10baseT/フル
100ベースT/ハーフ 100ベースT/フル
広告される一時停止フレームの使用:対称
広告された自動交渉:はい
広告されたFECモード:報告されていません
リンクパートナーが宣伝しているリンクモード:10baseT/Half、10baseT/Fullです
100ベースT/ハーフ 100ベースT/フル
リンクパートナーが一時停止を提示したフレーム使用:いいえ
リンクパートナーが自動交渉を宣伝していました:はい
リンクパートナーがFECモードを広告している:報告されていません
速度:100Mb/s
デュプレックス:フル
自動交渉:オン
移植版:ツイステッドペア
ファイアド:3
トランシーバ:外部
MDI-X:不明
ウェイクオン支援:g
ウェイクオン:d
リンク検出:はい
また、50MHzのクロックも確認しましたが、これは適切に生成され、PHY KSZ8041NLにも入力されています。
要するに、1本のイーサネットは正常に動作していますが、2本目のイーサネットは正常に動作KSZ8081 KSZ8041NL。
解決策をご提案ください。参考までに、両方のイーサネット物理ハードウェアのスクリーンショットも添付しています。