CardBus Adapter Not Enumerated at Boot with Texas Instruments 4451 CardBus Controller (272248)
The information in this article applies to:
- Microsoft Windows Millennium Edition
This article was previously published under Q272248 If this article does not describe your hardware-related issue, please see the following Microsoft Web site to view more articles about hardware: SYMPTOMS
If your computer contains a Texas Instruments 4451 CardBus controller and you start the computer with a CardBus adapter inserted in one of the CardBus sockets, the following symptoms may occur:
- The adapter is not enumerated. In Device Manager, the CardBus socket appears to be empty.
- The adapter is enumerated, but appears as "Disabled" (with an error message) in Device Manager.
- The adapter is enumerated as "Unknown Device."
CAUSE
This problem might occur in some computers that use the Texas Instruments 4451 CardBus controller chip set because of the following sequence of events:
- When you start the computer with a CardBus adapter in one of the CardBus slots in this controller, a Power Management event (PME) is indicated in the status register for the CardBus controller.
- The Windows CardBus driver (Cbss.vxd) responds to the PME by sending a command to the controller that sets both the PME_STATUS (0x8000) and PME_EN (0x0100) bits simultaneously. These bits have the following effects:
- Setting the PME_STATUS bit clears the current PME. Therefore, the device does not indicate the PME again until another PME occurs.
- Setting the PME_EN bit enables the device to actually send subsequent PME signals on the PCI bus. Unless this bit is set, the device may indicate a PME in its registers, but not generate the #PME signal on the PCI bus to notify the operating system.
- When the PME_STATUS (0x8000) and PME_EN (0x0100) bits are set simultaneously, the Texas Instruments 4451 CardBus controller does not guarantee the order in which the resulting actions are implemented. In the problem scenario, the PME_EN bit takes effect first, signaling #PME on the PCI bus. Then, the event is immediately cleared by the PME_STATUS bit, and #PME is no longer signaled on the PCI bus.
- As a result of the brief #PME signal on the PCI bus, the device driver for the CardBus controller (Cbss.vxd) attempts to service the PME, but when it examines the device's registers it finds no PME to service. Because of this contradictory state, the CardBus driver does not successfully enumerate the CardBus adapters in the CardBus slots.
RESOLUTION
Some Original Equipment Manufacturers (OEMs) have resolved this problem in the computer's BIOS by reading the PME status line multiple times when it is signaled, and passing the PME signal only if the PME line remains active for more than a brief period (for example, for more than three milliseconds).
Modification Type: | Major | Last Reviewed: | 8/8/2006 |
---|
Keywords: | kbHardware kbhw kbprb kbWinME KB272248 |
---|
|