インテルのみ表示可能 — GUID: ggu1487286793828
Ixiasoft
インテルのみ表示可能 — GUID: ggu1487286793828
Ixiasoft
7.2.2.1. 読み出しDMA内部Descriptor Controllerレジスター
内部Read DMA Descriptorレジスターは、次の情報を提供します。
- ホストメモリー内のディスクリプター・テーブルの元の位置
- 内部Endpoint読み出しコントローラーFIFOメモリー内のディスクリプター・テーブルの必要な位置
- テーブルサイズ。最大サイズは128エントリーで、各エントリーは32バイトです。メモリー所要量は4096 KBです。
- DMAディスクリプターの完了を追跡するための追加フィールド
内部を選択すると、このレジスターはRead Descriptor Controller Slaveを介してアクセスされます。外部でインスタンス化されたDescriptor Controllerを選択すると、このレジスターはBAR0を介してアクセスされます。Endpoint読み出しコントローラーFIFOはオフセット0x0000にあります。
次の表は、内部Read DMA Descriptor Controllerのレジスターおよびそのオフセットを示しています。このレジスターは、Read Descriptor Controller Slaveを介してアクセスされます。外部でインスタンス化されたDMA Descriptor Controllerを選択すると、このレジスターはユーザー定義のBARを介してアクセスされます。ソフトウェアは、Read DMA Descriptor Controllerのベースアドレス RdDC_SLV_ADDR にアドレスオフセットを追加する必要があります。内部Descriptor Controllerを選択すると、このレジスターはBAR0を介してアクセスされます。Read DMA Descriptor Controllerレジスターは、オフセット0x0000から始まります。
アドレスオフセット |
レジスター |
アクセス |
説明 |
リセット値 |
---|---|---|---|---|
0x0000 |
Read Status and Descriptor Base (Low) | RW |
PCIe* システムメモリーの読み出しステータスおよびディスクリプター・テーブルのベースアドレスの下位32ビットを指定します。このアドレスは32バイト境界にある必要があります。 |
Unknown |
0x0004 |
Read Status and Descriptor Base (High) | RW |
PCIe* システムメモリーの読み出しステータスおよびディスクリプター・テーブルのベースアドレスの上位32ビットを指定します。 |
Unknown |
0x0008 |
Read Descriptor FIFO Base (Low) | RW |
エンドポイント・メモリー内の読み出しディスクリプターFIFOのベースアドレスの下位32ビットを指定します。アドレスは、Read Data MoverのAvalon-MM Master Portから見た、Descriptor ControllerのRead Descriptor TableのAvalon-MM Slave PortのAvalon-MMアドレスである必要があります。 |
Unknown |
0x000C |
Read Descriptor FIFO Base (High) | RW |
エンドポイントAvalon-MMメモリー内の読み出しディスクリプターFIFOのベースアドレスの上位32ビットを指定します。これは、Read Data MoverのAvalon-MM Master Portから見た、ディスクリプター・コントローラーのRead Descriptor TableのAvalon-MM Slave PortのAvalon-MMアドレスである必要があります。 |
Unknown |
0x0010 |
RD_DMA_LAST_PTR | RW |
[31:8]: 予約済み [7:0]: DescriptorID 読み出されると、要求された最後のディスクリプターのIDを返します。DMAがリセットされている場合、値0xFFを返します。 書き込まれると、要求された最後のディスクリプターのIDを指定します。読み出された値および書き込まれた値の違いは、処理されるディスクリプターの数です。 例えば、値が4の場合、最後に要求されたディスクリプターは4です。さらに5つのディスクリプターを指定するには、ソフトウェアは RD_DMA_LAST_PTR レジスターに9を書き込む必要があります。DMAはさらに5つのディスクリプターを実行します。 読み出しDMAですべてのディスクリプターの Update ビットを記録するには、このレジスターをプログラムして一度に1つのディスクリプターを転送するか、または RD_CONTROL レジスターの Update ビットを設定します。 ディスクリプターIDは、RD_TABLE_SIZE に到達した後に、ループして0に戻ります。 RD_TABLE_SIZE - RD_DMA_LAST_PTR よりも多くのポインターを処理する場合は、2つの手順を実行する必要があります。まず、RD_TABLE_SIZE と同じ値を書き込むことにより RD_TABLE_SIZE までのポインターを処理し、それが完了するのを待ちます。次に、残りのディスクリプターの数を RD_DMA_LAST_PTR に書き込みます。 |
[31:8]: Unknown [7:0]:0xFF |
0x0014 | RD_TABLE_SIZE | RW |
[31:7]: 予約済み [6:0]: Size -1 このレジスターは、128エントリーのデフォルトサイズよりも小さいテーブルサイズを提供します。小さいサイズはメモリーを節約します。このレジスターを目的の値-1でプログラムします。 この値は、最後の Descriptor ID を指定します。 |
[31:7]: Unknown [6:0]: 0x7F |
0x0018 | RD_CONTROL | RW |
[31:1]: 予約済み [0]: Update ディスクリプターの処理状況のレポート方法を制御します。Update ビットが設定されている場合、処理されたすべてのディスクリプターのステータスを返します。設定されていない場合、RD_DMA_LAST_PTR レジスターの最新のエントリーのステータスを返信します。 デフォルト値は0です。 |
[31:1]: Unknown [0]: 0x0 |