Plug and Play Design for PC Card 16

This section summarizes the Plug and Play requirements for PC Card 16 cards.

The Windows operating system determines what type of card is plugged into the PC Card socket by examining the tuples on the card. For Plug and Play functionality, PC I/O cards must support a set of required information and configuration tuples. The PCMCIA bus enumerator uses these tuples to identify the card, load the correct device driver, and indicate all the possible configurations to the Plug and Play configuration manager. The configuration manager then dynamically assigns a valid configuration based on this information.

9. Required I/O card tuples supported

Required


You must implement the following items for any PCMCIA I/O card that connects to a PC 97 system:

Windows uses the information contained in the required and recommended tuples to create a unique device identifier for the card and to assimilate configuration information for the device. Windows uses the device configuration tuples to determine the general characteristics of the card.

Required I/O Card Tuples

Tuple
identifier
Tuple codeDescription and comments


01hCISTPL_DEVICEDevice information (common memory). For non-memory cards, this tuple must be present, but the device type will be NULL.
15hCISTPL_VERS_1Level 1 version/product information:
Product information string
Product name
Product number
Other manufacturer information
1AhCISTPL_CONFConfiguration. Indicates the location of configuration registers and the registers present.
1BhCISTPL_CEConfiguration table entry. Appropriate configuration requirements for I/O space, interrupts, memory, and so on should be specified.
20hCISTPL_MANFIDManufacturer identifier. Card manufacturer identifier code. Defines manufacturer for this card.
21hCISTPL_FUNCIDFunction identifier. Provides function information about the card. Also includes system initialization information.


The device information tuple provides information about the memory devices used in the card's common memory space. The device type, size, and speed are used to configure the socket for efficient access to the card. This tuple must be present on PCMCIA I/O cards, but the device type must be NULL.

The Level 1 version/product information tuple contains human-readable information about the product and its manufacturer. This information is intended to be displayed to the user, where necessary. Windows uses the information contained in the product information and product name strings to construct the device identifier for that card. It also scans through the tuple, starting at the very beginning and going to the end of the product name string. The information gathered from the scan is one source for creating a 16-bit cyclic redundancy check (CRC) that Windows uses to construct the device identifier. Because the optional third and fourth strings in the tuple are not used in the CRC scan, devices that require unique numbers on each card can use these strings to store that information.

The configuration tuple tells the software where to locate the configuration registers that program the card's configuration, as well as which registers are present on the card.

Each configuration table entry tuple completely describes one valid configuration in which the card can operate. Each entry describes power, timing, I/O space, interrupt, and memory space requirements for the given configuration. Configuration software selects one of these configurations for the card based on the resources currently available in the system.

The manufacturer identifier tuple (CISTPL_MANFID, 20h) and the function identification tuple (CISTPL_FUNCID, 21h) add extra flexibility to a PC Card that connects to the PC:

10. Configuration entry tuples listed in priority order

Required


Place the configuration entry tuples in the preferred order for configuring the device. Windows processes the tuples in the order they are placed in the card's information structure (CIS). From these tuples, Windows creates logical configuration in this order and prioritizes them in the same order. Notice that for multiple voltage cards the voltage policy is to prioritize 3.3V configurations (if supported by the system) over 5V configurations, regardless of the order of the configuration table entry tuples (CISTPL_CFTABLE_ENTRY).

11. Maximum configuration options specified

Required


Many older PC Cards specified "fixed" configurations to address compatibility with existing software. However, this is not the intended use for tuples; the configuration software should be responsible for compatibility. The tuples should be used only to rule out configurations not supported by the hardware. If you must provide fixed configurations for an operating system other than Windows, you must still provide one or more entries that specify the maximum configurability the hardware can handle.