Sundance Spas ST201 manual Txdmalistptr, Bit

Models: ST201

1 145
Download 145 pages 54.77 Kb
Page 79
Image 79

Sundance Technology

ST201

PRELIMINARY draft 2

TXDMALISTPTR

 

Class

I/O Registers, DMA

Base Address

IoBaseAddress register value

Address Offset

0x04

Access Mode

Read/Write

Width

32 bits

TxDMAListPtr holds the physical address of the current TxDMA Frame Descriptor in the TxDMAList. A value of zero in TxDMAListPtr is interpreted by the ST201 to mean that no more frames remain to be trans- ferred by TxDMA. TxDMAListPtr can only point to addresses on 8-byte boundaries, so TFD’s must be aligned on 8-byte boundaries. TxDMAListPtr is cleared by reset. TxDMAListPtr may be written directly by the host system to point the ST201 at the head of a newly created TxDMAList. Writes to TxDMAListPtr are ignored while the current value in TxDMAListPtr is non-zero. To avoid access conflicts between the ST201 and the host system, the host system must issue a TxDMAHalt before writing to TxDMAListPtr (unless the host system has specific knowledge that TxDMAListPtr contains zero). TxDMAListPtr is also updated by the ST201 as it processes TFD’s in the TxDMAList. As the ST201 finishes processing a TFD, it fetches the value from TxDMANextPtr. If it is zero, the TxDMA engine becomes idle. Also, if TxDMA polling is enabled (TxDMAPollPeriod is non-zero), the old value in TxDMAListPtr is preserved. If the value fetched from TxD- MANextPtr is non-zero, then the value is stored temporarily in the ST201, and the ST201 inspects the TFD at that location. The temporary value is loaded into TxDMAListPtr, advancing the ST201 to the new TFD. There are two ways the TxDMA engine can leave the idle state. First, the driver can write a nonzero value directly to TxDMAListPtr. Second, if polling is enabled, then the TxDMA engine will leave the idle state when a non-zero value is finally fetched from TxDMANextPtr. Reading TxDMAListPtr while the TxDMA engine is polling has the following side effects:

1.Any pending decision to advance to the next TFD is cancelled.

2.The TxDMA engine fetches the TxDMANextPtr in the current (completed) TFD immediately, rather than waiting for the full TxDMAPollPeriod interval. (It is assumed that the host system will only read TxDMAListPtr when it is in the process of inserting a TFD at the list head, so it will have written a new value into TxDMANextPtr to hook up the inserted TFD).

BIT

31..0

BIT NAME

TxDMAListPtr

BIT DESCRIPTION

Physical address, on a 8-byte boundary, of the current TFD in the TxD- MAList.

79

Page 79
Image 79
Sundance Spas ST201 manual Txdmalistptr, Bit