2139098_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2139098_ja-JP

2139098_ja-JP

S32G RDB3(M7コア)のSJA1110ポート1へのGMAC0 SGMIIリンクの設定方法

S32G399A-RDB3 評価ボードを使用しており、GMAC0 と SJA1110 イーサネット スイッチのポート 1 の間に SGMII リンクを確立したいと考えています。

SDKs で提供される RTD の例 (例: GMAC_Example_0) は、外部 PHY にコネクテッドするために GMAC0 を RGMII モードで構成する方法のみを示していますが、ポート 1 の SGMII 経由でコネクテッドされる SJA1110 スイッチと通信するために GMAC0 を SGMII モードで構成する方法は示されていません。

Cortex-M7 コアをターゲットにし、FreeRTOS + lwip + RTD を使用しています。

GMAC0が外部PHYでRGMIIモードで正常に動作することは既に確認済みであり、また、GMAC0 SGMIIリンクのSJA1110への動作はA53上でも確認済みであるが、我々のターゲットはM7コアである。

ご指導ありがとうございます。

Re: How to configure GMAC0 SGMII link to SJA1110 Port1 on S32G RDB3 (M7 core)ありがとう、この情報は役に立ちます。M7でGMACをSGMIIに設定する方法を理解することができました。Re: How to configure GMAC0 SGMII link to SJA1110 Port1 on S32G RDB3 (M7 core)

こんにちは@Terry_Huang

M7 の SGMII で GMAC を構成する例はありませんが、次のリファレンスをCAN。

u-boot ソース コード: u-boot は hwconfig の値に応じて SerDes モジュールを構成します。BSP マニュアルでCAN確認できます (例: BSP44)。

alejandro_e_0-1753395433010.png

alejandro_e_1-1753395446948.png


文字列が解析されレジスタが設定されると、次のソース コードをCAN確認できます。

serdes_hwconfig.c

hwconfig_fixups.c

文字列がどのように解析され、構成が行われるかがわかりますが、u-boot にはかなりの数の SW レイヤーがあるため、これはかなり複雑になる可能性があります。

hwconfig を上記のいずれかの値に設定できます。質問に関連する部分は、serdes0 構成と SW の位置です。

hwconfig 変数が設定されたら、ボードをリセットして u-boot で停止し、md コマンドを使用して関連するレジスタを読み取ります。例:

=> setenv hwconfig "serdes0:mode=xpcs0&xpcs1,clock=ext,fmhz=100;xpcs0_0:speed=1G,an=0;xpcs0_1:speed=1G,an=0;serdes1:mode=xpcs0&xpcs1,clock=ext,fmhz=125;xpcs1_1:speed=1G"
=> saveenv
Saving Environment to MMC... Writing to MMC(0)... OK
=> reset
...
=> printenv hwconfig
hwconfig=serdes0:mode=xpcs0&xpcs1,clock=ext,fmhz=100;xpcs0_0:speed=1G,an=0;xpcs0_1:speed=1G,an=0;serdes1:mode=xpcs0&xpcs1,clock=ext,fmhz=125;xpcs1_1:speed=1G
=> md.l  0x4007C000 20
4007c000: 00000000 00000000 000000e7 00000001  ................
4007c010: ffffffff 1fffffff 00007fff 00000000  ................
4007c020: 00000000 00000000 00000000 00000000  ................
4007c030: 00000000 00000000 00000000 00000000  ................
4007c040: 00000000 00000000 00000000 00000000  ................
4007c050: 00000000 00000000 00000000 00000000  ................
4007c060: 00000000 00000000 00000000 00000000  ................
4007c070: 00000000 00000000 00000000 00000000  ................

サンプルでは、hwconfig を設定し、変更を保存し、ボードをリセットして、GMAC の最初のレジスタ (このCASEは 20) を出力しました。xpcs コマンドを使用することもCANます。例:

=> xpcs
xpcs - Utility command for SGMMI control

Usage:
xpcs list
        List all registered XPCS modules
xpcs  transit <1000M|2500M>
        Change serdes mode
xpcs  ss <10M|100M|1000M|2500M>
        Change speed and serdes mode when required
xpcs  an 
        Auto-negotiation control
xpcs  an_auto 
        Auto-negotiation control with automatic speed change
xpcs  lo 
        PMA loopback enable/disable
xpcs  dump
        Dump XPCS indirect registers

 is obtained using 'xpcs list' command

=> xpcs list
Registered XPCS instances:

| ID | SerDes instance | XPCS |
|  0 | serdes@40480000 |    1 |
|  1 | serdes@40480000 |    0 |
|  2 | serdes@44180000 |    1 |
|  3 | serdes@44180000 |    0 |

これは、S32G3 リファレンスマニュアル [ページ 2759、S32G3 リファレンスマニュアル、Rev. 4、02/2024] に従っています。

alejandro_e_2-1753396519663.png

ご覧のとおり、モード 1 と 3 は GMAC を使用した SGMII をサポートしています。


各モジュールのレジスタに関する詳細については、 GMACリファレンス マニュアルとSerDesリファレンス マニュアルも参照してください。

S32G3リファレンスマニュアルの関連セクション:

第47章 ギガビットイーサネットメディアアクセスコントローラ(GMAC)

47.1.4SGMIIモードでGMACを実行するための前提条件

2 4.7.2.2.4 イーサネット(GMAC_0)SGMII設定(これはクロッキングに関連します)



この情報の目的は、M7 から GMAC モジュールを構成するためのベースとして使用できるようにすることです。


他にご質問がございましたらお知らせください

Tags (1)
No ratings
Version history
Last update:
‎11-20-2025 04:32 PM
Updated by: