こんにちは、みんな、
LX2160A Rev2 SoCをベースにしたカスタムボードに取り組んでおり、VSC8254 PHYがeMDIO1を通じてSoCに接続されています。現在、1G SGMIIモードでPHYを起動する際に問題が発生しています。
これまでのところ、DPCファイルとLinuxカーネルデバイスツリーの両方で固定リンクを設定することで、10G XFIモードでPHYを正常に起動できました。起動後、NXPが提供するmdio_cl45_writeスクリプトを実行して必要なClause 45レジスタをプログラムすると、リンクが確立され、正常に動作します。
しかし、構成を1G SGMIIモードに切り替える際には、以下の変更を行います。
DPCとLinuxデバイスツリーをXFIではなくSGMIIに更新してください。
1Gに対応するClause 45レジスタの初期化シーケンスを実行します。
新しい構成に合わせて、SERDESリファレンスクロックを125MHzから100MHzに更新してください。
これらの変更にもかかわらず、PHYリンクは確立されません。
参考までに:
VSC8254 PHYはMAC3およびMAC4に接続SERDES1。
10G XFI構成にはRCW 6を使用しています。
1G SGMII構成にはRCW 4を使用しています。
1G SGMIIモードでPHYを起動するために追加の設定変更や初期化ステップがあれば教えていただけますか?
お時間をいただき、サポートありがとうございます。
1. RCW[SRDS_PLL_REF_CLK_SEL_S1]を「00」に設定してください。
2. Linuxカーネルで「CONFIG_VITESSE_PHY」を設定してください。
3. Linux Kernel dts ファイル arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts にて、dpmac3とdpmac4の設定を以下のように変更してください。
&dpmac3 {
phy-handle = <&aquantia_phy1>;
phy-connection-type = "usxgmii";
managed = "in-band-status";
};
aquantia_phy1: ethernet-phy@4 {
/* AQR107 PHY */
互換 = "イーサネット-Phy-IEEE802.3-C45";
interrupts-extended = <&extirq 2 IRQ_TYPE_LEVEL_LOW>;
reg = <0x4>;
};
変更後:
&dpmac3 {
phy-handle = <&sgmii_phy1>;
phy-connection-type = "sgmii";
managed = "in-band-status";
};
sgmii_phy1: イーサネット-phy@xx{
reg = <0xxx>;//dpmac3関連のMDIO PHYアドレスを指定
};
4. dtc ファイル dpc-usxgmii.dts を以下のように変更してください。
掲示板情報 {
ポルト
mac@3 {
link_type = "MAC_LINK_TYPE_PHY";
enet_if = "USXGMII";
};
mac@4 {
link_type = "MAC_LINK_TYPE_PHY";
enet_if = "USXGMII";
};
変更後:
掲示板情報 {
ポルト
mac@3 {
link_type = "MAC_LINK_TYPE_PHY";
};
mac@4 {
link_type = "MAC_LINK_TYPE_PHY";
};