2331514_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2331514_ja-JP

2331514_ja-JP

DPAAポートに関する問題

良い一日!

カスタムLS1046ベースのボードでイーサネットポートを起動しようとしています。すべてのethポートはプロトコル0x2223のserdes上にあります。

ポートは以下のとおりです。

MAC9  ethernet@f0000 (SGMII,2.5) -> RTL8221
MAC10 - ethernet@f2000 (SGMII,2.5) -> RTL8221
MAC5 - ethernet@e8000 (SGMII,2.5) -> RTL8221
MAC6 - ethernet@ea000 -> RTL8211

私が作成したfman関連のUBoot DTSファイル(LS1046ARDB用のDTSファイルに基づく):

........
#include "fsl-ls1046-post.dtsi"
&fman0 {
        EMAC6: ethernet@ea000 {
	        phy-handle = <&sgmii_phy4>;
		phy-connection-type = "sgmii";
		status = "okay";
	};
        rtl8211: mdio@fc000 {
		sgmii_phy4: ethernet-phy@4 {
		        reg = <0x4>;
		};
	};
};

これで全て問題なく動作します。Uboot のethernet@ea000 は完璧に動作します。

その後、私はLinuxに移行しました。私はUSDPAA SDKドライバを使用しています。

私のLinux DTSもLS1046ardb SDK DTSをベースにしています。

........
#include "fsl-ls1046-post.dtsi"
&fman0 {
        //// MAC 5
        ethernet@e8000 {   /// 2.5G SerDes SGMII external
	        phy-handle = <&sgmii_phy3>;
		phy-connection-type = "sgmii";
	};
        /// MAC6
        ethernet@ea000 {    /// 1G SerDes SGMII external
	        phy-handle = <&sgmii_phy4>; 
		phy-connection-type = "sgmii";
	};
        //// MAC9
	ethernet@f0000 { /// 2.5G SerDes SGMII external
	        phy-handle = <&sgmii_phy1>;
		phy-connection-type = "sgmii";
	};
        /// MAC10
        ethernet@f2000 {  /// 2.5G SerDes SGMII external
	        phy-handle = <&sgmii_phy2>;
		phy-connection-type = "sgmii";
	};
        mdio@fc000 {
	        compatible = "fsl,fman-memac-mdio";
                /// RTL8221
		sgmii_phy1: ethernet-phy@1 {
		        reg = <0x1>;
			compatible = "ethernet-phy-ieee802.3-c45";
		};
                /// RTL8221
		sgmii_phy2: ethernet-phy@2 {
		        reg = <0x2>;			
			compatible = "ethernet-phy-ieee802.3-c45";
		};
                /// RTL8221
		sgmii_phy3: ethernet-phy@3 {
		        reg = <0x3>;			
			compatible = "ethernet-phy-ieee802.3-c45";
		};
                /// RTL8211
		sgmii_phy4: ethernet-phy@4 {
		        reg = <0x4>;
		};
	};
};
....
#include "qoriq-dpaa-eth.dtsi"
#include "qoriq-fman3-0-6oh.dtsi"
....
&fsldpaa {
        ethernet@0 {
                status = "disabled";
        };
        ethernet@1 {
                status = "disabled";
        };

        ethernet@2 {
                status = "okay";

        };
        ethernet@3 {
                status = "okay";
        };

        ethernet@4 {
                status = "okay";
        };
        ethernet@5 {
                status = "okay";
        };
        ethernet@6 {
                status = "okay";
        };
        ethernet@8 {
                status = "okay";
        };

        ethernet@10 {
                status = "okay";
                compatible = "fsl,dpa-ethernet";
                fsl,fman-mac = <&enet7>;
                dma-coherent;
        };
};

&fman0 {
        compatible = "fsl,fman", "simple-bus";
};
.....

Linuxの起動中に、次のようなメッセージが表示されました。

memac.png MAC10のみ有効で、他のすべてのポートは失敗しました。MAC6はUBootでは正常に動作していたにもかかわらず、今回失敗したというのは非常に興味深い。

私のRCW:

SYS_PLL_RAT=7
MEM_PLL_RAT=21
CGA_PLL1_RAT=18
CGA_PLL2_RAT=16
/// SerDes PLL & Protocol configuration
SRDS_PRTCL_S1=8739  ///  0x2223
SRDS_PRTCL_S2=34952  /// 0x8888
SRDS_PLL_REF_CLK_SEL_S1=2
SRDS_PLL_REF_CLK_SEL_S2=0
SRDS_PLL_PD_S1=0
SRDS_PLL_PD_S2=0
SRDS_DIV_PEX_S1=0
SRDS_DIV_PEX_S2=0

/// Misc PLL-Related Configuration
DDR_REFCLK_SEL=1
SRDS_REFCLK_SEL_S1=1
SRDS_REFCLK_SEL_S2=1
DDR_FDBK_MULT=2
/// Boot configuartion
PBI_src=4
/// Clocking configuration
HWA_CGA_M1_CLK_SEL=6
DRAM_LAT=1
/// Pin Multiplexing Configuration
UART_BASE=5
IRQ_OUT=1
IRQ_BASE=510
IFC_GRP_A_EXT=1
IFC_GRP_E1_EXT=2
IFC_GRP_E1_EXT=0
IFC_GRP_F_EXT=1
/// SoC-specific Configuration
EM1=0
EMI1_DMODE=0
EMI1_CMODE=0

EM2=1
EMI2_DMODE=1
EMI2_CMODE=1

DVDD_VSEL=2
/// PLL & Clocking Configuration Expansion
SYSCLK_FREQ=600
HWA_CGA_M2_CLK_SEL=1

ポートに何か問題があるのでしょうか?なぜMAC10だけが有効化されるのか?

Re: Poblems with DPAA ports

こんにちは、

問題は、
MAC6がU-Bootで動作しているにもかかわらず、LinuxでMAC10が有効になっている場合は、通常、Linuxデバイスツリー(DTS)内のDPAA(データパスアクセラレーションアーキテクチャ)構成の不一致を示しています。考えられる原因とその対処法は以下のとおりです。
 
1. SGMII速度マッピングの誤り(2.5Gと1Gの混同)
LS1046AのMAC9、10、5用のSGMIIレーンは2.5Gで動作しています。Linuxでは、標準のsgmiiタイプはデフォルトで1Gに設定されていることが多い。
  • 修正: MAC9、10、および5のphy-connection-type "2500base-x"または"sgmii-2500"に変更します。
  • MAC6 (RTL8211) の場合は、 "sgmii" (1G) のままにしておいてください。
 
2. MDIO 第 45 条と第 22 条の比較
DTSでは、RTL8221s(MAC 9、10、5)がcompatible = "ethernet-phy-ieee802.3-c45"を使用していると表示されます。
  • 競合: MDIOコントローラノード( mdio@fc000 )がドライバを介して条項45をサポートするように明示的に構成されていない場合、それらのPHYをプローブできない可能性があります。
  • 確認事項:これらのアドレスに対してdmesg 「PHY not found」と表示されますか?そうであれば、MDIO互換文字列がfsl,fman-memac-mdioと完全に一致することを確認してください。
 
3. fsldpaaノードの不整合 DTSには以下が含まれています。
 
dts
ethernet@10 {
    fsl,fman-mac = <&enet7>; // This maps to MAC10
};
 
ただし、他のポート( ethernet@2ethernet@8 )は、間違ったラベリングにマッピングされている可能性があります。LS1046A SDKでは:
  • MAC5は通常&enet4です
  • MAC6は通常&enet5です
  • MAC9は通常&enet6です
  • MAC10は通常&enet7 (動作ポート番号と一致する)です。
アクション: &fsldpaa 配下のすべての ethernet@X ノードについて、 fsl,fman-mac プロパティが fsl-ls1046-post.dtsi で定義されている正しい &enetX ラベリングを指していることを確認してください。
 
4. fman0定義の重複 スニペットの最後に、次のコードがあります。
 
dts
&fman0 { compatible = "fsl,fman", "simple-bus"; };
これを削除してください。simple-busを追加してcompatible文字列を変更すると、DPAA FManドライバがサブノード(MAC)に正しくバインドできなくなる可能性があります。ドライバは、NXP SDKのdtsiファイルによって提供される特定のFMan互換文字列を必要とします。
 
よろしくお願いします。
タグ(1)
評価なし
バージョン履歴
最終更新日:
‎03-14-2026 02:36 AM
更新者: