Gem.e000b000 PHY自動ネゴシエーションが完了するのを待っています...タイムアウトしましたか?

Gem.e000b000 PHY自動ネゴシエーションが完了するのを待っています...タイムアウトしましたか?

u-bootはカーネルを起動する前にそれを印刷します。

Gem.e000b000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
Retry count exceeded; 

この自動交渉をバイパスする方法はありますか?起動遅延が0なので、実行中のシステムにアクセス権がないので、ソースコードで修正したいと思います。

ベストアンサー1

あなたの特定のターゲット(Xilinx / Zynq?)についてはよくわかりません。

ターゲットイーサネットが動作しているネットワークに接続されていないようです。 1)PHY自動ネゴシエーションタイムアウト、2)bootcmdには、イーサネット用の動的IPアドレスを取得するためのdhcpまたはbootpが含まれているという2つの兆候があります。これはすべて環境変数設定で制御する必要があります。

通常、u-bootコマンドプロンプトまたはLinuxユーティリティfw_setenvを使用して実行時に環境変数を変更するのは簡単です。通常、ソースコードを変更/構築してからu-bootプログラムコードを更新することはより困難です。

イーサネット操作が不要な場合は、bootcmd環境変数を変更できます(bootpなどのイーサネット固有のコマンドの削除)。 PHYの場合は、ターゲットのu-bootバージョンに関するドキュメントを確認してください。何かを知らせる必要があります(例:ethact環境変数の削除)。

おすすめ記事