インテルのみ表示可能 — GUID: mlz1481130278488
Ixiasoft
インテルのみ表示可能 — GUID: mlz1481130278488
Ixiasoft
17.6.3.1. 送信記述子
アプリケーション・ソフトウェアは、送信記述子の初期化時に、制御ビットのTDES0[31:18] をプログラミングする必要があります。DMAは記述子を更新すると、OWNビット (クリアされる) を除くすべての制御ビットを書き戻し、ステータスビット[7:0] を更新します。
高度なタイムスタンプのサポートにより、TDES0のビット25 (TTSE) を設定することで、取得するタイムスタンプのスナップショットを特定のフレームに対して有効にすることができます。記述子が閉じられる (つまり、OWNビットがクリアされる) と、タイムスタンプは、TDES6とTDES7に書き込まれます (TDES0のステータスビット17 (TTSS) で示されます)。
DMAは常に、記述子の4 DWORDをシステムメモリーから読み出しまたはフェッチし、バッファーおよび制御情報を取得します。†
ビット | 説明 |
---|---|
31 |
OWN: Ownビット 設定されている場合、このビットは、記述子がDMAによって所有されていることを示します。このビットがクリアされると、記述子がホストによって所有されていることを示します。DMAは、フレーム送信を完了した際、もしくは記述子に割り当てられたバッファーが完全に読み出された際にこのビットをクリアします。フレームの最初の記述子のオーナーシップ・ビットは、同じフレームに属する後続の記述子がすべて設定された後に設定し、記述子のフェッチとオーナーシップ・ビットの設定を行うドライバーとの間で起こり得る競合状態を回避する必要があります。† |
30 |
IC: Interrupt on Completion このビットが設定されている場合は、現在のフレームが送信された後に、Transmit Interrupt (レジスター5[0]) が設定されるようになります。† |
29 |
LS: Last Segment 設定されている場合、このビットは、バッファーにフレームの最後のセグメントが含まれていることを示します。このビットが設定されている場合、TDES1のTBS1フィールドまたはTBS2フィールドは、0以外の値になります。† |
28 |
FS: First Segment 設定されている場合、このビットは、バッファーにフレームの最初のセグメントが含まれていることを示します。† |
27 |
DC: Disable CRC このビットが設定されている場合、MACは、送信されるフレームの最後にCRCを追加しません。このビットは、First Segment (TDES0[28]) が設定されている場合にのみ有効です。† |
26 |
DP: Disable Pad 設定されている場合、MACは64バイトより短いフレームに自動的にパディングを追加しません。このビットがクリアされている場合は、DMAは64バイトより短いフレームにパディングとCRCを自動的に追加します。CRCフィールドは、DC (TDES0[27]) ビットの状態にかかわらず追加されます。このビットは、First Segment (TDES0[28]) が設定されている場合にのみ有効です。† |
25 |
TTSE: Transmit Timestamp Enable 設定されている場合、このビットは、記述子で参照されている送信フレームのIEEE1588ハードウェア・タイムスタンプを有効にします。このフィールドは、First Segment制御ビット (TDES0[28]) が設定されている場合にのみ有効です。 |
24 |
予約済み |
23:22 | CIC: Checksum Insertion Control。これらのビットは、チェックサムの計算と挿入を制御します。次のリストは、ビットのエンコーディングについて説明しています。 ■ 0x0: チェックサムの挿入は無効です。 ■ 0x1: IPヘッダー・チェックサムの計算と挿入のみが有効です。 ■ 0x2: IPヘッダー・チェックサムとペイロード・チェックサムの計算と挿入は有効ですが、疑似ヘッダー・チェックサムはハードウェアで計算されません。 ■ 0x3: IPヘッダー・チェックサムとペイロード・チェックサムの計算と挿入が有効であり、疑似ヘッダー・チェックサムはハードウェアで計算されます。 このフィールドは、First Segment制御ビット (TDES0[28]) が設定されている場合に有効です。 |
21 | TER: Transmit End of Ring 設定されている場合、このビットは、記述子リストの最終記述子に達したことを示します。DMAはリストのベースアドレスに戻り、記述子リングを形成します。† |
20 | TCH: Second Address Chained 設定されている場合、このビットは、記述子の2番目のアドレスが2番目のバッファーアドレスではなく、Next記述子のアドレスであることを示します。TDES0[20] が設定されている場合、TBS2 (TDES1[28:16]) は「Don’t Care」値です。 TDES0[21] はTDES0[20] よりも優先されます。† |
19:18 | 予約済み |
17 | TTSS: Transmit Timestamp Status このフィールドはステータスビットとして使用され、記述されている送信フレームのタイムスタンプがキャプチャーされたことを示します。このビットが設定されている場合、TDES2およびTDES3は、送信フレームにキャプチャーされたタイムスタンプの値を保有します。このフィールドは、記述子のLast Segment制御ビット (TDES0[29]) が設定されている場合にのみ有効です。† |
16 | IHE: IP Header Error 設定されている場合、このビットは、MACトランスミッターがIPデータグラム・ヘッダーでエラーを検出したことを示します。トランスミッターは、IPv4パケットのヘッダー長をアプリケーションから受信したヘッダーバイト数と照合し、不一致がある場合はエラーステータスを示します。IPv6フレームの場合、メインヘッダー長が40バイトではない場合にヘッダーエラーが報告されます。さらに、IPv4またはIPv6フレームのEthernet LengthおよびTypeフィールドの値は、パケットで受信したIPヘッダーのバージョンと一致する必要があります。IPv4フレームの場合は、Header Lengthフィールドの値が0x5未満の場合もエラーステータスが示されます。† このビットは、Tx Checksum Offloadが有効な場合にのみ有効です。COEは、IPヘッダーエラーを検出した場合でも、Ethernet TypeフィールドでIPv4ペイロードが示されている場合は、IPv4ヘッダー・チェックサムを挿入します。† |
15 | ES: Error Summary 次のビットの論理ORを示します。 ■ TDES0[14]: Jabber Timeout ■ TDES0[13]: Frame Flush ■ TDES0[11]: Loss of Carrier ■ TDES0[10]: No Carrier ■ TDES0[9]: Late Collision ■ TDES0[8]: Excessive Collision ■ TDES0[2]: Excessive Deferral ■ TDES0[1]: Underflow Error ■ TDES0[16]: IP Header Error ■ TDES0[12]: IP Payload Error† |
14 | JT: Jabber Timeout 設定されている場合、このビットは、MACトランスミッターにJabberのタイムアウトがあったことを示します。このビットは、レジスター0 (MAC Configuration Register) のビット22 (Jabber Disable) が設定されていない場合にのみ設定されます。† |
13 | FF: Frame Flushed 設定されている場合、このビットは、CPUからのソフトウェア・フラッシュ・コマンドにより、DMAまたはMTLがフレームをフラッシュしたことを示します。† |
12 | IPE: IP Payload Error 設定されている場合、このビットは、MACトランスミッターがTCP、UDP、またはICMP IPのデータグラム・ペイロードでエラーを検出したことを示します。トランスミッターは、IPv4またはIPv6ヘッダーで受信したペイロード長を、アプリケーションから受信したTCP、UDP、またはICMPパケットの実際のバイト数と照合し、不一致の場合はエラーステータスを発行します。† |
11 | LC: Loss of Carrier 設定されている場合、このビットは、フレーム送信中にキャリアの損失が発生した (つまり、フレーム送信中にgmii_crs_i信号が1送信クロック周期以上の間非アクティブだった) ことを示します。このビットは、MACが半二重モードで動作している際に、衝突することなく送信されたフレームに対してのみ有効です。† |
10 | NC: No Carrier 設定されている場合、このビットは、送信中にPHYからのCarrier Sense信号がアサートされなかったことを示します。† |
9 | LC: Late Collision 設定されている場合、このビットは、衝突ウィンドウ (MIIモードではプリアンブルを含めて64バイト時間、GMIIモードではプリアンブルとキャリア拡張を含めて512バイト時間) の後に衝突が発生したことにより、フレームの送信が中断されたことを示します。Underflow Errorビットが設定されている場合、このビットは無効です。 |
8 | EC: Excessive Collision 設定されている場合、このビットは、現在のフレームの送信を試みている際に16回の連続した衝突が発生し、送信が中断されたことを示します。レジスター0 (MAC Configuration Register) のビット9 (Disable Retry) が設定されている場合は、このビットは最初の衝突後に設定され、フレームの送信は中断されます。† |
7 | VF: VLAN Frame 設定されている場合、このビットは、送信されたフレームがVLANタイプのフレームであることを示します。† |
6:3 | CC: Collision Count (ステータスフィールド) これらのステータスビットは、フレームが送信される前に発生した衝突の数を示します。このカウントは、Excessive Collisionsビット (TDES0[8]) が設定されている場合は無効です。EMACは、半二重モードの場合にのみこのステータスフィールドを更新します。 |
2 | ED: Excessive Deferral 設定されている場合、このビットは、レジスター0 (MAC Configuration Register) のビット4 (Deferral Check) が設定されている際に、24,288ビット時間 (1,000Mbpsモード、またはジャンボフレームが有効な場合は155,680ビット時間) を超える超過遅延によって送信が終了したことを示します。† |
1 | UF: Underflow Error 設定されている場合、このビットは、ホストメモリーからデータが遅れて到着したため、MACがフレームを中断したことを示します。Underflow Errorは、フレームの送信時にDMAが空の送信バッファーを検出したことを示します。送信プロセスはSuspended状態に入り、Transmit Underflow (レジスター5[5]) とTransmit Interrupt (レジスター5[0]) の両方が設定されます。† |
0 | DB: Deferred Bit 設定されている場合、このビットは、キャリアの存在によって送信前にMACが遅延することを示します。このビットは、半二重モードでのみ有効です。† |
ビット | 説明 |
---|---|
31:29 | 予約済み |
28:16 | TBS2: Transmit Buffer 2 Size このフィールドは、2番目のデータバッファーのサイズをバイト単位で示します。TDES0[20] が設定されている場合、このフィールドは無効です。† |
15:13 | 予約済み† |
12:0 | TBS1: Transmit Buffer 1 Size このフィールドは、最初のデータバッファーのバイトサイズをバイト単位で示します。このフィールドが0の場合、DMAはこのバッファーを無視し、TCH (TDES0[20]) の値に応じてバッファー2またはNext記述子を使用します。† |
ビット | 説明 |
---|---|
31:0 | Buffer 1 Address Pointer これらのビットは、バッファー1の物理アドレスを示します。バッファーアドレスのアライメントに制限はありません。† |
ビット | 説明 |
---|---|
31:0 | Buffer 2 Address Pointer (Next Descriptor Address) 記述子のリング構造が使用されている際は、バッファー2の物理アドレスを示します。Second Address Chained (TDES0[20]) ビットが設定されている場合、このアドレスには、Next記述子が存在する物理メモリーへのポインターが含まれます。バッファーのアドレスポインターは、TDES0[20] が設定されている場合にのみバス幅に合わせる必要があります。(LSBは内部で無視されます。)† |
ビット | 説明 |
---|---|
31:0 | TTSL: Transmit Frame Timestamp Low このフィールドは、対応する送信フレームにキャプチャーされたタイムスタンプの最下位32ビットで、DMAによって更新されます。このフィールドは、記述子でLast Segment (LS) ビットが設定され、Timestamp Status (TTSS) ビットが設定されている場合にのみタイムスタンプを保有します。† |
ビット | 説明 |
---|---|
31:0 | TTSH: Transmit Frame Timestamp High このフィールドは、対応する受信フレームにキャプチャーされたタイムスタンプの最上位32ビットで、DMAによって更新されます。このフィールドは、記述子でLast Segment (LS) ビットが設定され、Timestamp Status (TTSS) ビットが設定されている場合にのみタイムスタンプを保有します。† |