
6.4.3
The receiver and transmtter FIFO levels of both UARTs is mrrored (shadowed) in this local configuraton register, as follows.
Bits
Description
7:0
UART0 Receiver FIFO Level
(RFL[7:0])
15:8
UART1 Receiver FIFO Level
(RFL[7:0])
23:16
UART0 Transmitter FIFO Level
(TFL[7:0])
31:24
UART1 Transmitter FIFO Level
(TFL[7:0])
6.4.4
UART Interrupt Source Register ‘UIS’ (Offset 0x0C)
The Interrupt Source Register of each UART and the general data status, is mrrored (shadowed) in this local configuration
register, as follows.
Bits
Description
5:0
UART0 Interrupt Source Register
(ISR[5:0])
11:6
UART1 Interrupt Source Register
(ISR[5:0])
15:12
Reserved
16
UART0 Good-Data Status
17
UART1 Good-Data Status
30:18
Reserved
31
Global Good-Data Status
. This bit is the logical AND of bits 16 and 17,
i.e. it is set if Good-Data Status of all internal UARTs is set.
Good-Data status for a given internal UART is set when all of the following conditions are met:
ISR reads a level0 (no-interrupt pending), a level 2a (receiver data available), a level 2b (receiver time-out) or a level 3
(transmtter THR empty) interrupt
LSR[7] is clear so there is no parity error, framng error or break in the FIFO
LSR[1] is clear so no over-run error has occurred
If the device driver software reads a given channel’s receiver FIFO levels (fromthe UFL register) followed by the UIS register,
and the Good-Data status for that channel is set, the driver can remove the number of bytes indicated by the FIFO level without
the need to read the line status register of that channel. This feature enhances the driver efficiency.
For a given channel, if the Good-Data status bit is
not
set, then the software driver should examne the corresponding ISR bits.
If the ISR indicates a level 4 or higher interrupt, the interrupt is due to a change in the state of modemlines or detection of flow
control characters, for that channel. The device driver-software should then take appropriate measures as would in any other
550/950 driver. When ISR indicates a level 1 (receiver status) interrupt then the driver can examne the Line Status Register
(LSR) of the relevant channel. Since reading the LSR clears LSR[7], the device driver-software should either flush or empty the
contents of the receiver FIFO, otherwise the Good-Data status will no longer be valid.
The UART FIFO Level (UFL), the UART Interrupt Source register (UIS) and the Global Interrupt Status register (GIS) are
allocated adjacent address offsets (08h to 10h) in the Base Address Register. The device driver-software can read all of the
above registers in a single burst read operation. The location offset of the registers are such that the FIFO levels are usually read
before the status registers so that the status of the N characters indicated in the receiver FIFO levels are valid.
DataSheet Revision 1.1
Page 21
OX16PCI952
OXFORD SEMICONDUCTOR LTD.
UART FIFO Levels ‘UFL’ (Offset 0x08)
Read/Write
EEPROM
-
-
-
-
Reset
0x00h
0x00h
0x00h
0x00h
PCI
R
R
R
R
Read/Write
EEPROM
-
-
-
-
-
-
-
Reset
01h
01h
0h
PCI
R
R
R
R
R
R
R
1
1
00h
1