9.0 Remote DMA
The Remote DMA channel is used to both assemble pack-
ets for transmission, and to remove received packets from
the Receive Buffer Ring. It may also be used as a general
purpose slave DMA channel for moving blocks of data or
commands between host memory and local buffer memory.
There are three modes of operation, Remote Write, Remote
Read, or Send Packet.
Two register pairs are used to control the Remote DMA, a
Remote Start Address (RSAR0, RSAR1) register pair and a
Remote Byte Count (RBCR0, RBCR1) register pair. The
Start Address Register pair points to the beginning of the
block to be moved while the Byte Count Register pair is
used to indicate the number of bytes to be transferred. Full
handshake logic is provided to move data between local
buffer memory and a bidirectional I/O port.
REMOTE WRITE
A Remote Write transfer is used to move a block of data
from the host into local buffer memory. The Remote DMA
will read data from the I/O port and sequentially write it to
local buffer memory beginning at the Remote Start Address.
The DMA Address will be incremented and the Byte Coun-
ter will be decremented after each transfer. The DMA is
terminated when the Remote Byte Count Register reaches
zero.
REMOTE READ
A Remote Read transfer is used to move a block of data
from local buffer memory to the host. The Remote DMA will
sequentially read data from the local buffer memory, begin-
ning at the Remote Start Address, and write data to the I/O
port. The DMA Address will be incremented and the Byte
Counter will be decremented after each transfer. The DMA
is terminated when the Remote Byte Count Register reach-
es zero.
SEND PACKET COMMAND
The Remote DMA channel can be automatically initialized
to transfer a single packet from the Receive Buffer Ring.
The CPU begins this transfer by issuing a ‘‘Send Packet’’
Command. The DMA will be initialized to the value of the
Boundary Pointer Register and the Remote Byte Count
Register pair (RBCR0, RBCR1) will be initialized to the value
of the Receive Byte Count fields found in the Buffer Header
of each packet. After the data is transferred, the Boundary
Pointer is advanced to allow the buffers to be used for new
receive packets. The Remote Read will terminate when the
Byte Count equals zero. The Remote DMA is then prepared
to read the next packet from the Receive Buffer Ring. If the
DMA pointer crosses the Page Stop Register, it is reset to
the Page Start Address. This allows the Remote DMA to
remove packets that have wrapped around to the top of the
Receive Buffer Ring.
Note 1:
In order for the ST-NIC to correctly execute the Send Packet Com-
mand, the upper Remote Byte Count Register (RBCR1) must first
be loaded with 0FH.
Note 2:
The Send Packet command cannot be used with 680x0 type proc-
essors.
Remote DMA Autoinitialization from Buffer Ring
TL/F/11157 – 17
23
Obsolete