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 Card 16 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 possible configurations to the Plug and Play configuration manager. The operating system then dynamically assigns a valid configuration based on this information.
11. Card supports required I/O card tuples
Required
The following items must be implemented for any PC Card 16 I/O card that connects to a PC 98 system:
Windows uses the information contained in the required and recommended tuples to create a unique device ID 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 ID | Tuple code | Description and comments |
01h | cistpl_device | Device information (common memory). For non-memory cards, this tuple must be present, but the device type will be NULL. |
15h | cistpl_vers_1 | L1 version/product information strings: Product information Product name Product number Other manufacturer information |
1Ah | cistpl_conf | Configuration. Indicates the location of configuration registers and registers present. |
1Bh | cistpl_ce | Configuration table entry. Appropriate configuration requirements for I/O space, interrupts, memory, and so on should be specified. |
20h | cistpl_manfid | Manufacturer ID. Card manufacturer ID code. Defines manufacturer for this card. |
21h | cistpl_funcid | Function ID. 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 PC Card 16 I/O cards, but the device type must be NULL.
The L1 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 string and product name string to construct the device ID for that card. It also scans through the tuple, starting at the very beginning and continuing to the end of the product name string.
The information gathered from the L1 version/product information tuple is used to construct the unique device ID. Because the optional third and fourth strings in the tuple are not used in the unique ID, 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 ID tuple (cistpl_manfid, 20h) and the function ID tuple (cistpl_funcid, 21h) add extra flexibility to a PC Card that connects to the PC:
12. Configuration table entry tuples listed in priority order
Required |
Configuration table entry tuples are placed in the preferred order for configuring the device. Windows processes the tuples in the order they are placed in the CIS. From these tuples, Windows creates a 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.3-volt configurations (if supported by the system) over 5-volt configurations, regardless of the order of the configuration table entry tuples (cistpl_cftable_entry).
13. Card specifies maximum configuration options
Required |
Many older PC Cards specified fixed configurations in order 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 still must provide one or more entries that specify the maximum configurability that the hardware can handle.