Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of
Texas Instruments semiconductor products and disclaimers thereto appears at the end of this data sheet.
Intel and MPIIX are trademarks of Intel Corp.
PC Card is a trademark of Personal Computer Memory Card International Association (PCMCIA).
TI is a trademark of Texas Instruments Incorporated.
PRODUCTION DATA information is current as of publication date.
Products conform to specifications per the terms of Texas Instruments
standard warranty. Production processing does not necessarily include
testing of all parameters.
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
Copyright 1997, Texas Instruments Incorporated
1
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
description
The TI PCI1031 is a high-performance PCI-to-PC Card16 controller that supports two independent PC Card
sockets compliant with the1995 PC Card standard. The PCI1031 provides a set of features that makes it ideal
for bridging between PCI and PC Cards in both notebook and desktop computers. The 1995 PC Card standard
retains the 16-bit PC Card specification defined in PCMCIA release 2.1 and is capable of full 16-bit data transfers
at 33 MHz. The PCI1031 supports any combination of 16-bit and PC Cards in its two sockets, powered at 3.3 V
or 5 V, as required.
The PCI1031 is compliant with the PCI local bus specification revision 2.1, and its PCI interface can act as either
a PCI master device or a PCI slave device. The PCI bus mastering is initiated during 16-bit PC Card
DMA transfers.
All card signals are internally buffered to allow hot insertion and removal without external buffering. The PCI1031
is register compatible with the Intel 82365SL-DF PC Card interface controller. The PCI1031 internal datapath
logic allows the host to access 8- and 16-bit cards using full 32-bit PCI cycles for maximum performance.
Independent 32-bit write buffers allow fast-posted writes to improve system-bus utilization.
An advanced CMOS process is used to achieve low system-power consumption while operating at PCI clock
rates up to 33 MHz. Low-power modes allow the host power-management system to further reduce
power consumption.
All unused PCI1031 pins should be pulled high by a 43-kΩ resistor.
2
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
system block diagram – 16-bit PC Card interface
A simplified system block diagram using the PCI1031 is provided below. The PCI950 IRQ deseralizer and the
PCI930 zoomed video (ZV) switch are optional functions that can be used when the system requires that
capability.
The PCI interface includes all address/data and control signals for PCI protocol. The 68-pin PC Card interface
includes all address/data and control signals for 16-bit (R2) protocols. When zoomed video (ZV) is enabled (in
16-bit PC Card mode) 23 of the 68 signals are redefined to support the ZV protocol.
The interrupt interface includes terminals for parallel PCI, parallel ISA, and serialized PCI and ISA signaling.
Other miscellaneous system interface terminals are available on the PCI1031 that include:
D
Multifunction IRQ terminals
D
SUSPEND, RI_OUT (power management control signals)
D
SPKROUT.
PCI Bus
PCI1031
INTA
INTB
TPS22xx
Power
Switch
PC Card
Socket A
PC Card
Socket B
External ZV Port
NOTE: The PC Card interface is 68 pins for CardBus and 16-bit PC Cards. In zoomed-video mode 23 pins are used for routing the zoomed
PCI bus clock. PCLK provides timing for all transactions on the PCI bus. All PCI signals are sampled at the rising
edge of PCLK.
PCI reset. When the RSTIN signal is asserted low, the PCI1031 forces all output buffers to the high-impedance
state and resets all internal registers. When asserted, the PCI1031 is nonfunctional. After RSTIN
the PCI1031 returns to the default state. When the PCI1031 SUSPEND
from any RSTIN
I/O
TYPE
Address/data bus. AD31–AD0 are the multiplexed PCI address and data bus. During the address phase of a PCI
cycle, AD31–AD0 contain a 32-bit address or other destination information. During the data phase, AD31–AD0
I/O
contain data.
1
2
3
4
6
8
9
Bus commands and byte enables. C/BE3–C/BE0 are multiplexed on the same PCI terminals. During the address
phase, C/BE3
I/O
5
The byte enables determine which byte lanes carry meaningful data. C/BE0
applies to byte 1 (AD15–AD8), C/BE2 applies to byte 2 (AD23–AD16), and C/BE3 applies to byte 3 (AD31–AD24).
Parity. As a PCI target during PCI read cycles, or as PCI bus master during PCI write cycles, the PCI1031 calculates
even parity across the AD and C/BE
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
Terminal Functions
reset (i.e., the PCI1031 internal register contents are preserved). See
–C/BE0 define the bus command. During the data phase, C/BE3–C/BE0 are used as byte enables.
buses and outputs the results on PAR, delayed by one clock.
mode is enabled, the device is protected
power management
applies to byte 0 (AD7–AD0), C/BE1
is deasserted,
.
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
7
PCI1031
FUNCTION
FUNCTION
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
Terminal Functions (Continued)
PCI interface control
TERMINAL
NAMENO.
DEVSEL
FRAME
GNT
IDSEL182I
IRDY
PERR
REQ
SERR
STOP
TRDY
197I/O
193I/O
168I
195I/O
199I/OParity error. PERR is driven by the PCI target during a write to indicate that a data parity error has been detected.
169ORequest. REQ asserted by the PCI1031 to request access to the PCI bus as a master.
200O
198I/OStop. STOP is driven by the current PCI target to request the master to stop the current transaction.
196I/O
I/O
TYPE
Device select. As a PCI target, the PCI1031 asserts DEVSEL to claim the current cycle. As a PCI master, the
PCI1031 monitors DEVSEL
Cycle frame. FRAME is driven by the current master to indicate the beginning and duration of an access.
FRAME
is low (asserted) to indicate that a bus transaction is beginning. While FRAME is asserted, data
transfers continue. When FRAME
Grant. GNT is driven by the PCI arbiter to grant the PCI1031 access to the PCI bus after the current data
transaction is complete. If distributed DMA is not implemented, GNT
Initialization device select. IDSEL selects the PCI1031 during configuration accesses. IDSEL can be connected
to one of the upper 24 PCI address lines.
Initiator ready. IRDY indicates the bus master’s ability to complete the current data phase of the transaction.
IRDY
is used with TRDY. A data phase is completed on any clock where both IRDY and TRDY are sampled
low (asserted). During a write, IRDY
indicates that the master is prepared to accept data. Wait cycles are inserted until both IRDY and TRDY are
low (asserted) at the same time. IRDY
the PCI bus is the target.
System error. SERR pulsed from the PCI1031 indicates an address parity error has occurred. If SERR is not
used, it must be pulled high with a 43-kΩ resistor.
T arget ready. TRDY indicates the ability of the PCI1031 to complete the current data phase of the transaction.
TRDY
is used with IRDY. A data phase is completed on any clock where both TRDY and IRDY are sampled
asserted. During a read, TRDY
indicates that the PCI1031 is prepared to accept data. Wait cycles are inserted until both IRDY and TRDY are
asserted together. TRDY
the PCI bus master.
until a target responds or a time-out occurs.
is an output when the PCI1031 is the PCI target and an input when the PCI1031 is
is sampled high (deasserted), the transaction is in the final data phase.
must be pulled high with a 43-kΩ resistor.
indicates that valid data is present on AD31–AD0. During a read, IRDY
is an output when the PCI1031 is the PCI bus master and an input when
indicates that valid data is present on AD31– AD0. During a write, TRDY
120Power-supply terminal for PC Card A (5 V or 3.3 V)
38Power-supply terminal for PC Card B (5 V or 3.3 V)
148, 172Power-supply terminals for PCI interface (5 V or 3.3 V)
8
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
FUNCTION
FUNCTION
FUNCTION
interrupt
TERMINAL
NAMENO.
IRQ3/INTA
IRQ4/INTB
IRQ7/PCDMAREQ157O
IRQ9/IRQSER158
IRQ10/CLKRUN159O
IRQ11/PCDMAGNT160I/O
IRQ5
IRQ12
IRQ14
IRQ15/RI_OUT163I/O
154
155
156
161
162
I/O
TYPE
O
O
I/O
O
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
Terminal Functions (Continued)
Interrupt request 3 and interrupt request 4. IRQ3/INTA–IRQ4/INTB can be connected to either PCI
or ISA interrupts. IRQ3/INTA
. When configured for IRQ3 and IRQ4, IRQ3/INTA–IRQ4/INTB must be connected to the ISA
or INTB
IRQ programmable interrupt controller. When IRQ3/INTA
INTB
, IRQ3/INTA–IRQ4/INTB must be connected to available interrupts on the PCI bus.
Interrupt request 7. IRQ7/PCDMAREQ is software configurable and is used by the PCI1031 to
request PC/PCI DMA transfers from chipsets that support the PC/PCI DMA scheme. When
IRQ7/PCDMAREQ
appropriate request (REQ
DMA
).
Interrupt request 9/serial IRQ. IRQ9/IRQSER is software configurable and indicates an interrupt
request from a PC Card to the PCI1031. When IRQ9/IRQSER is configured for IRQ9, it must be
connected to the system programmable interrupt controller. IRQSER allowa all IRQ signals to be
serialized onto one pin. IRQ9/IRQSER is configured via bits 2–1 in the device control register of the
TI extension registers (see
Interrupt requests 10. IRQ10/CLKRUN is software configurable and is used by the PCI1031 to
support the PCI CLKRUN
control register at offset 80h, IRQ10/CLKRUN
Interrupt request 11. IRQ11/PCDMAGNT is software configurable and is used by the PCI1031 to
accept a grant for PC/PCI DMA transfers from chipsets that support the PC/PCI DMA scheme. When
IRQ11/PCDMAGNT
appropriate grant (GNT
Interrupt requests 5, 12, and 14. These signals are ISA interrupts. These terminals indicate an
interrupt request from one of the PC Cards. The interrupt mode is selected in the device control
register of the TI extension registers (see
Interrupt request 15. IRQ15/RI_OUT indicates an interrupt request from one of the PC Cards.
RI_OUT
allows the RI input from the 16-bit PC Card to be output to the system. IRQ15/RI_OUT is
configured in the card control register of the TI extension registers (see
is configured for PC/PCI DMA request (IRQ7), it must be connected to the
–IRQ4/INTB are software configurable as IRQ3 or INTA and as IRQ4
–IRQ4/INTB are configured for INTA and
) pin on the Intel Mobile Triton PCI I/O accelerator (MPIIX) (see
device control register
protocol. When configured as CLKRUN by setting bit 0 in the system
is configured for PC/PCI DMA grant (IRQ11), it must be connected to the
) pin on the Intel MPIIX controller (see
).
is an open drain output (see
PC/PCI DMA
device control register
).
system control register
).
card control register
PC/PCI
).
).
PC Card power switch
TERMINAL
NAMENO.
CLOCK151O
DATA152OPower switch data. DATA is used by the PCI1031 to serially communicate socket power control information.
LATCH150O
I/O
TYPE
Power switch clock. Information on the DATA line is sampled at the rising edge of CLOCK. The frequency of
the clock is derived from dividing PCICLK by 36. The maximum frequency of CLOCK is 2 MHz (see
PC Card power control interface
Power switch latch. LATCH is asserted by the PCI1031 to indicate to the PC Card power switch that the data
on the DATA line is valid.
).
speaker control
TERMINAL
NAMENO.
SPKROUT/
SUSPEND
149O
I/O
TYPE
Speaker. SPKROUT carries the digital audio signal from the PC Card. SUSPEND, when enabled, places
the PCI1031 in PCI suspend/resume (see
card control register (see
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
card control register
power management
) of the TI extension registers.
). SPKROUT/SUSPEND is configured in the
TPS2206
9
PCI1031
FUNCTION
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
Terminal Functions (Continued)
16-bit PC Card address and data (slots A and B)
TERMINAL
NUMBER
NAME
†
Terminal name is preceded with A_. For example, the full name for terminal 121 is A_A25.
‡
Terminal name is preceded with B_. For example, the full name for terminal 55 is B_A25.
OPC Card address. 16-bit PC Card address lines. A25 is the most-significant bit.
I/OPC Card data. 16-bit PC Card data lines. D15 is the most-significant bit.
10
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
FUNCTION
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
Terminal Functions (Continued)
16-bit PC Card interface control signals (slots A and B)
TERMINAL
NUMBER
NAME
BVD1
(STSCHG
BVD2(SPKR)
CD1
CD2
CE1
CE2
INPACK12761I
IORD
IOWR
OE9832O
†
Terminal name is preceded with A_. For example, the full name for terminal 138 is A_BVD1.
‡
Terminal name is preceded with B_. For example, the full name for terminal 72 is B_BVD1.
/RI)
SLOT
SLOT
†
A
13872I
13771I
82
1401674
94
97
9933O
10135O
I/O
TYPE
‡
B
Battery voltage detect 1. Generated by 16-bit memory PC Cards that include batteries. BVD1
is used with BVD2 as an indication of the condition of the batteries on a memory PC Card. Both
BVD1 and BVD2 are kept high when the battery is good. When BVD2 is low and BVD1 is high,
the battery is weak and needs to be replaced. When BVD1 is low, the battery is no longer
28
30
serviceable and the data in the memory PC Card is lost. See
configuration register
status register
Status change. STSCHG
or battery voltage dead condition of a 16-bit I/O PC Card.
Ring indicate. RI
Battery voltage detect 2. Generated by 16-bit memory PC Cards that include batteries. BVD2
is used with BVD1 as an indication of the condition of the batteries on a memory PC Card. Both
BVD1 and BVD2 are high when the battery is good. When BVD2 is low and BVD1 is high, the
battery is weak and needs to be replaced. When BVD1 is low, the battery is no longer
serviceable and the data in the memory PC Card is lost. See
configuration register
status register
Speaker. SPKR
been configured for the 16-bit I / O interface. The audio signals from cards A and B can be
combined by the PCI1031 and output on SPKROUT
DMA request. BVD2 can be used as the DMA request signal during DMA operations to a 16-bit
PC Card that supports DMA. If used, the PC Card asserts BVD2 to request a DMA operation.
PC Card detect 1 and PC Card detect 2. CD1 and CD2 are internally connected to ground on
the PC Card. When a PC Card is inserted into a socket, CD1
I
status, see
Card enable 1 and card enable 2. CE1 and CE2 enable even- and odd-numbered address
bytes.
Input acknowledge. INP ACK is asserted by the PC Card when it can respond to an I/O read cycle
at the current address.
DMA request. INPACK
16-bit PC Card that supports DMA. If used, the PC Card asserts INP ACK
for a DMA operation.
I/O read. IORD is asserted by the PCI1031 to enable 16-bit I/O PC Card data output during host
I/O read cycles.
DMA write. IORD
that supports DMA. The PCI1031 asserts IORD
memory.
I/O write. IOWR is driven low by the PCI1031 to strobe write data into 16-bit I/O PC Cards during
host I/O write cycles.
DMA read. IOWR is used as the DMA read strobe during DMA operations to a 16-bit PC Card
that supports DMA. The PCI1031 asserts IOWR
PC Card.
Output enable. OE is driven low by the PCI1031 to enable 16-bit memory PC Card data output
during host memory read cycles.
DMA terminal count. OE
PC Card that supports DMA. The PCI1031 asserts OE
ExCA interface status register
for enable bits. See
for the status bits for this signal.
is used to alert the system to a change in the READY, write protect,
is used by 16-bit modem cards to indicate ring detection.
for enable bits. See
for the status bits for this signal.
is an optional binary audio signal available only when the card and socket have
can be used as the DMA request signal during DMA operations to a
is used as the DMA write strobe during DMA operations from a 16-bit PC Card
is used as terminal count (TC) during DMA operations to a 16-bit
ExCA card status-change register
ExCA card status-change register
.
during DMA transfers from the PC Card to host
during DMA transfers from host memory to the
ExCA card status-change interrupt
ExCA card status-change interrupt
.
and CD2 are pulled low. For signal
to indicate TC for a DMA write operation.
and
ExCA interface
and
ExCA interface
to indicate a request
PCI1031
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
11
PCI1031
FUNCTION
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
Terminal Functions (Continued)
16-bit PC Card interface control signals (slots A and B) (continued)
TERMINAL
NUMBER
NAME
READY(IREQ)
REG
RESET12458OPC Card reset. RESET forces a hard reset to a 16-bit PC Card.
WAIT13670I
WE11046O
WP(IOIS16)13973I
VS1
VS2
†
Terminal name is preceded with A_. For example, the full name for terminal 135 is A_READY(IREQ).
‡
Terminal name is preceded with B_. For example, the full name for terminal 69 is B_READY(IREQ
SLOT
SLOT
†
A
13569I
13063O
134
1226856
I/O
TYPE
‡
B
Ready. The ready function is provided by READY when the 16-bit PC Card and the host socket
are configured for the memory-only interface. READY is driven low by the 16-bit memory PC
Cards to indicate that the memory card circuits are busy processing a previous write command.
READY is driven high when the 16-bit memory PC Card is ready to accept a new data transfer
command.
Interrupt request. IREQ
on the 16-bit I/O PC Card requires service by the host software. IREQ
no interrupt is requested.
Attribute memory select. REG remains high for all common memory accesses. When REG is
asserted, access is limited to attribute memory (OE
or IOWR active). Attribute memory is a separately accessed section of card memory and is
generally used to record card capacity and other configuration and attribute information.
DMA acknowledge. REG is used as DMA acknowledge (DACK) during DMA operations to a
16-bit PC Card that supports DMA. The PCI1031 asserts REG
REG
is used with the DMA read (IOWR) or DMA write (IORD) strobes to transfer data.
Bus cycle wait. WAIT is driven by a 16-bit PC Card to delay the completion of (i.e., extend) the
memory or I/O cycle in progress.
Write enable. WE is used to strobe memory write data into 16-bit memory PC Cards. WE also
is used for memory PC Cards that employ programmable memory technologies.
DMA terminal count. WE is used as TC during DMA operations to a 16-bit PC Card that supports
DMA. The PCI1031 asserts WE to indicate TC for a DMA read operation.
Write protect. WP applies to 16-bit memory PC Cards. WP reflects the status of the write-protect
switch on 16-bit memory PC Cards. For 16-bit I/O cards, WP is used for the 16-bit port (IOIS16)
function. The status of WP can be read from the ExCA interface status register.
I/O is 16 bits. WP applies to 16-bit I/O PC Cards. IOIS16
the address on the bus corresponds to an address to which the 16-bit PC Card responds, and
the I/O port that is addressed is capable of 16-bit accesses.
DMA request. WP can be used as the DMA request signal during DMA operations to a 16-bit
PC Card that supports DMA. If used, the PC Card asserts WP to request a DMA operation.
Voltage sense 1 and voltage sense 2. VS1 and VS2, when used together, determine the
operating voltage of the 16-bit PC Card.
I/O
DMA request. VS1
a 16-bit PC Card that supports DMA. If used, the PC Card asserts VS1
for request a DMA operation.
is asserted by a 16-bit I/O PC Card to indicate to the host that a device
and VS2 can be used as the DMA request signal during DMA operations to
is high (deasserted) when
or WE active) and to the I/O space (IORD
to indicate a DMA operation.
is asserted by the 16-bit PC Card when
and VS2 to indicate a
).
12
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
architecture
This section provides an overview of the PCI1031 PCI-to-PC Card/CardBus controller, followed by detailed
descriptions of PCI and PC Card interfaces, the TPS2206 interface, and interrupt support. Both hardware
protocols and software programming models are discussed.
introduction to the PCI1031
The PCI1031 is a bridge between the PCI local bus and two PC Card sockets supporting 16-bit PC Cards, and
is compliant with the PCI local bus specification revision 2.1 and PCMCIA’s 1995 PC Card standard. The
PCI1031 PC Card interface recognizes and identifies PC Cards installed at power up or run-time. The PCI1031
includes support for 16-bit PC Card features such as multifunction cards, 3.3-V cards, and DMA, as well as
backward compatibility to the PCMCIA release 2.1-compliant PC Cards. The PCI1031 core is powered at 3.3 V
to provide low power dissipation, but can independently support either 3.3-V or 5-V signaling on the PCI and
PC Card interfaces.
Host software interacts with the PCI1031 through a variety of internal registers that provide status and control
information about the PC Cards currently in use and the internal operation of the PCI1031 itself. These internal
registers are accessed by application software either through the PCI configuration header, or through
programmable windows mapped into PCI memory or I/O address space. The PCI1031 uses a windows format
to pass cycles between PCI and PC Card address spaces. Host software must program the location and size
of these windows when the PCI1031 or PC Card is initialized.
PCI1031
The PCI1031 also communicates via a three-line serial protocol to the TI TPS2206 dual PCMCIA power switch.
The TPS2206 switches V
has indirect control over the TPS2206 by writing to internal PCI1031 registers.
The PCI1031 can notify the host system via interrupts when an event occurs that requires attention from the
host. Such events are either card status-change (CSC) events or functional interrupts from a PC Card. CSC
events occur within the PCI1031 or at the PC Card interface, and indicate a change in the status of the socket
(i.e., card insertion or removal). Functional interrupts originate from the PC Card application and are passed
from the card to the host system. Both CSC and functional interrupts can be individually masked and routed
to a variety of system interrupts. The PCI1031 can signal the system interrupt controller via PCI-style interrupts,
ISA IRQs, or with the serialized IRQ protocol.
The following sections describe in greater detail how the PCI1031 interacts at an electrical, protocol, and
software level at its PCI interface, PC Cards, TPS2206 PC Card power control, and interrupts.
and VPP supply voltage to the two PC Card sockets independently . Host software
CC
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
13
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
PCI interface
This section describes the PCI interface of the PCI1031, how the device responds and participates in PCI bus
cycles, and how the major internal registers appear in the PCI address space. The PCI1031 provides all required
signals for PCI master/slave (initiator/target) devices, and can operate in either 5-V or 3.3-V PCI signaling
environments by connecting the two V
The PCI1031 is a true multifunction PCI device, with two different PCI functions residing within the device. PCI
function 0 is associated with PC Card socket A and PCI function 1 is associated with PC Card socket B. The
PCI1031 behaves in accordance to the PCI specification for multifunction devices. Functions 0 and 1 have
separately addressable PCI configuration headers, and can use PCI INTA and INTB, respectively.
The PCI1031 responds as a PCI target device to PCI bus cycles based on its decode of the address phase of
each cycle and internal register settings of the device. T able 3 lists the valid PCI bus cycles and their encoding
on the 4-bit C/BE bus during the address phase of a bus cycle. The most common PCI bus commands are read
and write cycles to one of the three PCI address spaces: memory, I/O, and configuration address spaces.
The PCI1031 never responds as a PCI target device to the interrupt acknowledge, special cycle, dual address
cycle, or reserved commands, nor will it initiate them as a PCI master device. The remaining PCI commands
address one of the three PCI address spaces mentioned earlier, and each is described in the following three
sections. The PCI1031 accepts PCI cycles by asserting DEVSEL
as a medium-speed device.
The ability of the PCI1031 to respond to PCI memory or I/O bus cycles is dictated by register bits in the PCI
command register (see
PCI command
). This register is located in the PCI configuration header at offset 04h
and is required by the PCI local bus specification. Bits 0 and 1 of this register enable the PCI1031 to respond
to I/O and memory cycles, respectively . Host software must set these bits during initialization of the device. Bit 2
of this register enables/disables the bus-mastering capability of the PCI1031 on the PCI bus. Host software must
also set this bit during device initialization.
14
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
PCI configuration address space and bus hierarchy
The PCI local bus specification defines two types of PCI configuration read and write cycles: type 0 and type 1.
The PCI1031 decodes each type differently . Type 0 configuration cycles are intended for devices on the current
bus, while type 1 configuration cycles are intended for devices at a subordinate bus. The difference between
these two types of cycles is the encoding of the PCI address AD bus during the address phase of the cycle. The
address AD bus encoding during the address phase of a type 0 configuration cycle is shown in Figure 1. The
6-bit register number field represents an 8-bit address but with two lower bits masked to 0. This results in a
256-byte configuration address space (per PCI function) with a 32-bit (or double-word) granularity. Individual
byte addresses can be selected for read/write using the C/BE
31111087210
Reserved
Figure 1. PCI AD31–AD0 During Address Phase of a Type 0 Configuration Cycle
The PCI1031 claims type 0 configuration cycles only when IDSEL is asserted during the address phase of the
cycle, and the PCI function number encoded in the cycle is 0 or 1. If the function number is 2 or greater, the
PCI1031 accepts the command. If the command is a read, it returns all Fs. If the command is a write, the data
is dropped. The PCI1031 services valid type 0 configuration read or write cycles by accessing internal registers
from the appropriate configuration header. Table 12 shows a PCI configuration header in the PCI1031.
T able 12 can represent either PCI1031 function. Blocks with a dagger (
or in part, common between the two functions. Blocks without a dagger are registers that are separate and
distinct between the two functions. Refer to
PCI configuration header register
of the registers shown in Table 12.
signals during the data phase of the cycle.
Function
number
†
) represent registers that are, in whole
Register
number
00
for a complete description of all
Because type 1 configuration cycles are issued to devices on subordinate buses, the PCI1031 does not claim
type 1 configuration cycles. The address AD bus encoding during the address phase of a type 1 configuration
cycle is shown in Figure 2. The device number and bus number fields define the destination bus and device for
the cycle.
3124231615111087210
ReservedBus number
Device
number
Function number
Register
number
01
Figure 2. PCI AD31–AD0 During Address Phase of a Type 1 Configuration Cycle
If the type 1 configuration write cycle is decoded because of the values in the configuration registers 18h–1Ah,
the cycle is accepted but no information is passed through the PCI1031. In the case of a type 1 configuration
read cycle, the PCI1031 returns all 1s. Type 1 cycles to other than device 00h are claimed but are not passed
on. Reads return all 1s. Also, the PCI1031 never issues PCI configuration read or write cycles on the PCI bus
as a PCI bus master.
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
15
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
PCI I/O address space
The PCI local bus specification defines an I/O address space accessed using 32-bit addresses, yielding a
4G-byte usable address space. The PCI1031 decodes PCI I/O cycles as a PCI target device only if host software
has enabled it to do so (see bit 0 of the
the address on the PCI address AD bus and claims the cycle if a hit is detected to a programmed I/O window.
Such a window can be mapped either to internal PCI1031 registers or to PC Card address space.
There are two instances where the PCI1031 maps internal registers to PCI I/O address space. The first is the
legacy 16-bit PC Card index/data registers (used to access the ExCA registers), and the second is DMA socket
registers (used to access registers in distributed DMA). In both cases, the locations of these windows are
programmed by base address registers in PCI configuration space. The legacy 16-bit PC Card base address
(see
PC Card 16-bit I/F legacy-mode base address
both PCI1031 functions 0 and 1. This base address locates a 2-byte window in I/O space anywhere in the 32-bit
I/O address space. The socket DMA base address register (see
configuration offset 98h, and is separate and distinct for functions 0 and 1. This base address locates a 16-byte
window in I/O space in the lower 64K bytes of PCI I/O address space. For a complete description of this base
address register and the socket DMA registers, see
The PCI1031 provides the ability for host software to program PCI I/O windows to PC Card address spaces.
These windows provide the bounds upon which the PCI1031 positively decodes I/O cycles from PCI to a
PC Card, and are the primary means for applications to communicate with PC Cards. See
windows, ExCA registers
, and
CardBus PC Cards and windows
PCI command register
) is located at configuration offset 44h, and is common to
socket DMA register
). If so enabled, the PCI1031 positively decodes
socket DMA register 1
1 and
DMA registers
) is located at
.
16-bit PC Cards and
.
PCI memory address space
The PCI local bus specification also defines a memory address space accessed using 32-bit addresses, yielding
a 4G-byte usable address space. The PCI1031 decodes PCI memory cycles as a PCI target device only if host
software has enabled it to do so (see bit 1 of the
decodes the address on the PCI address AD bus and claims the cycle if a hit is detected to a programmed
memory window. Such a window can be mapped either to internal PCI1031 registers or to PC Card
address space.
The only case where the PCI1031 maps internal registers to PCI memory address space is the CardBus/ExCA
registers that are mapped into a 4K-byte window for each socket. The location of these windows is programmed
by a base address register in PCI configuration space. The CardBus socket/ExCA base address (see
socket registers/ExCA registers base address register
and distinct from functions 0 and 1. Each base address locates a 4K-byte window in memory space anywhere
in the 32-bit memory address space. For a description of this base address register and the CardBus socket
registers, see
The PCI1031 enables host software to program PCI memory windows to PC Card address spaces. These
windows provide the bounds on which the PCI1031 positively decodes memory cycles from PCI to a PC Card
and are the primary means for applications to communicate with PC Cards (see
and
ExCA registers)
CardBus socket registers/ExCA registers base address register
. A memory read always disconnects after the first data phase.
PCI command register
) is located at configuration offset 10h and is separate
). If so enabled, the PCI1031 positively
.
16-bit PC Cards and windows
compliance to PCI local bus specification revision 2.1
The most significant additions to the PCI local bus specification revision 2.1 are the latency requirements on
PCI peripherals. Minimum response times are specified for a PCI device to respond with valid data. These
requirements are intended to improve throughput and reduce latencies on the PCI bus. The PCI1031 is fully
compliant with these guidelines.
CardBus
Other additions to revision 2.1 of the PCI local bus specification include the subsystem ID and subsystem vendor
ID registers in the PCI configuration header.
16
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
PC Cards
The 1995 PC Card standard provides a hardware- and software-interface standard for connecting
credit-card-sized memory and I/O cards to personal computers. By implementing compliant card slots, PC
manufacturers allow customers to use industry-standard PCMCIA memory and I/O cards from many different
vendors. The 1995 PC Card standard defines 16-bit and 32-bit PC Cards. The 16-bit PC Cards are an extension
of the PCMCIA 2.1/JEIDA 4.1 standards and are sometimes referred to as 16-bit cards or as R2 cards. The
32-bit PC Cards are a newly defined architecture called CardBus cards, with all 60 signals on the PC Card
interface redefined for a synchronous, 32-bit bus environment patterned after PCI.
PC Card insertion/removal and recognition
Prior to the PCMCIA 1995 PC Card standard, only two types of PC Cards existed: 16-bit memory cards and
16-bit I/O cards. Both types of cards were designed for 5-V VCC supply , and could be hot-inserted into a fully
powered socket. Upon insertion, 16-bit I/O cards were required to use the memory card signaling conventions
until host software had read the card information structure (CIS) and switched the socket and card to an
I/O mode.
The 1995 PC Card standard introduced several features, such as CardBus and 3.3-V/5-V card support, which
have challenged the idea of hot insertion and introduced a new card recognition scheme. Both CardBus cards
and 16-bit PC Cards can now be designed for 3.3-V V
in card damage if such a card were inserted into a socket powered at 5 V. Similarly, the socket can no longer
automatically power a PC Card to 5-V VCC, so a method of detecting the voltage requirements and card type
is needed. The 1995 PC Card standard addresses this by describing an interrogation procedure that the socket
must initiate upon card insertion into a cold, unpowered socket.
supply , which of fers power savings, but could result
CC
PCI1031
This scheme uses the card CD1
, CD2, VS1 and VS2 signals (called CCD1, CCD2, CVS1, and CVS2 for
CardBus cards). A PC Card designer connects these four pins in a certain configuration, depending on the type
of card (16-bit or CardBus) and the supply voltage (5 V , 3.3 V, X.X V , and/or Y.Y V). The encoding scheme for
this is defined in the 1995 PC Card standard and in Table 4.
Table 4. PC Card Card Detect and Voltage Sense Connections
GroundGroundOpenOpen5 V16-bit PC Card5 V
GroundGroundOpenGround5 V16-bit PC Card5 V and 3.3 V
GroundGroundGroundGround5 V16-bit PC Card5 V, 3.3 V, and X.X V
GroundGroundOpenGroundLV16-bit PC Card3.3 V
GroundConnect to CVS1OpenConnect to CCD1LVCardBus PC Card3.3 V
GroundGroundGroundGroundLV16-bit PC Card3.3 V and X.X V
Connect to CVS2GroundConnect to CCD2GroundLVCardBus PC Card3.3 V and X.X V
Connect to CVS1GroundGroundConnect to CCD2LVCardBus PC Card3.3 V, X.X V, and Y.Y V
GroundGroundGroundOpenLV16-bit PC CardX.X V
Connect to CVS2GroundConnect to CCD2OpenLVCardBus PC CardX.X V
GroundConnect to CVS2Connect to CCD1OpenLVCardBus PC CardX.X V and Y .Y V
Connect to CVS1GroundOpenConnect to CCD2LVCardBus PC CardY.Y V
GroundConnect to CVS1GroundConnect to CCD1Reserved
GroundConnect to CVS2Connect to CCD1GroundReserved
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
17
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
PC Card insertion/removal and recognition (continued)
Based on the information described in Table 4, the PCI1031 executes an algorithm upon card insertion that
alternatively drives the VS1
inserted. This process is completed without VCC ever being applied to the socket. Once the PCI1031 has
successfully determined the card type and voltage requirements, it updates the appropriate status bits in the
socket present state register (see
Host software must then read the CardBus socket registers to determine the card type and voltage requirements
and respond accordingly.
16-bit PC Cards and windows
The PCMCIA revision 1.0 defined the original 16-bit memory card, and the later PCMCIA revisions 2.0 and 2.1
defined the 16-bit I/O card. Both types of 16-bit PC Cards have the 16-bit datapaths and a 26-bit address bus
defined. Status and control signals differ between the two card types. The PCI1031 fully supports both types
of cards. The ExCA register set is implemented in the PCI1031, which provides the industry standard Intel
82365SL-DF programming model.
The 16-bit memory cards can have two types of memory address space: attribute memory and common
memory. The attribute memory address space contains the CIS, and common memory is the memory space
used by the application. The CIS is defined by PCMCIA and contains a variety of information about the card
capabilities and resource requirements. Host software reads and parses the CIS to set up the system resources
to use the card application. Both attribute and common memory are accessed with 26-bit addresses, resulting
in a total addressable memory address space of 64M bytes.
and VS2 pins to low and high levels to determine which of the card types has been
socket present state register
) and asserts a CSC interrupt to the host system.
The 16-bit I/O cards can possess attribute and common memory, but also have an I/O address space. This
address space is accessed via 16-bit I/O addresses, resulting in a 64K-byte I/O address space.
The PCI1031 provides a windowing mechanism to link the PCI address space to 16-bit PC Card address space.
Both of these memory and I/O windows are programmed by host software in the ExCA registers. The PCI1031
provides up to five memory windows per socket and two I/O windows per socket. Once enabled, the PCI1031
positively decodes and claims bus cycles that fall within these windows. Bus cycles to the PC Card are then
initiated to write data to the card (in the case of a PCI write cycle) or to read data from the card (in the case of
a PCI read cycle).
Memory and I/O windows to 16-bit PC Cards have several programmable options associated with them. Host
software can choose among these options by setting the appropriate bits in the appropriate ExCA registers.
These options include:
D
Window start address
D
Window end address
D
Window offset address
D
Page address (for 16-bit PC Card memory windows only)
D
Attribute or common memory access (for 16-bit PC Card memory windows only)
D
PC Card datapath width (8 bit or 16 bit)
D
Wait state timing (ISA bus timing or minimum)
D
Write protection (enable/disable writes to memory windows)
The start, end, offset, and page address define the bounds of the memory window in PCI and PC Card memory
address spaces. The page address is necessary to take into account the difference in addressable memory
between PCI (4G bytes) and 16-bit PC Cards (64M bytes). The 8-bit page address appended to the 26-bit start
and end addresses define the bounds of the window in PCI memory address space. When a PCI memory cycle
is decoded and claimed, the PCI1031 adds the offset address to the PCI address before passing the lower 26
bits to the PC Card. The memory windows need not be aligned between the two address spaces.
18
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
ExCA registers
The PCI1031 is fully register compatible with the Intel 82365SL-DF PC Card interface controller. The ExCA
compatibility registers can be accessed indirectly via PCI I/O address space or directly via PCI memory address
space. For I/O access, the PCI1031 uses the same index and data I/O port scheme introduced by Intel. This
index/data window is located in PCI I/O space by the PC Card 16-bit I/F legacy base address (see
I/F legacy-mode base address
legacy-mode base address is shared by both sockets and the ExCA registers run contiguously from index
00h–3Fh for socket A and 40h–7Fh for socket B. Accesses to ExCA indices 80–FFh returns 0s when read.
Writes have no effect.
The compatibility registers can also be accessed directly through the CardBus socket/ExCA register window.
This window in PCI memory address space is located by the CardBus socket registers/ExCA base address
register (see
configuration space. The ExCA compatibility registers are directly mapped into this memory window, starting
at an offset of 800h from the bottom of this window . Each socket has a separate CardBus socket register/ExCA
registers base address register for accessing the ExCA registers. ExCA I/O windows are accessed on word
(16-bit) boundaries.
The ExCA registers provide bits to control many 16-bit PC Card functions. These functions include:
D
Explicit writeback/clear on read of interrupt flag mode selection
CardBus socket registers/ExCA registers base address register
), found at offset 44h in PCI configuration space. The PC Card 16-bit
), found at offset 10h in PCI
PC Card 16-bit
PCI1031
D
PC Card CSC and functional interrupt control
D
Interrupt mode select: level/edge interrupt modes
D
PC Card socket status information
D
ExCA registers configuration after PC Card removal – reset upon card removal or save the register values
upon card removal
D
Memory and I/O windows configuration for 16-bit PC Cards
T able 5 classifies the basic functionality of each register in the ExCA register set. The functional classifications
are: card status register, card control register, memory window, and I/O window. Some of the registers are
classified as both card status and card control since some bits within the register provide status information and
other bits provide card control.
When a 16-bit PC Card is installed in a socket, the entire ExCA register set associated with that socket is
enabled. Some status and control functions in the CardBus socket registers are maintained when a16-bit PC
Card is present, such as the socket power control register. Software is expected to use either ExCA or CardBus
socket registers to control socket power, but not both. The intent is to be fully backward compatible with present
card and socket services, but take advantage of the easy access of some of the newly defined registers in the
CardBus/ExCA socket registers.
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
19
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
T able 5. ExCA Registers
REGISTER NAMESTATUSCONTROL
Identification and revisionX00
Interface statusX01
Power controlX02
Interrupt and general controlX03
Card status changeX04
Card status-change interrupt configurationX05
Address window enableXX06
I/O window controlX07
I/O window 0 start-address low byteX08
I/O window 0 start-address high byteX09
I/O window 0 end-address low byteX0A
I/O window 0 end-address high byteX0B
I/O window 1 start-address low byteX0C
I/O window 1 start-address high byteX0D
I/O window 1 end-address low byteX0E
I/O window 1 end-address high byteX0F
Memory window 0 start-address low byteX10
Memory window 0 start-address high byteX11
Memory window 0 end-address low byteX12
Memory window 0 end-address high byteX13
Memory window 0 offset-address low byteX14
Memory window 0 offset-address high byteX15
Card detect and general controlXX16
Reserved17
Memory window 1 start-address low byteX18
Memory window 1 start-address high byteX19
Memory window 1 end-address low byteX1A
Memory window 1 end-address high byteX1B
Memory window 1 offset-address low byteX1C
Memory window 1 offset-address high byteX1D
Global controlX1E
Reserved1F
Memory window 2 start-address low byteX20
Memory window 2 start-address high byteX21
Memory window 2 end-address low byteX22
Memory window 2 end-address high byteX23
Memory window 2 offset-address low byteX24
Memory window 2 offset-address high byteX25
Reserved26
Reserved27
The memory window page register is mapped by the CardBus socket register/ExCA register base address register into PCI memory space.
TPS2206 PC Card power control interface
The attribute of PC Card technology that enables PC Cards to be inserted and removed in a system during run
time requires that power to the PC Card sockets be managed. The TI TPS2206 PC Card power switch performs
this duty by switching VCC and VPP to two card sockets under the control of the PCI1031. Another TI power
switch, the TPS2202A, also can be used. Both the TPS2206 and TPS2202A are pin compatible and provide
the same signaling interface to the PCI1031. The TPS2202A provides RESET and RESET
pins that allow the
socket VCC and VPP to be shut down via external control from either system reset or a power supervisory device
in the system. References in this document to the TPS2206 apply identically to the TPS2202A device.
The PCI1031 and TPS2206 communicate via a 3-line serial interface called P2C (PCMCIA peripheral control).
This serial interface is a significant savings in pin count over the 8-line signaling convention. The P2C signaling
is transparent to host software; the PCI1031 generates the proper signal protocols when its internal VCC/V
control registers are written. Figure 3 illustrates the protocol used to communicate from the PCI1031 to
the TPS2206.
PP
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
21
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
TPS2206 PC Card power control interface (continued)
DATA
LATCH
CLOCK
D8D7D6D5D4D3D2D1D0
Figure 3. Serial-Interface Timing
The DA TA, LATCH, and CLOCK terminals on the PCI1031 are connected to the terminals of the same names
on the TPS2206. The PCI1031 generates the TPS2206 CLOCK signal by dividing the PCI CLK input by 36. A
PCI CLK frequency of 33 MHz results in a TPS2206 CLOCK frequency of approximately 1 MHz. To conserve
power, the PCI1031 switches the TPS2206 CLOCK signal only when transmitting information to the power
switch; otherwise, the PCI1031 stops the clock in a logic low state.
The encoding of the serial data stream is shown in Table 6. The ninth data bit, D8, is not shown. This bit (D8)
is the active low shutdown (SHDN
) bit. When D8 is reset to 0, the values of bits D0 through D7 are ignored and
the power switch removes all power to both PC Card sockets. The PCI1031 sets D8 to a logic high value at
all times.
Table 6. TPS2206 Control Logic
CONTROL SIGNALS
A
D0D1
000 V000 V000 V000 V
01A V
1012 V103.3 V1012 V105 V
11Hi Z110 V11Hi Z110 V
V
PP
CC
D2D3
015 V01B V
A
V
CC
D4D5
B
V
PP
CC
D6D7
013.3 V
V
B
CC
interrupts
Interrupts are an integral component in any computer architecture. The dynamic nature of PCMCIA and the
abundance of PC Card I/O applications mean that interrupts are an integral part of the PCI1031. The PCI1031
provides several interrupt signaling schemes to accommodate the needs of a variety of platforms. The different
mechanisms for dealing with interrupts in this device are based on various specifications and industry
standards. The ExCA register set provides interrupt control for 16-bit PC Card functions.
The PCI1031 detects interrupts and/or events at the PC Card interface and notifies the host interrupt controller
via one of several interrupt signaling protocols. T o simplify the discussion and use of interrupts in the PCI1031,
PC Card interrupts are classified as either CSC interrupts or functional interrupts. Functional interrupts are
explicit requests for interrupt servicing directly from the PC Card. Such requests are communicated over a
dedicated PC Card signal defined for this purpose. CSC interrupts indicate a change in the state of the PC Card
(i.e., card removal or insertion, or power up complete). All sources of functional and CSC interrupts are
discussed in detail in the following sections, as well as any specific options to be configured by host software.
The method by which either type of PC Card interrupt is communicated to the host interrupt controller varies
from system to system. The PCI1031 offers system designers the choice of using PCI interrupt signaling,
traditional ISA IRQ signaling, serialized IRQ protocol, or PCI with ISA interrupts.
22
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
y
16-bit I/O
All PC Cards
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
functional and CSC interrupts
Functional interrupts are defined as requests from a PC Card for interrupt service, and are indicated by asserting
specially defined signals on the PC Card interface. Functional interrupts are generated by 16-bit I/O PC Cards.
CSC interrupts are defined as events at the PC Card interface that are detected by the PCI1031 and can warrant
notification of host software for service. Such events include transitions on certain PC Card signals or card
removal/insertion. The specific examples of functional and CSC interrupts depend on the type of PC Card(s)
installed in the socket at any given time. The 16-bit interrupt sources differ between memory and I/O PC Cards.
Table 7 summarizes the sources of interrupts and the type of PC Card associated with them. The functional
interrupt events are valid only for 16-bit I/O Cards. Card insertion and removal events are independent of the
card type since the same card-detect signals are used in both cases and the PCI1031 cannot distinguish
between card types upon card insertion.
Table 7. PC Card Interrupt Events and Description
CARD TYPEEVENTTYPESIGNALDESCRIPTION
A transition on BVD1 indicates a change in the PC Card
battery conditions.
A transition on BVD2 indicates a change in the PC Card
battery conditions.
A transition on READY indicates a change in the ability of the
memory PC Card to accept or provide data.
The assertion of STSCHG indicates a status change on the
PC Card.
The assertion of IREQ indicates an interrupt request from
the PC Card.
A transition on either CD1 // CCD1 or CD2 // CCD2 indicates
an insertion or removal of a 16-bit // CardBus PC Card.
An interrupt is generated when a PC Card power up cycle
is complete.
16-bit memory
Battery conditions
(BVD1, BVD2)
Wait states
(READY)
Change in card status
(STSCHG
Interrupt request
Card insertion
or removal
Power cycle completeCSCN/A
)
(IREQ)
CSCBVD1(STSCHG)
CSCBVD2(SPKR)
CSCREADY(IREQ)
CSCBVD1(STSCHG)
FunctionalREADY(IREQ)
CSC
CD1//CCD1,
CD2
//CCD2
PCI1031
The signal-naming convention for PC Card signals describes the function for 16-bit memory and I/O cards. The
16-bit memory card signal name is first, with the I/O card signal name second, enclosed in parentheses. The
16-bit I/O cards use two signal lines to signal interrupts: one to indicate a change in card status and another
dedicated to request interrupt servicing from the host. A 16-bit memory PC Card uses the BVD1 and BVD2
signals to indicate changes in battery conditions on the card, and it uses the READY signal to insert wait states
during memory card data transfers.
The PC Card standard describes the power-up sequence that must be followed by the PCI1031 when an
insertion event occurs and the host requests that the socket V
and VPP be powered. Upon completion of this
CC
power-up sequence, the PCI1031 interrupt scheme can be used to notify the host system denoted by “power
cycle complete” (see T able 7). This interrupt source is considered a PCI1031 internal event because it does not
depend on a signal change at the PC Card interface, but rather the completion of applying power to the socket.
Host software can individually mask (disable) each of the potential CSC interrupt sources listed in Table 7 by
setting the appropriate bits in the PCI1031. By individually masking the interrupt sources listed in T able 7, host
software can control which events cause a PCI1031 interrupt. Host software has some control over which
system interrupt the PCI1031 asserts by programming the appropriate routing registers. The PCI1031 allows
host software to route PC Card CSC and functional interrupts to separate system interrupts. Interrupt routing
is specific to the interrupt signaling method used and is discussed in the following sections.
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
23
PCI1031
y
16-bit I/O
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
functional and CSC interrupts (continued)
When an interrupt is signaled by the PCI1031, the interrupt service routine must be able to discern which of the
events in T able 8 caused the interrupt. This is of particular interest with CSC interrupts, where a variety of events
at the card interface can cause interrupts. Internal registers in the PCI1031 provide flags that report to the host
interrupt service routine which of the interrupt sources was the cause of an interrupt. By first reading these status
bits, the interrupt service routine can determine which action to take.
T able 8 describes the valid PC Card interrupt events and details the internal PCI1031 registers associated with
masking and reporting them.
Table 8. PC Card Interrupt Mask and Flag Registers
CARD TYPEEVENTMASKFLAG
Battery conditions
16-bit memory
All PC CardsCard insertion or removalSocket mask register, Bits 2 and 1
(BVD1, BVD2)
Wait states (READY)ExCA offset 05h/45h/805h, Bit 2ExCA offset 04h/44h/804h, Bit 2
Change in card status
(STSCHG
Interrupt request (IREQ)
Power cycle complete
)
ExCA offset 05h/45h/805h, Bits 1 and 0ExCA offset 04h/44h/804h, Bits 1 and 0
ExCA offset 05h/45h/805h, Bit 0
Always enabled
Always enabledPCI configuration offset 91h, Bit 0
ExCA offset 04h/44h/804h, Bit 0
Socket event register, Bits 2 and 1
ExCA offset 04h/44h/804h, Bit 3
There are various methods of clearing the interrupt flag bit. ExCA provides two methods to clear 16-bit
PC Card-related interrupt flags. One is a write of 1 to the bit in question, and the other is a read from the register .
This selection is made by bit 2 in ExCA offset 1Eh/5Eh/81Eh (see
high-byte register
).
ExCA I/O window 0–1 offset-address
There is a single exception to Table 8, when PCI interrupt signaling is used. The enable/disable bits for
functional and CSC interrupts are found in separate registers in PCI configuration register 91h, bits 4 and 3 (see
card control register
). Refer to the section on PCI interrupt signaling for details.
ISA IRQ interrupts
NOTE:
All unused interrupt pins should be pulled high by a 43-kΩ resistor.
Among the PCI1031 interrupt signaling schemes is the traditional ISA IRQ signaling, available in most x86 PCs.
Dedicated terminals on the PCI1031 can be used to assert 10 of the 15 ISA IRQs: IRQ3, IRQ4, IRQ5, IRQ7,
IRQ9, IRQ10, IRQ11, IRQ12, IRQ14, and IRQ15. These IRQs represent the common interrupts expected by
PC Card applications and several free IRQs for CSC routing.
In a system using ISA IRQs, the host software must first configure the PCI1031 to use ISA signaling by setting
bits 2–1 of PCI configuration register, offset 92h, to 01b (see
device control register
). The ten IRQ terminals
remain in the high-impedance state until the ExCA Card CSC and functional interrupt routing registers are set
to a valid state. The step-by-step series of events that host software must follow to successfully configure the
PCI1031 for ISA IRQ signaling follows. These steps assume that the system has powered up and RSTIN
(deasserted). In cases where only selected bits of a register are to be modified, host software must leave the
remaining register bits unchanged by reading the current contents of the register first, modifying the desired bits,
then writing the new value back to the respective PCI1031 register.
is high
24
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
ISA IRQ interrupts (continued)
1. Set bits 2–1 of PCI configuration register 92h (function 0) to 01b for interrupt mode selection.
2. Write to the upper four bits of ExCA register 05h/45h/805h for desired CSC routing for each socket (note
the restrictions placed on interrupt routing with ISA IRQ signaling; only ten IRQs are valid in this mode).
3. If a PC Card is installed in the socket and requires functional interrupts, write to the lower nibble of ExCA
register 03h/43h/803h for desired functional interrupt routing for the socket (note the restrictions placed on
interrupt routing with ISA IRQ signaling).
4. Using T able 9, write to the appropriate mask register bits to enable interrupt generation for desired events.
5. Upon card-removal events, host software should unroute any functional interrupts that were set for that
socket.
6. Upon card-insertion events, host software should reconfigure the mask and routing registers to support the
new card requirements.
PCI interrupts
NOTE:
PCI interrupts can be used with ISA interrupts. All unused INTA
high by a 43-kΩ resistor.
and INTB lines should be pulled
PCI1031
The PCI1031 also supports interrupt signaling compliant with the PCI local bus specification. Consistent with
this specification, the PCI1031 can use one PCI interrupt for each of its functions: INTA is used for PC Card
socket A interrupts, and INTB
dual-function pins with the ISA-mode interrupts IRQ3 and IRQ4. When the PCI1031 is configured for PCI
interrupt signaling, these pins behave as open-drain PCI interrupts. Systems that prefer a single interrupt line
from the PCI1031 can connect these two interrupt terminals together.
PCI configuration register offset 91h must be written in order to route CSC and functional interrupts from each
socket. The step-by-step series of events for host software to successfully configure the PCI1031 for PCI
signaling follows. These steps assume that the system has powered up and RSTIN is high (deasserted). In
cases where only selected bits of a register are to be modified, host software must leave the remaining register
bits unchanged by reading the current contents of the register first, modifying the desired bits, then writing the
new value back to the register.
1. Set bit 5 of PCI configuration register 91h (function 0) to a value of 1 (enabled).
2. Set bit 3 of PCI configuration register 91h (functions 0 and 1 separately) to route CSC interrupts to INTA
(for socket A) or INTB (for socket B).
3. If a PC Card is installed in the socket and requires functional interrupts, write to bit 4 of the PCI Card control
register 91h (for the socket) to route functional interrupts from the PC Card to INT A (for socket A) or INTB
(for socket B).
4. Using T able 8, write to the appropriate mask register bits to enable interrupt generation for desired events.
5. Upon card-removal events, host software should disable any functional interrupts generation.
6. Upon card insertion events, host software should reconfigure the mask and routing registers to support the
new card requirements.
is used for socket B. These pins are on the PCI1031 at pins 154 and 155 and are
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
25
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
serialized IRQ signaling
The serialized interrupt protocol implemented in the PCI1031 uses a single PCI1031 terminal to communicate
all interrupt status information to the host interrupt controller. The protocol defines a serial packet consisting of
a start cycle, a stop cycle, and multiple interrupt cycles. All data in the packet is synchronous with PCLK. The
duration of the stop and interrupt cycles is a fixed number of clock periods, but the start cycle is variable (four
to eight clock periods). This allows the serial packet to retain coherence on either side of a PCI-to-PCI bridge.
Figures 4 and 5 illustrate how the serialized IRQ protocol works. Figure 4 shows the start cycle and the first
several IRQ sampling periods, and Figure 5 shows the final IRQ sampling periods and the stop cycle. The
intermediate IRQ sampling periods are not shown, but the sampling periods occur in ascending IRQ order:
IRQ0, IRQ1, SMI, IRQ3, IRQ4 . . . IRQ15, and IOCHK
illustrations, IRQ1 and IRQ15 are sampled deasserted. The stop cycle only can occur after the IOCHK period,
but can be extended to allow more sampling periods for platform-specific functions.
Start Cycle
. The IRQ signals are active high. In the following
IRQ0IRQ1
SMI (IRQ2)
PCLK
IRQSER
Drive Source
PCLK
IRQSER
Drive Source
IRQx
H
Start
Host Controller
H = Host Control; R = Recovery; T = Turnaround; S = Sample
RT
SRT
NoneNone
SRT
IRQ1
not
asserted
Figure 4. Serial-Interrupt Timing – Start Cycle and IRQ Sampling Periods
IRQ14IRQ15
S
RT
None
H = Host Control; R = Recovery; T = Turnaround; S = Sample
S
IRQ15
not
asserted
RT
IOCHCK
SRT
None
STOP
H
Stop
Host Controller
RT
Figure 5. Serial-Interrupt Timing – Stop Cycle
SRT
None
In a system using the serialized IRQ protocol, the host software must configure the PCI1031 to use serialized
IRQs by setting bits 2–1 of the PCI configuration register at offset 92h to 10b. The step-by-step series of events
that host software must follow to successfully configure the PCI1031 for serialized IRQ signaling follows. These
steps assume that the system has powered up, PCI reset, and RSTIN
is high (deasserted). In cases where only
select bits of a register are to be modified, host software must leave the remaining register bits unchanged by
reading the current contents of the register first, modifying the desired bits, then writing the new value back to
the register.
26
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
serialized IRQ signaling (continued)
1. Set bits 2–1 of PCI device control register 92h (function 0) to 10b.
2. Write to the upper nibble of ExCA register 05h/45h/805h for desired CSC routing for each socket (all 15 IRQs
are available for routing when serialized IRQ signaling has been selected).
3. If a PC Card is installed in the socket and requires functional interrupts, write to the lower nibble of ExCA
register 03h/43h/803h for desired functional interrupt routing for the socket.
4. Using T able 8, write to the appropriate mask register bits to enable interrupt generation for desired events.
5. On card-removal events, host software should unroute any functional interrupts that were set for that
socket.
6. Upon card-insertion events, host software should reconfigure the mask and routing registers to support the
new card requirements.
PCI clock run
PCI1031
The PCI1031 supports PCI clock run (CLKRUN
determine the status of CLK as an open-drain output to request the CLK to restart or to speed up. PCI CLKRUN
is enabled by setting bit 0 in the system control register (see
resource manager informs the PCI1031 that the PCI clock is stopped or slowed, the PCI1031 ensures that no
transactions are in progress for either of the two PC Card sockets before allowing the clock resource manager
to stop or slow the PCI clock. CLKRUN
information on configuring the clock run option.
CLKRUN configuration
Bits 1–0 in the TI extension registers at offset 80h are used to enable and configure CLKRUN. Bit 0 enables
CLKRUN. Bit 1, when set, keeps the PCI clock running in response to a PCI CLKRUN deassertion (see
control register
conditions for stopping/slowing the PCI clock
Before allowing the central resource to slow or stop the PCI clock, the following conditions are checked:
D
The PCI CLKRUN enable bit is set and the KEEP CLOCK bit is cleared (see
D
Neither socket is in the process of powering up or powering down.
D
The 16-bit resource managers are not busy.
D
The PCI master is not busy.
D
No socket interrogation is underway.
D
No card interrupts are pending.
conditions for restarting the PCI clock
The PCI clock restarts when any PC Card is installed in a socket or removed from a socket. For 16-bit cards,
if the PCI clock stops or slows, the PCI1031 requests that the clock be restarted under the following conditions:
).
shares the IRQ10 pin on the PCI1031. See
). CLKRUN is an optional signal that is used as an input to
system control register
). When the PCI clock
system control register
system control register, bit 1
for
system
).
D
A 16-bit I/O card asserts IREQ.
D
A 16-bit I/O card asserts STSCHG/RI.
D
A 16-bit DMA card asserts DREQ.
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
27
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
PC Card DMA and distributed DMA
DMA is a concept with many different interpretations and implementations, depending on the context and
application. In fact, DMA support within the PCI1031 has different connotations, depending on whether the
subject is PCI or PC Card DMA. On the PC Card side, the PCI1031 supports the DMA protocol defined in the
1995 PC Card standard on both sockets. On the PCI side, the PCI1031 supports a distributed DMA protocol,
compliant with the distributed DMA on the PCIWay, revision 6.0, specification. It also supports PC/PCI DMA in
systems designed with the Intel MPIIX.
DMA on PCI is accomplished by compliance with the distributed DMA specification. The PCI1031 complies with
this specification as it applies to DMA devices, and implements two DMA channels; one per socket. Each DMA
channel is controlled by the host via a 16-byte window in PCI I/O address space. This window is mapped in
internal PCI1031 registers that are similar to the 8237 DMA controller programming model. By programming
these registers, the PCI1031 services DMA requests from PC Card applications by initiating PCI bus mastering
cycles to host memory address space.
DMA configuration
Host software must program the PCI1031 socket DMA registers 0 and 1 to set up the socket for DMA transfers.
These registers are found in the PCI configuration header, offsets 94h and 98h (see
DMA register 0
). Socket DMA register 0 applies to the PC Card portion of DMA transfers. Socket DMA register 1
applies to the PCI portion of DMA transfers and complies with the distributed DMA specification.
test register
and
socket
Socket DMA register 0 has only two significant bits. Bits1–0 encode the DREQ signal used by the PC Card. This
field must be programmed with a valid value before the PCI1031 initiates a DMA transfer. Socket DMA register 1
has 16 significant bits, and the encoding is shown in Table 9. The most important field in socket DMA register 1
is the base address that locates the DMA registers in PCI I/O address space. This is how the host communicates
and configures the DMA transfer process.
Table 9. Socket DMA Register 1
BITTYPEFUNCTION
31–16RReserved. Bits 31–16 are read only and return 0s when read. Writes have no effect.
DMA base address. Bits 15–4 locate the socket DMA registers in PCI I/O space. This field represents a 16-bit PCI I/O
15–4R/W
3RNonlegacy extended addressing. This is not supported on the PCI1031 and always returns a 0.
2–1R/W
0R/W
address. The upper 16 bits of the address are hardwired to 0, forcing this window to within the lower 64K bytes of I/O
address space. The lower four bits are hardwired to 0, forcing the window to a natural 16-byte boundary.
Transfer size. Bits 2–1 specify the width of the DMA transfer on the PCI interface. This field is encoded as:
00 = 8-bit transfer (default)
01 = 16-bit transfer
10 = Reserved
11 = Reserved
Decode enable. Enables the decoding of the DMA base address by the PCI1031. Bit 0 is encoded as:
0 = Disabled (default)
1 = Enabled
When host software initializes the PCI1031, the base address in socket DMA register 1 can be programmed,
but not enabled. When a particular DMA-capable PC Card is installed in the socket, host software can proceed
to program the DREQ
signaling option, the datapath width, and enable the DMA register decode in I/O space.
These options are specific to the PC Card and must be set when the card is configured, but not when the socket
is configured. After setting these options and enabling the DMA register decode, the DMA registers can be
programmed. The DMA register programming model is shown in Table 10.
28
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
Reserved
Page
00h
Reserved
Reserved
04h
Reserved
08h
Multichannel mask
Reserved
Reserved
0Ch
DMA configuration (continued)
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
Table 10. DMA Registers
R/WREGISTER NAME
R
W
R
W
RNA
WMode
R
W
Current address
Base address
Current word
Base word
NAStatus
RequestCommand
NA
Master clear
DMA BASE
ADDRESS OFFSET
The DMA registers contain control and status information consistent with the 8237 DMA controller; however,
the register locations are reordered and expanded in some cases. Refer to
DMA registers
for a detailed
description of the individual bits contained in the DMA registers. While the DMA register definitions are identical
to those in the 8237 DMA controller of the same name, some register bits defined in the 8237 DMA controller
do not apply to distributed DMA in a PCI environment. In such cases, the PCI1031 implements these obsolete
register bits as read-only , nonfunctional bits. The reserved registers shown in T able 10 are implemented as read
only, and return 0s when read. Writes to reserved registers have no effect.
DMA transfers
The DMA transfer is prefaced by several configuration steps that are specific to the PC Card and must be
completed after the PC Card is inserted and interrogated, as follows:
1. Set the proper DMA request (DREQ) signal assignment in the PCI configuration, offset 94h (bits 1–0).
2. Set the proper data width of the DMA transfer in the PCI configuration, offset 98h (bits 2–1).
3. Enable I/O window decoding of the DMA registers by setting bit 0 in the PCI configuration offset 98h.
These steps assume that host software has already powered the PC Card, interrogated its CIS, and set the
appropriate bits in the PCI1031 that identify the card as a 16-bit I/O PC Card. Also, both I/O access and bus
mastering must be enabled in the PCI command register. Host software can then program the DMA registers
with the transfer count, direction of the transfer, and memory location of the data. Once this programming is
complete, the PCI1031 awaits the assertion of DREQ
to initiate the transfer.
DMA writes transfer data from the PC Card to PCI memory addresses. The PCI1031 accepts data 8 or 16 bits
at a time (depending on the programming of the data width register field), then requests access to the PCI bus
by asserting its REQ
signal. Once granted access to the bus and the bus returns to an idle state, the PCI1031
initiates a PCI memory write command to the current memory address and transfers the data in a single data
phase. After terminating the PCI cycle, the PCI1031 accepts the next byte(s) from the PC Card until the transfer
count expires.
DMA reads transfer data from PCI memory addresses to the PC Card application. Upon the assertion of DREQ,
the PCI1031 asserts its PCI REQ signal to request access to the PCI bus. Once access is granted and the bus
is idle, the PCI1031 initiates a PCI memory read operation to the current memory address and accepts 8 or
16 bits of data (depending on the programming of the socket DMA register 1 field). After terminating the PCI
cycle, the data is passed on to the PC Card. After terminating the PC Card cycle, the PCI1031 requests access
to the PCI bus again until the transfer count expires.
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
29
PCI1031
PCI-TO-PC CARD16 CONTROLLER UNIT
SCPS008B – FEBRUARY 1996 – REVISED DECEMBER 1997
DMA transfers (continued)
PCI I/O read and write cycles to the DMA registers are accepted and serviced during DMA transfers. If, while
a DMA transfer is in progress, the host resets the DMA channel, the PCI1031 asserts TC and ends the PC Card
cycle(s). TC is indicated in the DMA status register. At the PC Card interface, the PCI1031 supports demand
mode transfers. The PCI1031 asserts DACK the entire duration of the transfer unless DREQ is high
(deasserted) before TC. There is no performance penalty for long wait states during this mode of operation as
there is in the legacy ISA system, because the DMA channel is a dedicated resource localized at the
PC Card socket.
PC/PCI DMA
The PC/PCI DMA protocol provides a way for legacy I/O devices to do DMA transfers on the PCI bus in systems
equipped with the Intel MPIIX. The Intel MPIIX supports PC/PCI DMA expansion for docking station applications
where I/O devices require DMA transfers between the docking station PCI bus or extended I/O bus and a PCI
bus in the notebook docking computer.
In the PC/PCI DMA protocol, the PCI1031 acts as a PCI slave device. The Intel MPIIX DMA controller uses
request/grant pairs, REQ
as the PCI1031. The Intel MPIIX REQ and GNT pins correspond to the PCI1031 IRQ7 and IRQ11 pins,
respectively . Under the PC/PCI protocol, a PCI DMA slave device requests a DMA transfer using a serialized
protocol on REQ. The Intel MPIIX, as a bus master , arbitrates for the PCI bus. When the Intel MPIIX gets control
of the PCI bus, it asserts GNT
memory cycles on the PCI bus.
[A–B] and GNT[A–B], which are configured to support a PCI DMA slave device such
on the PCI1031 and, for the selected DMA channel, runs the DMA I/O cycles and
PC/PCI DMA is enabled for each PC Card16 slot by setting bit 19 in the respective system control register (see
T able 16). On power up, bit 19 is cleared, disabling PC/PCI DMA. Bit 3 of each PCI1031 system control register
is a global PC/PCI enable bit. When bit 3 is set, the PCI1031 can request a DMA transfer by asserting IRQ7
(REQ) and encoding the channel request information using the serialized protocol. When the Intel MPIIX gets
control of the PCI bus, it encodes the granted channel on the PCI1031 IRQ11 (GNT) pin. On power up, bit 3
is cleared and PC/PCI DMA is disabled. When the PCI1031 receives a GNT
signal, it looks at the DMA I/O
address to determine the type of transfer. The cycle types are as follows:
DMA I/O ADDRESSDMA CYCLE TYPETERMINAL COUNTPCI CYCLE TYPE