こんにちは、
私たちは、iMX 8M Plus SOC にインターフェースされるデザインの 1 つに ksz9131 phy を使用しています。KSZ9131 phy は SOC の fec MAC にコネクテッドされます。micrel phy ドライバと fec MAC ドライバが適切にロードされています。問題は、OS が起動するたびに、phy が RGMII モードで適切に構成されないことです。phy を動作させるには、OS の起動後に以下のコマンドを実行する必要があります。
ethtool -s eth0 速度 1000 デュプレックス 全二重
上記のコマンドを実行すると、phy が動作を開始します。このコマンドを実行せずに phy を動作させる方法を誰か知っていますか。最善の解決策は何でしょうか?
このコマンドを実行する前と実行後に、PHY のレジスタ ダンプを取得しました。私の理解によれば、レジスタ 0x04 (車載-NEGOTIATION ADVERTISEMENT REGISTER) を値 0x0401 に設定する必要があります。micrel ドライバを使用してこの値を設定しようとしましたが、OS の起動時に反映されません。もっと良い解決策を提案してください。
よろしくお願いします。
こんにちは、シャスワスさん。
私は imx8mn で KSZ9131 Phy デバイスを使用しています。ターミナルで ifcoonfig と入力すると最初は表示され、Phy に接続できましたが、uboot で IP アドレスを変更してリセットすると、Phy が表示されなくなり、$ dmesg | grep -i イーサネット で次のプロンプトが表示されます。
fsl_dpa : FSL DPAA イーサネット ドライバ
mdio_bus 30be0000.イーサネット-1:アドレス3のMDIOデバイスが見つかりません
fec 30be0000.イーサネット eth0: 登録済みPHCデバイス0
fec 30be0000.イーサネット eth0: phyに接続できません
あなたの星座と上記のDTSに応じて、あなたに尋ねたいのですが、
FEC と KSZ9131 で使用される電圧はいくらですか (1.8V または 3.3V)?
PHY 機能を実現するためにどの電源電圧が使用されるかを確認するために、ksz9131 と imx8mp 間の接続の回路図を共有していただけますか。
事前に感謝いたします。
こんにちは、
イーサネット接続にも問題が発生しています。IMX8MP-EVK をベースにしたカスタム ボードにコネクテッドされた唯一の PHY として KSZ9131 を使用しています。
https://github.com/nxp-imx/linux-imx/tree/lf-5.15.yの Linux 5.15.71-lts を使用しています。
以下はデバイス ツリーの構成です。
&eqos {
status = "disabled";
};
&fec {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_eqos>;
phy-mode = "rgmii-id";
phy-handle = <ðphy1>;
fsl,magic-packet;
status = "okay";
mdio {
#address-cells = <1>;
#size-cells = <0>;
ethphy1: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0>;
reset-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
reset-assert-us = <10000>;
reset-deassert-us = <50000>;
};
};
};
pinctrl_eqos: eqosgrp {
fsl,pins = <
MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC 0x2
MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO 0x2
MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0 0x90
MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1 0x90
MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2 0x90
MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3 0x90
MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x90
MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x90
MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0 0x16
MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1 0x16
MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2 0x16
MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3 0x16
MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x16
MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x16
MX8MP_IOMUXC_GPIO1_IO15__GPIO1_IO15 0x10
>;
};LED が点滅しているのが CAN 確認でき、ifconfig eth0 up/down で制御できます。
しかし、接続が確立されません。IP アドレスとゲートウェイを手動で設定しても、ネットワーク内のデバイスに ping したりアクセスしたりすることはできません。
dmesg | grep -i ethernet
[ 1.379338] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[ 1.413546] igb: Intel(R) Gigabit Ethernet Network Driver
[ 2.110231] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 3.259066] fec 30be0000.ethernet: Invalid MAC address: 00:00:00:00:00:00
[ 3.265916] fec 30be0000.ethernet: Using random MAC address: 0e:d0:09:5e:f3:8d
[ 3.357940] fec 30be0000.ethernet eth0: registered PHC device 0
[ 9.012865] Generic PHY 30be0000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=POLL)
ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: Not reported
Supported pause frame use: Symmetric
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: Symmetric
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10Mb/s
Duplex: Half
Auto-negotiation: off
Port: MII
PHYAD: 0
Transceiver: external
Supports Wake-on: g
Wake-on: d
Link detected: noどんなご支援でも大変感謝いたします。
よろしくお願いいたします。
シャスワス
こんにちは@vinay_hasyagar
お元気でお過ごしでしょうか。
下記例を参考にしてください。
&イーサネット0 {
ステータス = "正常";
pinctrl-0 = <ðernet0_rgmii_pins_a>;
pinctrl-1 = <ðernet0_rgmii_pins_sleep_
pinctrl-names = "default", "sleep";
phy-mode = "rgmii";
最大速度<1000> =;
phy-handle = <&phy0>;
mdio0 {
#アドレスセル<1> =;
#セルサイズ<0> =;
互換性 = "snps,dwmac-mdio";
phy0: イーサネット-phy@1 {
レジスタ<1> =;
};
};
};
この構成がデバイス ツリー内のイーサネット ノードに対して行われていることを確認してください。
------------------------------
注: この投稿で質問が解決した場合は、「正解」ボタンをクリックしてください。ありがとう!
------------------------------
ありがとう、よろしく。 ドゥルヴィット・ヴァサヴァダ
こんにちは、vinay_hasyagarさん
私も同じ問題に直面しています。10 メガビットのリンクを取得し、ブート直後にethtool -s eth0 speed 10 duplex full と入力するまで同じ問題が発生します。
問題をどのように解決したかヒントを教えていただけますか?
よろしくお願いします
こんにちは、シャスワスさん。
同じ問題を解決する手助けをいただけますか?
どんなご協力でもありがたいです。
よろしくお願いいたします。
ニラヴ