2397364_ja-JP

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

2397364_ja-JP

2397364_ja-JP

ls1021a eTSEC 送信タイムアウト

私はLS1021A IoTと、このCPUをベースにしたプロトタイプ基板を持っています。どちらの場合も、弊社独自のブートローダーを使用しています。

IOTボードでは完璧に動作しますが、私のボードではイーサネットポートで送信タイムアウトが発生します。数回のpingが送信され、その後送信タイムアウトが発生し、さらにpingが送信されます。このため、TFTPはほとんど利用できません。

もちろん、ハードウェアの違いはあります。私たちのMACはBCM54616Sに接続され、その後LAN9514に接続されています。自動交渉の上限は100FDです。ループバックモードでもTXタイムアウトが発生します。

データを送信するためには、ボードのTBI PHYでビットSGMII_ANビットを設定しなければなりませんでしたが、IOTでは不要でした(IOTは1000FDで交渉可能です)。

なぜTXがこんなに断続的に起こるのか分かりません。この速度制限と関係があるのでしょうか?

Re: ls1021a eTSEC tx timeout

こんにちは、


100FD SGMIIの場合、プロトタイプ基板上のブートローダーで以下の項目を確認してください。

  1. LS1021AのeTSECをSGMII 100Mbpsに設定する

    • ECNTRL[TBIM] = 1
    • ECNTRL[SGMIIM] = 1
    • ECNTRL[R100M] = 1
    • MACCFG2[I/F Mode] = 01 (10/100モードの場合)
      LS1021Aのリファレンスマニュアルには、SGMII 100Mbpsの場合、 R100M = 1設定することが明記されています。
  2. 内部のTBI PHYをリセットしプログラムするRMは、SGMIIがTBIレジスタセットを使用していること、そしてSGMIIを含むすべてのインターフェースモードでTBIをリセットすることが重要であると述べています。

  3. SGMII_ANビットは設定したままにしてください。TBI のSGMII_ANビットは「1 に設定する必要があります」と記載されています。このビットを設定した後にしか基板が送信しないのは驚くことではありません。このPHY/MACモードのブートローダー初期化が不完全であることを示唆しています。

  4. 100 Mbps での 1G スタイルの SGMII AN 動作に頼らないでください。LS1021A では、100 Mbps SGMII 動作時に「SGMII リンクが正常ではありません」というメッセージが表示されたり、リンクのサイクル後に断続的にパケットが送信されないという報告が知られていますが、1G 動作では問題ありません。それは、あなたのTXタイムアウトの正確な根本原因を証明するものではありませんが、100FD SGMIIの設定が有力な容疑者であることを示唆しています。

ループバックの結果が重要です。もし「ループバックモード」が外部PHYループバックやSGMII側ループバックであれば、100FDのSGMII/TBIセットアップは関与可能です。内部MAC/eTSECループバックの場合、外部BCM54616S/LAN9514パスはほとんど関係ないので、eTSECの初期化、ディスクリプタリングの処理、キャッシュの一貫性、およびTXの停止/エラー状態に焦点を当てます。

デバッグを行うには、タイムアウトが発生したときにeTSEC TXの停止状態を確認してください。RMは、eTSECがTxBDリングからの送信フレームを処理しなくなったときに送信停止ビットを設定すると述べています。繰り返し可能な原因には、バスエラー、無効なBD/データアドレス、修正不能なBD/データ読み取りエラー、長さ 0 Ready = 1 などのTxBDプログラミングエラーなどがあります。また、見ているかどうかも確認してください IEVENT_BSY ;NXPの資料では、BSYはバッファ不足やソフトウェアがBDリングに十分速く対応できないことによるRXフレームのドロップと説明されており、これは純粋なSGMIIの電気的症状ではなくソフトウェア/BDリングの症状です。

推奨される分離シーケンス:

1. 必要に 応じて、 外部 PHY を 100FD に 強制し 、 銅線に対する自動ネゴシエーションを無効にします 2. LS1021Aの MAC / eTSEC を SGMII 100Mbps に 強制的に設定する : TBIM = 1 SGMIIM = 1 R100M = 1 MACCFG2 I / F モード = 10 / 100。3. SGMII モードを設定した後、 TBIを リセット / 再初期化します4. TBI SGMII_AN = 1 に設定します 。 5. TBI リンク / AN ステータス eTSEC ECNTRL / MACCFG2 および PHY SGMII 側 ステータス を確認します6.タイムアウト時に IEVENT  TXハルトレジスタ DMAステータスおよびTXBDリングの内容をダンプします


敬具

Re: ls1021a eTSEC tx timeout言い忘れていましたが、私のポートはSGMIIモードに設定されています。
Tags (1)
No ratings
Version history
Last update:
yesterday
Updated by: