GR740-UM-DS, Nov 2017, Version 1.7
415
www.cobham.com/gaisler
GR740
If the received packet is not of RMAP type the header CRC error indication bit cannot be used. It is
still possible to use the DC bit if the complete packet is covered by a CRC calculated using the RMAP
CRC definition. This is because the core does not restart the calculation after the header has been
received but instead calculates a complete CRC over the packet. Thus any packet format with one
CRC at the end of the packet calculated according to RMAP standard can be checked using the DC
bit.
If the packet is neither of RMAP type nor of the type above with RMAP CRC at the end, then both the
HC and DC bits should be ignored.
35.5.9 Error handling
If a packet reception needs to be aborted because of congestion on the network, the suggested solution
is to set link disable to ‘1’. Unfortunately, this will also cause the packet currently being transmitted to
be truncated but this is the only safe solution since packet reception is a passive operation depending
on the transmitter at the other end. A channel reset bit could be provided but is not a satisfactory solu-
tion since the untransmitted characters would still be in the transmitter node. The next character
(somewhere in the middle of the packet) would be interpreted as the node address which would prob-
ably cause the packet to be discarded but not with 100% certainty. Usually this action is performed
when a reception has stuck because of the transmitter not providing more data. The channel reset
would not resolve this congestion.
If an AHB error occurs (see also the AMBA ERROR propagation description in section 5.10) during
reception the current packet is spilled up to and including the next EEP/EOP and then the currently
active channel is disabled and the receiver enters the idle state. A bit in the channels control/status
register is set to indicate this condition.
35.5.10 Promiscuous mode
The core supports a promiscuous mode where all the data received is stored to the first DMA channel
enabled regardless of the node address and possible early EOPs/EEPs. This means that all non-EOP/
EEP N-Chars received will be stored to the DMA channel. The rxmaxlength register is still checked
and packets exceeding this size will be truncated.
RMAP commands will still be handled by the RMAP hardware target when promiscuous mode is
enabled, if the RMAP enable bit in the core’s Control register is set. If the RMAP enable bit is cleared,
RMAP commands will also be stored to a DMA channel.
35.6
Transmitter DMA channels
The transmitter DMA engine handles transmission of data from the DMA channels to the SpaceWire
network. Each receive channel has a corresponding transmit channel which means there can be up to
4 transmit channels. It is however only necessary to use a separate transmit channel for each receive
channel if there are also separate entities controlling the transmissions. The use of a single channel
with multiple controlling entities would cause them to corrupt each other’s transmissions. A single
channel is more efficient and should be used when possible.
Multiple transmit channels with pending transmissions are arbitrated in a round-robin fashion.
35.6.1 Basic functionality of a channel
A transmit DMA channel reads data from the AHB bus and stores them in the transmitter FIFO for
transmission on the SpaceWire network. Transmission is based on the same type of descriptors as for
the receiver and the descriptor table has the same alignment and size restrictions. When there are new
descriptors enabled the core reads them and transfer the amount data indicated.