controller. Fully compliant to PC Card Standard 7.0*,
and PCI Bus Specification 2.2, Power Management
1.0.
• Function access to pre-configure UART prior to
handover to generic device drivers.
• UART fully software compatible with 16C550-type
devices.
• Baud rates up to 15Mbps in asynchronous mode and
60Mbps in external 1x clock mode
• 128-byte deep FIFO per transmitter and receiver
• Flexible clock prescaler from 1 to 31.875
• Automated in-band flow control using programmable
Xon/Xoff in both directions
• Automated out-of-band flow control using CTS#/RTS#
and/or DSR#/DTR#
* Compliance to PC Card Standard 7.1 requires small external circuitry.
Cardbus / PCI interface
• Arbitrary trigger levels for receiver and transmitter
FIFO interrupts and automatic in-band and out-ofband flow control
• Infra-red (IrDA) receiver and transmitter operation
• 9-bit data framing as well as 5,6,7 and 8
• Global Interrupt Status and readable FIFO levels to
facilitate implementation of efficient device drivers
• Detection of bad data in the receiver FIFO
• Operation via IO or memory mapping.
• 2 Multi-purpose I/O pins which can be configured as
interrupt input or ‘wake-up’ pins
• Auto-detection of optional MicrowireTM based
EEPROM, to reconfigure device.
Autodetected.
• 3.3V operation
• 100 pin TQFP package
DESCRIPTION
The OXCB950 is a single chip UART solution for either
cardbus or PCI-based serial add-in cards. It is a single
function device, offering memory or IO mapped access to
the ultra-high performance OX16C950 UART.
This UART is the fastest available PC-compatible UART,
offering data rates up to 15Mbps and 128-deep transmitter
and receiver FIFOs. The deep FIFOs reduce CPU
overhead and allow utilisation of higher data rates. The
UART is software compatible with the widely used industrystandard 16C550 devices and compatibles, as well as the
OX16C95x family of high performance UARTs. In addition
to increased performance and FIFO size, the UART also
provides the full set of OX16C95x enhanced features
including automated in-band flow control, readable FIFO
levels etc.
A set of local registers is available to enhance device driver
efficiency and reduce interrupt latency. The internal UART
has features such as shadowed FIFO fill levels, an interrupt
source register and Good-Data Status, readable in one
DWORD register visible to logical function0 in IO space
and memory space.
The efficient 32-bit, 33MHz target-only interface is
compliant with both the cardbus sections of the PC CARD
Standard, release 7.0*, and the PCI bus specifications
version 2.2 and version 1.0 of PCI Power Management
Specification.
For full flexibility, all the default register values can be
overwritten using an optional MicrowireTM serial EEPROM.
This EEPROM can also be used to provide function access
to pre-configure the UART into enhanced modes prior to
any cardbus/PCI configuration accesses and before control
is handed to generic device drivers.
25 ParkGate, Milton Park, Abingdon, Oxon, OX14 4SH, UK
Tel: +44 (0)1235 824900 Fax: +44(0)1235 821141
6.2.1 CARDBUS / PCI CONFIGURATION SPACE REGISTER MAP.....................................................................................13
6.3 ACCESSING THE UART FUNCTION ................................................................................................................................15
6.3.1 CARDBUS/PCI ACCESS TO THE INTERNAL UART....................................................................................................15
6.4 ACCESSING LOCAL CONFIGURATION REGISTERS....................................................................................................16
6.4.1 LOCAL CONFIGURATION AND CONTROL REGISTER ‘LCC’ (OFFSET 0X00).........................................................16
6.6 CARDBUS/PCI POWER MANAGEMENT..........................................................................................................................21
6.6.1 POWER MANAGEMENT VIA UART/ MIO PINS............................................................................................................21
6.6.2 POWER REPORTING.....................................................................................................................................................22
6.6.3 CARDBUS POWER MANAGEMENT.............................................................................................................................23
6.7 CARDBUS STATUS REGISTERS .....................................................................................................................................24
6.8 CARDBUS TUPLE INFORMATION ...................................................................................................................................26
7.4 TRANSMITTER AND RECEIVER FIFOS...........................................................................................................................34
7.4.1 FIFO CONTROL REGISTER ‘FCR’................................................................................................................................34
7.5 LINE CONTROL & STATUS...............................................................................................................................................35
7.5.1 FALSE START BIT DETECTION....................................................................................................................................35
7.5.2 LINE CONTROL REGISTER ‘LCR’................................................................................................................................35
7.5.3 LINE STATUS REGISTER ‘LSR’....................................................................................................................................36
7.6.2 INTERRUPT STATUS REGISTER ‘ISR’........................................................................................................................38
7.7.1 MODEM CONTROL REGISTER ‘MCR’..........................................................................................................................39
Data Sheet Revision 1.1 Page 2
OXFORD SEMICONDUCTOR LTD.
7.7.2 MODEM STATUS REGISTER ‘MSR’.............................................................................................................................40
7.8 OTHER STANDARD REGISTERS.....................................................................................................................................40
7.8.2 SCRATCH PAD REGISTER ‘SPR’.................................................................................................................................40
7.9.1 ENHANCED FEATURES REGISTER ‘EFR’...................................................................................................................41
7.9.2 SPECIAL CHARACTER DETECTION............................................................................................................................42
7.10.1 GENERAL OPERATION .................................................................................................................................................43
7.10.3 TIMES CLOCK REGISTER ‘TCR’...................................................................................................................................43
7.11 ADDITIONAL FEATURES ..................................................................................................................................................45
7.11.1 ADDITIONAL STATUS REGISTER ‘ASR’......................................................................................................................45
7.11.2 FIFO FILL LEVELS ‘TFL & RFL’.....................................................................................................................................46
7.11.3 ADDITIONAL CONTROL REGISTER ‘ACR’..................................................................................................................46
7.11.12 GOOD-DATA STATUS REGISTER ‘GDS’ .....................................................................................................................49
7.11.13 DMA STATUS REGISTER ‘DMS’ ...................................................................................................................................50
7.11.14 PORT INDEX REGISTER ‘PIX’.......................................................................................................................................50
8 SERIAL EEPROM SPECIFICATION ........................................................................................... 51
8.1 EEPROM DATA ORGANISATION.....................................................................................................................................51
8.1.6 ZONE5: FUNCTION ACCESS........................................................................................................................................55
9 COMPLIANCE TO PC CAR D STANDARDS, 7.0 AND 7.1............................................................57
11 DC ELECTRICAL CHARACTERISTICS................................................................................... 61
11.1 NORMAL 3.3V I/O BUFFERS.............................................................................................................................................61
12 POWER CONSUMPTION MEASUREMENTS........................................................................... 63
12.1 STATIC CURRENT CONSUMPTION.................................................................................................................................63
12.2 CURRENT CONSUMPTION IN APPLICATION.................................................................................................................63
Zero wait-state read/write operation yes no No
No. of external interrupt source pins 2 2 2
DWORD access to UART Interrupt Source
Registers & FIFO Levels
Good-Data status yes no No
Full Plug and Play with external EEPROM yes yes Yes
External 1x baud rate clock yes no No
Max baud rate in normal mode 15 Mbps 115 Kbps 1.5 Mbps
Max baud rate in 1x clock mode 60 Mbps n/a n/a
FIFO depth 128 16 64
Sleep mode yes no Yes
Auto Xon/Xoff flow yes no Yes
Auto CTS#/RTS# flow yes no Yes
Auto DSR#/DTR# flow yes no No
No. of Rx interrupt thresholds 128 4 4
No. of Tx interrupt thresholds 128 1 4
No. of flow control thresholds 128 n/a 4
Transmitter empty interrupt yes no No
Readable status of flow control yes no No
Readable FIFO levels yes no No
Clock prescaler options 248 n/a 2
Rx/Tx disable yes no No
Software reset yes no No
Device ID yes no No
9-bit data frames yes no No
RS485 buffer enable yes no No
Infra-red (IrDA) yes no Yes
16C650 +
PLX9050
yes no No
PLX9050
OXCB950
Table 1: OXCB950 performance compared with PLX + generic UART combinations in PCI mode
1.1 Improvements of the OXCB950 over discrete solutions:
Improved access timing:
Access to the internal UART requires zero or one PCI wait states. A cardbus/PCI read transaction from the internal UART can
complete within five PCI clock cycles and a write transaction to the internal UART can complete within four PCI clock cycles.
Reduces interrupt latency:
The OXCB950 offers shadowed FIFO levels and Interrupt status registers of the internal UART, as well as general device
interrupt status, to reduce the device driver interrupt latency.
Power management:
The OXCB950 complies with the Cardbus Power Management Specification, given by the PC CARD standard release 7.0/7.1,
the PCI Power Management Specification 1.0 and the PC98/99 Power Management specifications, by offering the extended
capabilities for Power Management and supporting the power states D0, D2 and D3. This achieves significant power savings by
allowing device drivers to power down the cardbus/PCI function and disable the UART channel.
Data Sheet Revision 1.1 Page 4
OXFORD SEMICONDUCTOR LTD.
OXCB950
A ‘wake-up’ event (the ‘power management event’) is requested via the PME# (PCI) or CSYSCHG (cardbus) pins from either of
the power states D2 or D3, by the UART line RI (for power state D3), and any modem line and the Serial Data In (for power state
D2).
Optional EEPROM:
The OXCB950 can be reconfigured from an external Microwire
TM
based EEPROM. However, this is not required in many
applications as default values are provided for typical applications. Features available via the use of the EEPROM include
redefining device ID’s and vendor/sub-vendor ID fields in the PCI header space, cardbus-to-pci mode change, redefining Tuple
Information (relevant to cardbus applications only), and selectively enabling/disabling interrupts, powerdown and wakeup
requests.
86 CP_I RST# System reset
94 CP_OD INTA# /CINT# Interrupt Pin. For both cardbus and pci applications
59 CP_O CSYSCHG Power management event signal, for Cardbus applications
51 CP_OD PME# Power management event signal, for PCI applications
32 I SLEW_RATE Slew rate control for cardbus/pci outputs
1
For cardbus applications, the pin z_frame requires a pull-up (4k7) on the board. See PC Card Standard 7.0/7.1, section
5.3.3.3.3 “pull-up resistor requirements”.
C/P_I/O AD[31:0] Multiplexed Address/Data bus.
For PCI applications this pin must be connected to the IDSEL
pin on the PCI connector. For cardbus applications, there is
no IDSEL signal, so this pin must be tied to Vdd (3.3v) via a
pull-up on the board. (10K recommended).
This pin must be No-Connect (NC) for PCI applications.
This pin must be No-Connect (NC) for cardbus applications.
For cardbus applications, this must be tied to Vdd on the
board. For PCI applications, this must be tied to Gnd on the
board.
48 T_O RTS# Active-low modem request-to-send output. If automated
46 T_I CTS# Active-low modem clear-to-send input. If automated CTS#
45 T_I
43 T_I
37 O XTLO Crystal oscillator output
36 I XTLI Crystal oscillator input (10MHz – 40 MHz) or external clock
T_I
T_O
T_O
T_I
T_I
IrDA_Out
EXT_DATA_IN
IrDA_In
DTR#
485_En
Tx_Clk_Out
DSR#
Rx_Clk_In
RI#
Tx_Clk_In
OXCB950
UART serial data output
UART IrDA data output when MCR[6] of the corresponding
channel is set in enhanced mode
UART serial data input
UART IrDA data input when IrDA mode is enabled (see
above)
Active-low modem data-terminal-ready output. If automated
DTR# flow control is enabled, the DTR# pin is asserted and
deasserted if the receiver FIFO reaches or falls below the
programmed thresholds, respectively.
In RS485 half-duplex mode, the DTR# pin may be
programmed to reflect the state of the the transmitter empty
bit to automatically control the direction of the RS485
transceiver buffer (see register ACR[4:3])
Transmitter 1x clock (baud rate generator output). For
isochronous applications, the 1x (or Nx) transmitter clock
may be asserted on the DTR# pins (see register CKS[5:4])
RTS# flow control is enabled, the RTS# pin is deasserted
and reasserted whenever the receiver FIFO reaches or falls
below the programmed thresholds, respectively.
flow control is enabled, upon deassertion of the CTS# pin,
the transmitter will complete the current character and enter
the idle mode until the CTS# pin is reasserted. Note: flow
control characters are transmitted regardless of the state of
the CTS# pin.
Active-low modem data-set-ready input. If automated DSR#
flow control is enabled, upon deassertion of the DSR# pin,
the transmitter will complete the current character and enter
the idle mode until the DSR# pin is reasserted. Note: flow
control characters are transmitted regardless of the state of
the DSR# pin
External receiver clock for isochronous applications. The
Rx_Clk_In is selected when CKS[1:0] = ‘01’.
Active-low modem Ring-Indicator input
External transmitter clock. This clock can be used by the
transmitter (and indirectly by the receiver) when CKS[6]=’1’.
pin. Maximum frequency 60MHz
Data Sheet Revision 1.1 Page 8
OXFORD SEMICONDUCTOR LTD.
Multi-purpose & External
interrupt pins
26
27
EEPROM pins
28 O EE_CK EEPROM clock
29 O EE_CS EEPROM active-high Chip Select
31 IU EE_DI EEPROM data in (to be connected to the EEPROM DO
30 O EE_DO EEPROM data out. (to be connected to the EEPROM DI
Miscellaneous pins
34 ID TEST0 Test Pin 0. Should be held low at all times.
33 ID TEST1 Test Pin 1. Should be held low at all times
Power and ground2
89, 14, 63 V VDD3I_CB Supplies power to the pre-drive area of the dual mode
56, 71, 81, 91, 7, 21 V VDD3OP_CB Supplies power to the output drive of the dual mode
38, 39 V VDDIP Supplies power to the core-logic and pre-drive area of the
41, V VDDO Suppiles power to the output drive of standard IO buffers.
62, 87, 13 G VSSI_CB Supplies ground to the pre-drive area of the dual mode
55, 64,65,70, 76, 82, 90, 92, 97,
2, 6, 12, 20,
35 G VSSIP Supplies gnd to the core-logic and pre-drive area of the
40, 50 G VSSO Supplies gnd to the output drive of standard IO buffers.
Dir1 Name Description
T_I/O
T_I/O
G VSSOP_CB Supplies ground to the output drive of the dual mode
MIO[0]
MIO[1]
Multi-purpose I/O pins.
Can be driven high or low, or be used to invoke
cardbus/PCI interrupts, and powerdown, wakeup requests.
pin).
When the optional serial EEPROM is connected, this pin
should be pulled up using an external 1-10k resistor. When
the EEPROM is not used, this external pull-up is not
required (internal pull-up is sufficient).
pin)
cardbus/pci IO buffers.
cardbus/pci IO buffers.
standard IO buffers.
cardbus/pci IO buffers.
cardbus/pci IO buffers.
standard IO buffers.
OXCB950
Table: Pin Descriptions
Note 1: Direction key:
I 3.3v Input, TTL compatible
ID 3.3v Input with pull-down, TTL compatible
IU 3.3v Input with pull-up, TTL compatible
O 3.3v Output, TTL compatible
T_O 5.0v tolerant TTL output
T_I 5.0v tolerant TTL input
T_I/O 5.0v tolerant TTL Bi-directional
Note 2: Power & Ground
There are several types of VDD and VSS in this design, providing not only power for the internal (core) and I/O pad area but also
special power lines to the dual mode cardbus/pci I/O buffers. These power rails are not connected internally.
This precaution reduces the effects of simultaneous switching outputs and undesirable RF radiation from the chip. Further
precaution is taken by segmenting the GND and VDD rails to isolate the PCI and UART pins.
This device implements the “common” silicon requirements given in the PC Card Standard, release 7.x.
The pinouts for this device have been assigned specifically to align the cardbus signals to the cardbus connector without any
signal crossovers. Since the assignment of signal pins on the cardbus connector is in a different sequence than those on the PCI
connector (due to the limitations of the cardbus connector) then for the PCI environment signal crossovers do inevtiably occur.
The following signal lines are affected for the PCI environment : SERR#, AD16, INTA, CLK, and RST#.
OXCB950
Data Sheet Revision 1.1 Page 10
OXFORD SEMICONDUCTOR LTD.
5 CONFIGURATION & OPERATION
OXCB950
The OXCB950 is configured by system start-up software
during the bootstrap process that follows bus reset.
By default, the device powers-up in the cardbus mode and
for this application mode, the system examines the
Cardbus CIS pointer value contained in the predefined PCI
Header region (at Dword 0Ahex) to locate the start of the
Cardbus Information Structure (CIS). It then traverses the
tuple information contained in this CIS area
NOTE1
to identify
the device type and the necessary resources requested by
the device.
For the PCI application mode, whereby the device’s default
cardbus mode is overridden into the PCI mode though the
use of the optional EEPROM (this takes place prior to any
configuration accesses), the system scans the PCI bus and
reads the vendor and device identification codes from any
devices it finds and the resources being requested.
For both cardbus and PCI applications, the system then
loads the device-driver software according to this
information and configures the I/O, memory and interrupt
resources. Device drivers can then access the functions at
the assigned addresses in the usual fashion, with the
improved data throughput provided by cardbus/PCI buses.
A set of local configuration registers have been provided
that can be used to control the device’s characteristics
(such as interrupt handling) and report internal functional
status. This is on top of the UART registers and the
registers contained in both the PCI configuration Space
and the Cardbus Information Structure (CIS). These local
registers can be set up by device drivers or from the
optional EEPROM.
The EEPROM can also be used to redefine the reset
values of most register areas to tailor the device to the end
users requirements if the default values do not meet the
specific requirements of the manufacturer, such as the
identification registers. As an additional enhancement, the
EEPROM can be used to pre-program the UART, allowing
pre-configuration, without requiring device driver changes.
This allows the enhanced features of the integrated UART
to be in place prior to handover to any generic device
drivers.
NOTE1
Windows Support for Cardbus applications, treats the information contained in the CIS area as “supplemental” information
for devices that are not fully described using the PCI configuration Space. This means that it is possible that provided the PCI
header space implements the minimum fields as recommended by Microsoft (the cardbus “Allocated” and “Reserved” fields are
defined) then Windows will not utilise the information contained in the CIS.
Data Sheet Revision 1.1 Page 11
OXFORD SEMICONDUCTOR LTD.
6 PCI TARGET CONTROLLER
OXCB950
6.1 Operation
The OXCB950 responds to the following cardbus/PCI
transactions:-
• Configuration access: For cardbus applications, the
OXCB950 responds to type 0 configuration reads and
writes if the bus address is selecting the configuration
registers for function 0. For pci applications, the
OXCB950 will respond to the same configuration
cycles provided that the signal IDSEL is also asserted
The device will respond to these configuration
transactions by asserting DEVSEL#. Data transfer
then follows. Any other configuration transaction will
be ignored by the OXCB950.
• IO reads/writes: The address is compared with the
addresses reserved in the I/O Base Address Registers
(BARs). If the address falls within one of the assigned
ranges, the device will respond to the IO transaction
by asserting DEVSEL#. Data transfer follows this
address phase. For all modes, only byte accesses are
possible to the function BARs (excluding the local
configuration registers for which WORD, DWORD
access is supported). For IO accesses to these
regions, the controller compares AD[1:0] with the byte enable signals as defined in the PCI specification. The
access is always completed; however if the correct BE
signal is not present the transaction will have no
effect.
• Memory reads/writes: These are treated in the same
way as I/O transactions, except that the memory
ranges are used. With the exception of Memory
accesses to the local configuration registers and the
cardbus status registers, Memory access to singlebyte regions such as the UART registers is always
expanded to DWORDs in the OXCB950. In other
words, the OXCB950 reserves a DWORD per byte in
single-byte regions. The device allows the user to
define the active byte lane using LCC[4:3] so that in
Big-Endian systems the hardware can swap the byte
lane automatically. For Memory mapped access in
single-byte regions, the OXCB950 compares the
asserted byte-enable with the selected byte-lane in
LCC[4:3] and completes the operation if a match
occurs, otherwise the access will complete normally
on the PCI bus, but it will have no effect on the UART.
• All other cycles (64-bit, special cycles, reserved
encoding etc.) are ignored.
The OXCB950 will complete all transactions as disconnectwith-data, i.e. the device will assert the STOP# signal
alongside TRDY#, to ensure that the Bus Master does not
continue with a burst access. The exception to this is Retry,
which will be signalled in response to any access while the
OXCB950 is reading from the serial EEPROM.
The OXCB950 performs medium-speed address decoding
as defined by the PCI specification. It asserts the
DEVSEL# bus signal two clocks after FRAME# is first
sampled low on all bus transaction frames which address
the chip. Fast back-to-back transactions are supported by
the OXCB950 as a target, so a bus master can perform
faster sequences of write transactions to the UART
registers, the PCI configuration space and the local
configuration registers when an inter-frame turn-around
cycle is not required.
The device supports any combination of byte-enables for
accesses to the PCI Configuration Registers, the Local
Configuration registers, the Cardbus Information Structure,
and the cardbus status registers. If a byte-enable is not
asserted, that byte is unaffected by a write operation and
undefined data is returned upon a read.
The OXCB950 performs parity generation and checking on
all cardbus/PCI bus transactions as defined by the 2
standards. If a parity error occurs during the bus address
phase, the device will report the error in the standard way
by asserting the SERR# bus signal. However if that
address/command combination is decoded as a valid
access, it will still complete the transaction as though the
parity check was correct.
The OXCB950 does not support any kind of caching or
data buffering, other than those in the UART function. In
general, all registers cannot be pre-fetched because there
may be side-effects on reads.
Data Sheet Revision 1.1 Page 12
OXFORD SEMICONDUCTOR LTD.
6.2 Configuration space
The OXCB950 is a single function device, with one PCI
configuration space (and for the default cardbus mode, one cardbus information structure).
All the required fields in the predefined PCI header region
have been implemented. This includes those fields in the
cardbus PC Card Standard that are termed “allocated” and
“reserved” for cardbus applications. This implementation is
a specific requirement for cardbus support in Windows 9x.
The device dependant region of the PCI configuration
space contains the cardbus/pci Power Management
Extended Capability register set and (for the cardbus mode only) the Tuples making up the Cardbus Information
Structure.
The format of the PCI configuration space, for cardbus and
pci modes, is as shown in the Table below.
In general, writes to any registers that are not implemented
are ignored, and all reads from unimplemented registers
return 0.
6.2.1 Cardbus / PCI Configuration Space Register map
31 16 15 0
Device ID Vendor ID 00h
Status Command 04h
BIST1 Header Type Reserved Reserved 0Ch
Base Address Register 0 (BAR0) – UART Function in I/O space 10h
Base Address Register 1 (BAR 1) - UART Function in Memory space 14h
Base Address Register 2 (BAR 2) – Local Configuration Registers in IO space 18h
Base Address Register 3 (BAR3) – Local Configuration Registers in Memory space 1Ch
Base Address Register 4 (BAR4) – Cardbus Status Registers in Memory Space
Subsystem ID Subsystem Vendor ID 2Ch
Reserved Reserved Interrupt Pin Interrupt Line 3Ch
Configuration Register Description Offset
Class Code Revision ID 08h
Function Event : Offset +0
Function Event Mask : Offset +4
Function Present State : Offset +8
Function Force Event : Offset +12
Reserved (Bar 5) 24h
Cardbus CIS Pointer 28h
Reserved 30h
Reserved Cap_Ptr 34h
Reserved 38h
OXCB950
Address
20h
Predefined PCI Header Region
Device Dependant PCI Region
Power Management Capabilities (PMC) Next Ptr Cap_ID 40h
* Tuples are available for the Cardbus mode only. These fields return all 0’s for the PCI mode of the device.
Table 2: Cardbus/PCI Configuration space
Data Sheet Revision 1.1 Page 13
OXFORD SEMICONDUCTOR LTD.
Reset value Program read/write Register name
Cardbus Mode PCI Mode EEPROM PCI
Vendor ID 0x1415 1 W R
Device ID 0x950B 1 W R
Command 0x0000 - R/W
Status 0x0290 W(bit 4) R/W
Revision ID 0x00 1 - R
Class code 0x070006 1 W R
Header type 0x00 - R
BAR 0 0x00000001 - R/W
BAR 1 0x00000000 - R/W
BAR 2 0x00000001 - R/W
BAR 3 0x00000000 - R/W
BAR 4 0x00000000 - R/W
Cardbus CIS Pointer 0x00000048 (relocate3 = 0)
or
0x00000000
(no CIS)
W R
0x00000080 (relocate3 = 1)
Subsystem VID 0x1415 2 W R
Subsystem ID 0x0001 2 W R
Cap ptr. 0x40 - R
Interrupt line 0x00 1 - R/W
Interrupt pin 0x01 W R
Cap ID 0x01 - R
Next ptr. 0x00 - R
PM capabilities 0x6C01 W R
PMC control/ status
0x0000 - R/W
register
OXCB950
Table 3: Cardbus/PCI configuration space default values
1
For cardbus applications, the PC Card Standard 7.x defines these fields as “Allocated”. However, for cardbus support in
Windows, these fields need to be defined to fully support the PCI configuration Space.
2
For cardbus applications, the PC Card Standard 7.x defines these fields as “Reserved”. However, for cardbus support in
Windows, these fields need to be defined to fully support the PCI configuration Space.
3
Relocate is a bit in the local configuration registers that can locate the start of the cardbus information structure at DWORD18
or DWORD 32 in the PCI configuration region. This bit is writable only via the optional EEPROM. The default state is 0, so the
CIS is available at DWORD18 in the PCI configuration region.
Data Sheet Revision 1.1 Page 14
OXFORD SEMICONDUCTOR LTD.
OXCB950
6.3 Accessing the UART function
Access to the internal UART is achieved via standard I/O and memory mapping, at addresses defined by the Base Address
Registers (BARs) in the PCI configuration space. These BARs are configured by the system to allocate blocks of I/O and
memory space to this logical function, according to the size required by the function. The base addresses that have been
allocated can then be used to access this uart function. The mapping of these BARs is shown in the table below.
BAR UART Function
0 Internal UART (I/O Mapped)
1 Internal UART(Memory Mapped)
2 Local configuration registers (I/O Mapped)
3 Local configuration registers (Memory Mapped)
4 Cardbus Status Registers (Memory Mapped)
– relevant to cardbus mode only
5 Unused
Table 4: Base Address Register definition
6.3.1 Cardbus/PCI access to the internal UART
IO and memory space
BAR 0 and BAR 1 of function 0 are used to access the internal UART. The function reserves an 8-byte block of I/O space and a
4K byte block of memory space. Once the I/O and/or the Memory access enable bits in the Command register (of the PCI
configuration space) are set, the UART can be accessed following the mapping shown in Table 5.
Note 1: Since 4K of memory space is reserved and the full bus address is not used for decoding, there are a number of aliases of the UART in the allocated
memory region
Data Sheet Revision 1.1 Page 15
Table 5: Cardbus/PCI address map for the internal UART (I/O and memory)
OXFORD SEMICONDUCTOR LTD.
OXCB950
6.4 Accessing Local configuration registers
The local configuration registers are a set of device specific registers which can always be accessed, irrespective of the cardbus
or pci modes of the device. They are mapped to the I/O and memory addresses set up in BAR2 and BAR3, with the offsets
defined for each register. I/O or memory accesses can be byte, word or dword accesses, however on little-endian systems such
as Intel 80x86 the byte order will be reversed.
6.4.1 Local Configuration and Control register ‘LCC’ (Offset 0x00)
This register defines control of ancillary functions such as Power Management, endian selection and the serial EEPROM. The
individual bits are described below.
Bits Description Read/Write Reset
0 Cardbus Mode. This bit returns the state of the device.
1=> Cardbus Mode. 0 => PCI Mode.
1 Relocate Cardbus Information Structure.
0 => Make available CIS at DWORD18 in PCI configuration Space
1 => Make available CIS at DWORD32 in the PCI configuration Space
This bit has meaning only for cardbus applications.
2 Reserved - R 0
4:3 Endian Byte-Lane Select for memory access to UART function.
00 = Select Data[7:0] 10 = Select Data[23:16]
01 = Select Data[15:8] 11 = Select Data[31:24]
Memory access to UART registers is always DWORD aligned. When
accessing 8-bit regions this option selects the active byte lane. As both
cardbus/PCI and PC architectures are little endian, the default value will
be used by systems, however, some non-PC architectures may need to
select the byte lane.
7:5 Power-down filter time. These bits define a time value for an internal
filter that filters the device’s powerdown requests before the request is
recognised. Once Function0 is ready to go into the power down mode,
the OXCB950 will wait for the specified filter time and if Function0 is still
in the power-down request mode, it can assert a cardbus/PCI interrupt
000 = Power-down request disabled
001 = 4 seconds
10:8 Reserved: Power management test bits. The device driver must write
zero to these bits
20:11 Reserved. - R 000h
21 Source of Cardbus Information Structure. This bit returns which area
the tuple information had been provided.
0 => CIS from hardcoded Values
1 => CIS from RAM (Set when a download into the CIS zone was made)
This bit has meaning only for cardbus applications.
22 Enable Writes to Cardbus InformationStructure.
Provided that the CIS is contained in RAM (LCC[21]= ‘1’), then setting
this bit allows the tuple information contained in RAM to be written by
cardbus/pci configuration transactions. This does not update the CIS
information in the EEPROM.
This bit has meaning only for cardbus applications
This register configures the operation of the multi-purpose I/O pins ‘MIO[1:0]’ as follows.
Bits Description Read/Write Reset
1:0 MIO0 Configuration Register
00 -> MIO0 is a non-inverting input pin
01 -> MIO0 is an inverting input pin
10 -> MIO0 is an output pin driving ‘0’
11 -> MIO0 is an output pin driving ‘1’
3:2 MIO1 Configuration Register
00 -> MIO1 is a non-inverting input pin
01 -> MIO1 is an inverting input pin
10 -> MIO1 is an output pin driving ‘0’
11 -> MIO1 is an output pin driving ‘1’
4 MIO0 Power Management Event Enable.
A value of ‘1’ enables the MIO0 pin to set the PME_Status bit in the PCI
PMCSR register, and hence assert the PME# (pci) or CSYSCHG
(cardbus) pin if this option has been enabled.
A value of ‘0’ prevents MIO0 from setting the PCI PME_Status bit.
5 MIO1 Power Management Event Enable.
A value of ‘1’ enables the MIO1 pin to set the PME_Status bit in the PCI
PMCSR register, and hence assert the PME# (pci) or CSYSCHG
(cardbus) pin if this option has been enabled.
A value of ‘0’ prevents MIO1 from setting the PCI PME_Status bit.
EEPROM
W RW 00
W RW 00
W RW 0
W RW 0
PCI
Data Sheet Revision 1.1 Page 17
OXFORD SEMICONDUCTOR LTD.
Bits Description Read/Write Reset
6 MIO0 Power Down Filter Control:
A ‘1’ enables the MIO0 pin to invoke a powerdown request via the power
down filter (if the filter is enabled). State of MIO0 that causes the
powerdown request is governed by the controls MIC[1:0).
7 MIO1 Power Down Filter Control:
A ‘1’ enables the MIO1 pin to invoke a powerdown request via the power
down filter (if the filter is enabled). State of MIO1 that causes the
powerdown request is governed by the controls MIC[3:2).
31:8 Reserved - R 00
EEPROM
W RW 0
W RW 0
OXCB950
PCI
6.4.3 UART Mirror Register ‘UMR’ (Offset 0x08):
The internal UART’s FIFO levels (both on the transmitter and receiver) and general interrupt source register, is mirrored
(shadowed) in the local configuration registers as follows
Bits Description Read/Write Reset
7:0 UART Receiver FIFO Level (RFL[7:0]) - R 00h
15:8 UART Transmitter FIFO Level (TFL[7:0]) - R 00h
21:16 UART Interrupt Source Register (ISR[5:0]) - R 01h
26:22 Reserved - R 00h
27 UART Good-Data Status - R 1h
31:28 Reserved - R 0h
Good-Data status for the 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
(transmitter THR empty) interrupt
• LSR[7] is clear so there is no parity error, framing error or break in the FIFO
• LSR[1] is clear so no over-run error has occurred
If the device driver software reads the receiver FIFO levels from this register, then if Good-Data status is set, the driver can
remove the number of bytes indicated by the FIFO level without the need to read the line status register. This feature enhances
the driver efficiency.
If the Good-Data status bit is not set, then the software driver should examine the ISR bits. If the ISR indicates a level 4 or higher
interrupt, the interrupt is due to a change in the state of modem lines or detection of flow control characters. The device driversoftware 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 examine 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 GoodData status will no longer be valid.
EEPROM
PCI
Data Sheet Revision 1.1 Page 18
OXFORD SEMICONDUCTOR LTD.
OXCB950
6.4.4 Global Interrupt Status and Control Register ‘GIS’ (Offset 0x0C)
This register controls the assertion of interrupts and power management events, as well as returning the internal status of all
interrupt sources and power management events.
Bits Description Read/Write Reset
1:0 Reserved - R 0x0h
2 MIO0 Internal State.
This bit reflects the state of the internal MIO[0] signal. The internal MIO[0]
signal reflects the non-inverted or inverted state of MIO0 pin. 2
3 MIO1 Internal State
This bit reflects the state of the internal MIO[1] signal. The internal MIO[1]
reflects the non-inverted or inverted state of MIO1 pin. 2
17-4 Reserved - R 0
18 MIO0 Interrupt Enable
When set (1) allows the pin MIO0 to assert an interrupt on the device’s INTA#
(CINT#) pin. The state of the MIO0 signal that causes an interrupt is
dependant upon the polarity set by the register fields MIC(1:0)
19 MIO1 Interrupt Enable
When set (1) allows the pin MIO1 to assert an interrupt on the device’s INTA#
(CINT#) pin. The state of the MIO1 signal that causes an interrupt is
dependant upon the polarity set by the register fields MIC(3:2)
20 Power-down Internal Interrupt Status.
This is a sticky bit. When set, it indicates that a power-down request has been
recognised (validated), which would normally have asserted a powerdown
interrupt on the INTA# (CINT#) pin if GIS bit 21 was set.
Reading this bit clears the Internal Powerdown Interrupt Status.
21 Power-down interrupt enable.
When set to ‘1’, a powerdown request is allowed to generate an interrupt on
the INTA#/ (CINT# ) pin.
22 UART interrupt status
. 1
This bit reflects the interrupt status of the internal UART.
23 UART Interrupt Enable.
When set (1) allows the UART to assert an interrupt on the device’s INTA#
(CINT# ) pin
3
24 UART Power Management Event Enable
A value of ‘1’ enables the UART ‘wakeup’ events to set the PME_Status bit in
the PCI PMCSR register, and hence assert the PME# (pci) or CSYSCHG
(cardbus) pin if this option has been enabled.
A value of ‘0’ prevents any wakeup events from the UART from setting the
PCI PME_Status bit.
25 UART Powerdown Filter Control
A ‘1’ enables the UART to invoke a powerdown request via the power down
filter (if the filter is enabled).
31:24 Reserved - R 00h
EEPROM
-
-
PCI
R
R
W RW 1
W RW 1
- R X
W RW 0
- R 0
W R/W 1
W R/W 0
W R/W 0
X
X
Data Sheet Revision 1.1 Page 19
OXFORD SEMICONDUCTOR LTD.
OXCB950
Note1 GIS(22) is the inverse of UMR(16).
Note 2: The returned value is either the direct state of the corresponding MIO pin or its inverse as configured by the Multi -purpose I/O Configuration register
Note 3: The UART Interrupt Enable register bit is set after a hardware reset to enable the interrupt from the internal UART. This will cater for generic device-
‘MIC’ (offset 0x04). As the internal MIO can assert a cardbus/PCI interrupt, the inversion feature can define each external interrupt to be defined as
active-low or active-high, as controlled by the MIC register.
driver software that does not access the Local Configuration Registers. The default setting for the UART Interrupt Enable bit can be changed using
the serial EEPROM. Note that even though by default the UART interrupt is enabled in this register, since after a reset the IER register of the UART
is disabled then a cardbus/PCI interrupt will not be asserted by the UART after a hardware reset.
6.5 Cardbus/ PCI Interrupt
Interrupts in cardbus/PCI systems are level-sensitive and
can be shared. In the OXCB950, there are three sources of
interrupts - two from the Multi-Purpose I/O pins (MIO0,
MIO1), and one from the internal UART.
Since the OXCB950 has only one interrupt pin (INTA# /
CINT#), the default routing information contained in the
device (the interrupt pin value) results in all interrupts being
made available on this single interrupt pin.
This default routing may be modified (to disable all
interrupts, for example) by writing to the Interrupt Pin field
in the cardbus/PCI configuration registers using the serial
EEPROM facility. The Interrupt Pin field is normally
considered a hard-wired read-only value in cardbus/PCI. It
indicates to system software which interrupt pin (if any) is
used by a function. The interrupt pin may only be modified
using the serial EEPROM facility, and card developers
must not set any value which violates the cardbus/PCI
specification on this issue. If in doubt, the default routings
should be used. Table 6 relates the Interrupt Pin field to the
device pin used.
Interrupt Pin Device Pin used
0 None
1 INTA# (CINT#)
2 to 255 Reserved
Table 6: ‘Interrupt pin’ definition
During the system initialisation process and cardbus/PCI
device configuration, system-specific software reads the
interrupt pin field to determine which (if any) interrupt pin is
used by the function. It programmes the system interrupt
router to logically connect this interrupt pin to a systemspecific interrupt vector (IRQ). It then writes this routing
information to the Interrupt Line field in the function’s
cardbus/PCI configuration space. Device driver software
must then hook the interrupt using the information in the
Interrupt Line field.
The Interrupt status for all sources of interrupts are
available using the GIS register in the Local Configuration
Register set, which can be accessed using I/O or Memory
accesses.
The 3 sources of interrupts on the OXCB950, can be
enabled/disabled individually using the options in the local
configuration register “GIS”.
By default, these options are enabled so that irrespective of
the device’s application mode (cardbus or pci) the
assertion of the 2 Multi_Purpose I/O pins (MIO0, MIO1)
will, following the initial cardbus/PCI configuration process,
assert the interrupt pin of the device. By the same token,
any UART based interrupts that are generated as a result
of enabling interrupts in the UART’s interrupt register (the
ISR register) will result in the assertion of the UART
interrupt on the interrupt pin of the device.
Once an interrupt has been asserted, this interrupt can only
be removed by the device driver either by disabling the
relevant controls in the GIS register or by removing the
conditions on the 3 interrupt sources. For the UART, this
will require reads of the relevant register to clear any UART
based interrupts.
Cardbus applications, normally expect a set of four 32-bit
registers: Function Event, Function Event Mask, Function
Present State, and Function Force Event Registers to
control the assertion/deassertion of interrupts (and power
management events). These are the cardbus status
registers located in memory space at the location given by
the CISTPL_CONFIG_CB tuple. For the OXCB950, these
registers reside at the memory base address register BAR4
that is dedicated to provide access to these additional
registers. By default, in cardbus mode, these status
registers are disabled (bypassed) so cardbus applications
exhibit the same interrupt behaviour as per the pci mode.
This default setting is particularly suitable for those
applications, such as Windows 9x, that treat cardbus
functions as PCI functions and continue to utilise (modified)
versions of PCI device drivers for cardbus functionality.
These PCI based device drivers do not expect the
presence of these cardbus status registers to further
control the interrupt generation / deassertion logic.
For those cardbus applications that do require use of these
cardbus status registers, these registers can be enabled by
setting LCC, bit 23 located in the device’s local
configuration registers. This can be achieved by performing
Data Sheet Revision 1.1 Page 20
OXFORD SEMICONDUCTOR LTD.
an I/O or Memory write to this bit in the local configuration
register or by using the optional EEPROM to download into
this area.
Once these cardbus status registers are enabled, interrupts
will only be asserted on the device’s interrupt pin provided
that the INTR field is enabled in the Function Event Mask
Register (disabled by default) and the corresponding INTR
field in the Function Event Register has detected (latched)
a valid internal interrupt request. Once asserted, the
interrupt on the device’s interrupt pin can only be disabled
by either disabling the INTR field in the Function Event
Mask register or by writing a “1” to the INTR field of the
6.6 Cardbus/PCI Power Management
OXCB950
Function Event Register. The INTR field in the Function
Present State register will reflect the current (non-latched)
state of any internal interrupt requests and the INTR field in
the Function Force register is available to generate
software based interrupts for debug purposes.
NOTE : Enabling of the cardbus status registers provides
additional controls to the interrupt generation/deassertion
logic. The interrupt controls in the local configuration
registers must nevertheless be enabled to detect the
interrupts from the device’s 3 interrupt sources in the first
place.
The OXCB950 is compliant with the Power Management
Requirements for cardbus PC cards as detailed in the
Electrical Specification of the PC Card Standard, release
7.x. It is also compliant to the PCI Power Management
Specification Revision 1.0. The device (function0)
implements a set of Power Management registers and
supports the power states D0, D2 and D3.
Power management is accomplished by handling the
power-down and power-up (“power management event”)
requests, that are asserted on the device’s interrupt pin
and the pins PME#/CSYSCHG respectively. Note, PME# is
the power management event for PCI applications and
CSYSCHG is the power management event for cardbus
applications. The logic behind these signals is identical.
Power-down requests are not defined by any of the Power
Management specifications. It is a device-specific feature
and requires a bespoke device driver implementation. The
device driver can either implement the power-down itself or
use a special interrupt and power-down features offered by
the device to determine when the device is ready for
power-down.
For PCI applications, it worth noting that the PME# pin can,
in certain cases, activate the PME# signal when power is
removed from the device, which will cause the PC to wake
up from Low-power state D3(cold). To ensure full crosscompatibility with system board implementations, use of an
isolator FET is recommended. If Power Management
capabilities are not required, the PME# pin can be treated
as no-connect. There are no such problems for cardbus
applications. The CSYSCHG line is not capable of being
asserted on removal of device power.
6.6.1 Power Management via UART/ MIO pins
Provided that the necessary controls have been set in the
device’s local configuration registers (LCC, MIC, and GIS),
the internal UART and the 2 multi_purpose (MIO) pins can
be programmed to issue powerdown requests and/or
‘wakeup’ requests (power management events).
For the case of the internal UART, the device can be
configured to monitor the activity of the serial channel, and
issue a power-down interrupt when the UART is inactive
(no interrupts pending and both transmitter and receiver
are idle).
For the case of the MIO pins, the MIO state that governs
powerdown is the inverse of the MIO state that asserts the
device’s interrupt pin (the INTA# / CINT# line, if that option
were to be enabled). This means that when any external
device is not interrupting it will automatically begin the
powerdown cycle.
When either a powerdown request from the internal UART
or a powerdown request from the MIO pins has been
detected, the internal power management circuitry waits for
a period of time as programmed into the Power-Down Filter Time (defined by the local configuration register LCC[7:5])
and if the powerdown requests are still valid i.e. for the
UART, this means that the channel is still inactive, then the
OXCB950 can issue a powerdown interrupt on the device’s
interrupt pin if this option is enabled. Alternatively, the
device driver can poll the powerdown status field in the
local configuration register GIS[20] to determine a
powerdown request. This powerdown filter stops the
UART and the MIO pins from issuing too many powerdown
interrupts whenever the UART and MIO pin activity is
intermittent.
Data Sheet Revision 1.1 Page 21
Loading...
+ 47 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.