F-Tile Serial Lite IV Intel® FPGA IPユーザーガイド

ID 741328
日付 6/26/2023
Public
ドキュメント目次

10.3. PHY定義

ソフトウェア・ドライバーはデフォルトで以下のPHYのみをサポートします。
  • National DP83848C (10/100/1000)
  • National DP83865 (10/100/1000)
  • Marvell 88E1111 (10/100/1000)
  • Marvell 88E1145 (Quad PHY, 10/100/1000)

次の構造を使用して PHY プロファイルを定義することで、ソフトウェア ドライバーを拡張して他の PHY をサポートできます。 alt_tse_phy_profile そして関数を使用してそれをシステムに追加します alt_tse_phy_add_profile()。 PHY インスタンスごとに、次の構造を使用します。 alt_tse_system_phy_struct それと関数を定義するには alt_tse_system_add_sys() インスタンスをシステムに追加します。

PHYが以下の仕様に準拠している場合、ソフトウェア・ドライバーは自動的にPHYの動作モードと速度を検出します。

  • 同じ拡張PHY固有レジスターで、1ビットが二重を指定し、連続した2ビット(上位側が最上位ビット)が速度を指定します。
  • 速度のビットはに示す規則に従って設定されます。
表 103.  PHY速度ビット値
速度(Mbps) PHY速度ビット
MSB LSB
1000 1 0
100 0 1
10 0 0

前述の仕様に準拠しないPHYについては、PHYの動作モードおよび速度を取得するための関数を作成して、PHYデータ構造体の*link_status_readフィールドをユーザーの関数のアドレスに設定することができます。

PHYプロファイル構造体

また、それぞれの構造体の関数ポインタ(*phy_cfgおよび*tse_phy_cfg)を関数のアドレスに設定することにより、関数を実行してPHYプロファイルまたはPHYインスタンスを初期化できます。

typedef struct alt_tse_phy_profile_struct{ /* PHY プロファイル */ /* PHY の名前*/ char name[80]; /*組織的に一意の識別子*/ alt_u32 oui; /*PHY モデル番号*/ alt_u8 モデル番号; /*PHY リビジョン番号*/ alt_u8 リビジョン番号; /*PHY 固有ステータス レジスタの場所*/ alt_u8 status_reg_location; /*PHY 固有ステータス レジスタのスピード ステータス ビットの位置*/ alt_u8speed_lsb_location; /*PHY ステータス固有レジスタ内のデュプレックス ステータス ビットの位置*/ alt_u8 duplex_bit_location; /*PHY ステータス固有レジスタのリンク ステータス ビットの位置*/ alt_u8 link_bit_location; /*PHY 初期化関数ポインタ - プロファイル固有*/ alt_32 (*phy_cfg)(np_tse_mac *pmac); /*32 ビットのリンク ステータスを読み取って返す関数へのポインタ。考えられるステータス: 全二重 (ビット 0 = 1)、半二重 (ビット 0 = 0)、ギガビット (ビット 1 = 1)、100Mbps (ビット 2 = 1)、10Mbps (ビット 3 = 1)、無効な速度 (ビット 16 = 1)。*/ alt_u32 (*link_status_read)(np_tse_mac *pmac); alt_tse_phy_profile;

PHYインスタンスの構造体

typedef struct alt_tse_system_phy_struct { /* PHY インスタンス */ /* PHY の MDIO アドレス */ alt_32tse_phy_mdio_address; /* PHY 初期化関数ポインタ - インスタンス固有 */ alt_32 (*tse_phy_cfg)(np_tse_mac *pmac); alt_tse_system_phy;