PCI Express* 用のインテル® Stratix® 10 HタイルおよびLタイル Avalon® メモリー・マップド・ハードIPユーザーガイド

ID 683667
日付 6/03/2020
Public
ドキュメント目次

7.2.2.2. 書き込みDMA内部Descriptor Controllerレジスター

表 71.  書き込みDMA内部Descriptor Controllerレジスター次の表は、内部書き込みDMA Descriptor Controllerのレジスターを示し、そのオフセットを指定しています。DMA Descriptor Controllerが外部的にインスタンス化されると、このレジスターはユーザー定義のBARを介してアクセスされます。オフセットは、Write DMA Descriptor Controllerのベースアドレス WrDC_SLV_ADDR に追加する必要があります。Write DMA Descriptor Controllerが内部的にインスタンス化されると、このレジスターはBAR0を介してアクセスされます。Write DMA Descriptor Controllerレジスターは、オフセットの0x0100から始まります。

アドレスオフセット

レジスター

アクセス

説明

リセット値

0x0000

Write Status and Descriptor Base (Low)

R/W

PCIe* システムメモリーの書き込みステータスおよびディスクリプター・テーブルのベースアドレスの下位32ビットを指定します。このアドレスは32バイト境界にある必要があります。

Unknown

0x0004

Write Status and Descriptor Base (High)

R/W

PCIe* システムメモリーの書き込みステータスおよびディスクリプター・テーブルのベースアドレスの上位32ビットを指定します。

Unknown

0x0008

Write Status and Descriptor FIFO Base (Low)

RW

エンドポイント・メモリー内の書き込みディスクリプターFIFOのベースアドレスの下位32ビットを指定します。アドレスは、Write Data MoverのAvalon-MM Master Portから見た、Descriptor ControllerのWrite Descriptor TableのAvalon-MM Slave PortのAvalon-MMアドレスである必要があります。

Unknown

0x000C

Write Status and Descriptor FIFO Base (High)

RW

エンドポイント・メモリー内の書き込みディスクリプターFIFOのベースアドレスの上位32ビットを指定します。アドレスは、Write Data MoverのAvalon-MM Master Portから見た、Descriptor ControllerのWrite Descriptor TableのAvalon-MM Slave PortのAvalon-MMアドレスである必要があります。

Unknown

0x0010

WR_DMA_LAST_PTR

RW

[31:8]: 予約済み

[7:0]: DescriptorID

読み出されると、要求された最後のディスクリプターのIDを返します。未処理のDMA要求がない場合、またはDMAがリセットされている場合は、値0xFFを返します。

書き込まれると、要求された最後のディスクリプターのIDを指定します。読み出された値および書き込まれた値の違いは、処理されるディスクリプターの数です。

例えば、値が4の場合、最後に要求されたディスクリプターは4です。さらに5つのディスクリプターを指定するには、ソフトウェアは WR_DMA_LAST_PTR レジスターに9を書き込む必要があります。DMAはさらに5つのディスクリプターを実行します。

読み出しDMAですべてのディスクリプターの Update ビットを記録するには、このレジスターをプログラムして一度に1つのディスクリプターを転送するか、または WR_CONTROL レジスターの Update ビットを設定します。

ディスクリプターIDは、WR_TABLE_SIZE に到達した後に、ループして0に戻ります。

WR_TABLE_SIZE - WR_DMA_LAST_PTR よりも多くのポインターを処理する場合は、2つの手順を実行する必要があります。まず、WR_TABLE_SIZE と同じ値を書き込むことにより WR_TABLE_SIZE までのポインターを処理し、それが完了するのを待ちます。次に、残りのディスクリプターの数を WR_DMA_LAST_PTR に書き込みます。

書き込みDMAですべてのディスクリプターの Status Update ビットを記録するには、このレジスターをプログラムして一度に1つのディスクリプターを転送します。

[31:8]: Unknown

[7:0]:0xFF

0x0014 WR_TABLE_SIZE

RW

[31:7]: 予約済み

[6:0]: Size -1

このレジスターを使用すると、ユーザーは128エントリーのデフォルトサイズよりも小さいテーブルサイズを柔軟に指定できます。小さいサイズはメモリーを節約します。このレジスターを目的の値-1でプログラムします。

この値は、最後の Descriptor ID を指定します。

[31:7]: Unknown

[6:0]: 0x7F

0x0018 WR_CONTROL

RW

[31:1]: 予約済み

[0]: Update

ディスクリプターの処理状況のレポート方法を制御します。Update ビットが設定されている場合、処理されたすべてのディスクリプターのステータスを返します。設定されていない場合、WR_DMA_LAST_PTR レジスターの最新のエントリーのステータスのみを返信します。

[31:1]: Unknown

[0]: 0x0