インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

17.6.2.5.3. 送信フレームの処理

送信DMAは、データバッファーにプリアンブル、パッドバイト、FCSフィールドを除く完全なイーサネット・フレームが含まれ、DA、SA、およびType/Lenフィールドに有効なデータが含まれていることを想定しています。MACでCRCまたはPAD挿入を無効にする必要があると送信記述子で示されている場合は、バッファーには、CRCバイトを含む完全なイーサネット・フレーム (プリアンブルを除く) が必要です。†

フレームはデータチェーン化することができ、複数のバッファーに広げることが可能です。フレームはそれぞれ、First Descriptor (TDES1[29]) とLast Descriptor (TDES1[30]) で区切られている必要があります。†

送信が開始する際に、First Descriptor (TDES1[29]) が設定されている必要があります。これが発生すると、フレームデータがホストバッファーからMTL送信FIFOバッファーに転送されます。同時に、現在のフレームでLast Descriptor (TDES1[30]) がクリアされている場合、送信プロセスではNext記述子の取得が行われます。送信プロセスでは、この記述子でTDES1[29] がクリアされていることを想定しています。TDES1[30] がクリアされている場合は、中間のバッファーを示しています。TDES1[30] が設定されている場合は、フレームの最後のバッファーを示しています。†

フレームの最後のバッファーが送信されると、DMAは、Transmit Descriptor 1 (TDES1[30]) で最後のセグメントが設定されている記述子のTransmit Descriptor 0 (TDES0) ワードに最終のステータス情報を書き戻します。この際に、Interrupt on Completion (TDES1[31]) が設定されている場合は、レジスター5 (Status Register) のビット0 (Transmit Interrupt) が設定され、Next記述子がフェッチされて、プロセスが繰り返されます。†

実際のフレーム送信は、MTL送信FIFOバッファーがプログラミング可能な送信しきい値 (Operation Mode Registerであるレジスター6のビット [16:14]) に到達した後、もしくはFIFOバッファーに完全なフレームが含まれた後に開始します。Store and Forward Modeのオプションもあります (Operation Mode Registerであるレジスター6のビット21)。DMAがフレームの転送を完了すると、記述子は解放されます (OwnビットのTDES0[31] がクリアされます)。†

注: フレームと次のフレームを適切に送信するには、Last Descriptor (TDES1[30]) が設定されている送信記述子に0以外のバッファーサイズを指定する必要があります。†