Problems with PC Card 16 interrupt and initialization of PC Card Controller

Most PC Card Adapters used in modern machines are CardBus Bridges, which should be supported through the BIOS. This section describes the BIOS support that might be provided for a CardBus Bridge. CardWare Socket Services Driver SSPCIC.SYS will also support the older technologies of 16-bit PC Card Adapters and PCI-to-PC Card Bridges but, because they do not require special BIOS support, the contents of this section can be ignored.

In theory, the computer’s BIOS should perform a series of tasks to initialize the CardBus Bridge:

  1. Enable the bridge.
  2. Assign IRQ to Bridge functions (i.e., not to any cards in the sockets).
  3. Set an appropriate interrupt mode and (on some Texas Instruments PC Card Adapters) multi-function routing.
  4. Assign legacy I/O address to access the socket’s registers.
  5. Assign a 4KB memory window to access the socket’s registers.
  6. Enumerate secondary PCI buses behind the Bridge (one per socket).
  7. Adjust number of installed PCI buses reported by BIOS (considering number of CardBus sockets).
  8. If your notebook has a docking station, the BIOS should also perform full initialization after each docking event, and readjust its resources after each undocking event.

Most modern Notebook BIOS’ will perform task 1 to 4, and some will also perform task 5. Presently, APSoft is only aware of one BIOS that performs Task 6 and 7 (no BIOS is known to perform task 8). So far, most desktop BIOS’ completely ignore the CardBus Bridge, and therefore, perform none of the above tasks.

SSPCIC is able to perform some, or all of the initialization tasks that ought to be carried out by the BIOS. Command line switches are used to define which tasks the SSPCIC should perform and how to perform them. For list of supported switches under DOS simply type SSPCIC /?. Under Windows NT, please refer to the CardWare help file. Under OS/2 please refer to the SSPCIC driver documentation.

There are two groups of switches:

  1. Intelligent Switches (e.g., /VS:auto, /AP:on) will instruct SSPCIC to try to detect the system state of a particular characteristic. If the state is not considered optimal, it will be changed automatically.
  2. Direct Control Switches (e.g., /VS:50, /IM:...) influence the same characteristics of the Bridge, but force SSPCIC to perform initialization in a particular way. However, be very careful when using Direct Control Switches, as SSPCIC does not perform any validity checks. It is very easy to initialize Socket Services in such a way, that makes the machine unusable. Therefore, you should plan your backup strategy to deal with the system hanging or crashing during the next boot.
The PCI interrupt assignment to CardBus adapters is only possible under PCI Bios 2.1 or higher. If your computer uses an older PCI Bios you may need to request a BIOS upgrade from your PC manufacturer.

If PC Card 16 interrupt doesn't work on your computer, most likely you have to initialize interrupt mode and/or (on Texas Instruments 12xx, 14xx, 44xx families) multi-function terminal routing. Exact set of required switches could be difficult to determine and generally speaking we would recommend to send platform to us. However you can try all possible combinations of /IM parameter and (on Texas Instruments 12xx, 14xx, 44xx families) - /MX parameter. For example:

  • Compaq Presario 1800 XL1 machine requires "/VS:50 /EC:auto /PI:0,11 /MX:off /IM:0,ISPP" command line of SSPCIC.
  • Compaq E700/M700, M300, 7800/7400, 4200, 1700/3500, 1750/Prosignia, 1500c work with "/VS:50 /IM:0,ISPP" command line of SSPCIC.
  • Compaq Armada 7300/7700, 1500, 6500 require "/VS:50 /IM:0,Ser /IM:1,Ser" command line of SSPCIC.
  • Digital HiNote Ultra2000 w/ Xircom card works with "/VS:50 /MS:0,1 /MW:0,2 /IM:1,Ser /IF:on" command line of SSPCIC.
  • ... etc.