GR740-UM-DS, Nov 2017, Version 1.7
161
www.cobham.com/gaisler
GR740
for header and data. If a length field is zero, the corresponding part of a packet is skipped and if both
are zero no packet is sent. The maximum header length is 255 bytes and the maximum data length is
16 MiB - 1. When the pointer and length fields have been set, the enable bit should be set to enable the
descriptor. This must always be done last. The other control bits must also be set before enabling the
descriptor.
The transmit descriptors are 16 bytes in size so the maximum number in a single table is 64. The dif-
ferent fields of the descriptor together with the memory offsets are shown in the tables below.
The HC bit should be set if RMAP CRC should be calculated and inserted for the header field and
correspondingly the DC bit should be set for the data field. The header CRC will be calculated from
the data fetched from the header pointer and the data CRC is generated from data fetched from the
data pointer. The CRCs are appended after the corresponding fields. The non-CRC bytes field is set to
the number of bytes in the beginning of the header field that should not be included in the CRC calcu-
lation.
The CRCs are sent even if the corresponding length is zero, but when both lengths are zero no packet
is sent, not even an EOP.
13.4.5.4 Starting transmissions
When the descriptors have been initialized, the transmit enable bit in the DMA control register has to
be set to enable transmission. New descriptors can be activated in the table on the fly (while transmis-
sion is active). Each time a set of descriptors is added, the transmit enable bit in the corresponding
AMBA port DMA control/status register should be set. This has to be done because each time the port
encounters a disabled descriptor this register bit is set to 0.
Table 148.
TXDMA transmit descriptor word 0 (address offset 0x0)
31
18 17 16 15 14 13 12 11
8
7
0
RESERVED
DC HC RE IE WR EN
NONCRCLEN
HEADERLEN
31: 18
RESERVED
17
Append data CRC (DC) - Append CRC calculated according to the RMAP specification after the
data sent from the data pointer. The CRC covers all the bytes from this pointer. A null CRC will
be sent if the length of the data field is zero.
16
Append header CRC (HC) - Append CRC calculated according to the RMAP specification after the
data sent from the header pointer. The CRC covers all bytes from this pointer except a number of
bytes in the beginning specified by the non-crc bytes field. The CRC will not be sent if the header
length field is zero.
15
RESERVED
14
Interrupt enable (IE) - If set, an interrupt will be generated when the packet has been transmitted and
the transmitter interrupt enable bit in the DMA control register is set.
13
Wrap (WR) - If set, the descriptor pointer will wrap and the next descriptor read will be the first one
in the table (at the base address). Otherwise the pointer is increased with 0x10 to use the descriptor at
the next higher memory location.
12
Enable (EN) - Enable transmitter descriptor. When all control fields (address, length, wrap and crc)
are set, this bit should be set. While the bit is set the descriptor should not be touched since this
might corrupt the transmission. The GRSPW clears this bit when the transmission has finished.
11: 8
Non-CRC bytes (NONCRCLEN)- Sets the number of bytes in the beginning of the header which
should not be included in the CRC calculation. This is necessary when using path addressing since
one or more bytes in the beginning of the packet might be discarded before the packet reaches its
destination.
7: 0
Header length (HEADERLEN) - Header Length in bytes. If set to zero, the header is skipped.