
Fast AMBA Peripherals
12-36
GMS30C7201 Data Sheet
CPU and DMA Register Access Sizes
Bit positioning, byte ordering and addressing of the MIr are described in terms of little
endian ordering. All MIr control and status registers are 8-bits wide and are located in
the least significant byte of individual words. Transmit and receive data buffers are 32
bits wide, with the first byte to be transmitted/ or received located in the least significant
byte position. The ARM peripheral bus does not support byte or half-word operations.
All reads and writes of the MIr by the CPU should be word wide. Separate DMA
requests exist for the transmit and the receive buffer. If the DMA controller is used to
service the transmit and/or receive buffers, the user must ensure the DMA is properly
configured to perform single word-wide accesses. Burst mode DMA is not supported
by the peripheral. Refer to
Table 12-34: Ir Interface Block Registers and their
Physical Addresses
on page 12-52 for a summary of the MIr serial port
’
s registers.
12.8.2 MIr Register Definitions
The MIr uses the control and data registers described in the previous section. These
are shared with the FIr interface and can only be used with the MIr when the MIr is
selected using the IrEnable register. In addition to the shared registers there are two
status registers specific to the MIr.
The status registers contain bits that signal CRC, overrun, underrun and receiver abort
errors as well as the transmit buffer service request, receive buffer service request and
end of frame conditions. Detection of end of frame, underrun and receiver abort errors
signal interrupt requests to the interrupt controller. The status registers also contains
flags for transmitter busy, receiver synchronized, receive buffer not empty, transmit
buffer not full and receive transition detect (No interrupt is generated).
12.8.3 MIr Status Register 0
MIr status register 0 (MISR0) contains bits that signal the transmit buffer service
request, receive buffer service request, receiver abort, transmit buffer underrun and the
end/error in receive buffer condition. Detection of receiver abort, transmit buffer
underrun and the end/error in receive buffer condition signal an interrupt request to the
interrupt controller.
Bits that cause an interrupt signal the interrupt request as long as the bit is set. Once
the bit is cleared, the interrupt is cleared. Read/write bits are called status bits, read-
only bits are called flags. Status bits are referred to as
“
sticky
”
(once set by hardware,
they must be cleared by software). Writing a one to a sticky status bit clears it, writing
a zero has no effect. Read-only flags are set and cleared by hardware, writes have no
effect.
End/Error in buffer Status (EIF)(read-only)
The end/error in buffer flag (EIF) is a read-only bit that is set when any tag bits (32-36)
are set in either entry of the receive buffer, and is cleared when no error bits are set
within the buffer. When EIF is set an interrupt is signalled and DMA requests to empty
the receive buffer are disabled until EIF is cleared. Once all set tag bits are cleared from
the receive buffer, EIF is automatically cleared, which in turn clears the interrupt and
re-enables the receive buffer DMA request.
Transmit Underrun Status (TUR) (read/write)
The transmit underrun status bit (TUR) is set when the transmit logic attempts to fetch
data from the transmit buffer while it and the tail register are empty. When an underrun
occurs, the transmitter takes one of the following two actions. When the transmit
underrun select bit is clear (TUS=0) the transmitter ends the frame by shifting out the
CRC which is calculated continuously on outgoing data, followed by a flag. When
TUS=1, the transmitter is forced to transmit an abort and continues to transmit ones
until valid data is again available within the buffer. Once data resides in the transmit