MORE INFORMATION
When you are debugging a "STOP 0x000000A5" error message, it is important note the following items:
- The cause of the stop message is always errors in the ACPI BIOS. There is nothing that can be done at an operating system level to fix the problem.
- This stop message can occur at other times. It is possible to get Windows installed, later make a hardware change such as adding a device, and then receive the stop message. A computer that works properly with Microsoft Windows 98 may not work with Windows 2000. Windows 98 does not necessarily use all of the ACPI functions that Windows 2000 uses (Windows 98 may allow workarounds to problems that Windows 2000 cannot use because of its more stringent requirements for system stability).
A common 0x000000A5 stop message is as follows:
Stop: 0x000000A5 (Parameter1, Parameter2, Parameter3, Parameter4)
The following information lists possible causes of the stop message. To identify the cause of the stop message, note
Parameter1 and compare it to the numbers listed below to get a general idea of the problem. The other parameters (arguments) are not covered in this article. You can view these other arguments only by connecting the system to a kernel debugger. This article provides a description of the issue without requiring more advanced debugging. For more information, please refer to Acpidbg.h.
(0x00000001,
Parameter2,
Parameter3,
Parameter4):
This is defined as an ACPI root resources failure. More specifically, ACPI could not find the SCI interrupt vector in any of the resources handed to it at startup. SCI stands for "System Control Interrupt" and is a special interrupt type that is meant to provide a more efficient method of dealing with problems that are normally handled by System Management Interrupts (SMI). If System Control Interrupts cannot be initialized, ACPI cannot function. This can be because either no entry for this IRQ is found in the list or no IRQ resource list was found at all.
(0x00000002,
Parameter2,
Parameter3,
Parameter4):
This error is defined as ACPI root PCI resource failure. To discover what current resources are being used by PCI devices, it must be able to query the CRS descriptor in the ACPI namespace. This error occurs because the BIOS lacks a pointer to the list, the list is empty, or contains errors/conflicts.
(0x00000003,
Parameter2,
Parameter3,
Parameter4):
This error is defined as "ACPI failed must succeed method." This error is caused when ACPI cannot build a control method to reference the ACPI namespace. Additional arguments for this error reference the ACPI object that was being run and the name of the control method. A greatly simplified (and not necessarily 100 percent accurate) explanation is that the system was unable to find a way to get to the tables in ACPI that define the Plug and Play and Power Management capabilities of the system.
(0x00000004,
Parameter2,
Parameter3,
Parameter4):
This error occurs because the system expected an integer as a package element when defining a _PRW method in the ACPI namespace. _PRW is only defined for systems that have the ability to wake the system from a sleep state. Among other things, it defines the lowest power system state that can be entered by the system while still providing the ability to wake. Expecting an integer, the system received some other data type.
(0x00000005,
Parameter2,
Parameter3,
Parameter4):
The _PRW referenced above is required to contain at least two elements. When queried, it did not indicating that it was incomplete.
(0x00000006,
Parameter2,
Parameter3,
Parameter4):
A Power Resource is named but no information is available in the namespace for this resource.
(0x00000007,
Parameter2,
Parameter3,
Parameter4):
When referencing a method in the ACPI namespace, the system expected a data type of BUFFER but received some other data type in return.
(0x00000008,
Parameter2,
Parameter3,
Parameter4):
The system expected an INTEGER data type but received some other type.
(0x00000009,
Parameter2,
Parameter3,
Parameter4):
The system expected a PACKAGE data type but received some other type.
(0x0000000A,
Parameter2,
Parameter3,
Parameter4):
The system expected a STRING data type but received some other type.
(0x0000000B,
Parameter2,
Parameter3,
Parameter4):
An _EJD string referenced a non-existent object. The _EJD object defines objects that are dependent upon a specific ejection device. For example, if you have an add-in adapter in a docking station and attempt to eject the laptop computer, ACPI references this namespace to determine if the dependent adapter in the docking station would support the ejection. This error occurs because there is no object to define the name referenced in the _EJD string.
(0x0000000C,
Parameter2,
Parameter3,
Parameter4):
The namespace defines support for docking but lacks enough information to implement it. This can be because it is not properly defined or because there are duplicate services defined.
(0x0000000D,
Parameter2,
Parameter3,
Parameter4):
There are many objects that must be defined in the ACPI namespace, and one or more of these was not found. This error generally occurs if either the _HID or _ADR object is missing. An _ADR is used to define the address of a device on its parent bus. It is a static address that is used to define the slot number for a device residing on any number of bus types, including EISA, floppy, IDE controller, IDE channel, PCI, PCMCIA, and CardBus. The _HID contains objects used to supply the operating system with a device's Plug and Play hardware ID. Technically, these can be optional but absolutely must be present to describe any device that is enumerated by an ACPI driver.
(0x0000000E,
Parameter2,
Parameter3,
Parameter4):
This error occurs because the system could not find a required method or object in the namespace for a power resource. These are anything other than a "device." If the BIOS does not supply either an ON, OFF, or STA for a power resource, it stops with this error.
(0x0000000F,
Parameter2,
Parameter3,
Parameter4):
This occurs when a Plug and Play resource descriptor is smaller than its defined size, indicating that it is either incomplete or corrupted. Resource descriptors are used for such things as describing the system resources the computer is using at the moment, can use, or would like to use. Each descriptor entry has a predefined size and that size does not match the data returned.
(0x000000010,
Parameter2,
Parameter3,
Parameter4):
When a system transitions from one power state to another, it compares the states supported system-wide to those supported by the individual devices in the system. This error occurs because Power Resource is mapping to a non-existent system-wide resource. You can use a kernel debugger to view the specifics of this error, including the system power state that is causing the problem.
(0x000000011,
Parameter2,
Parameter3,
Parameter4):
The system could not enter ACPI mode. There are many reasons for this, including:
- It could not initialize the AML interpreter.
- It could not find the Root System Description table.
- It could not allocate a critical driver.
- It could not load the Root System Description table.
- The system could not load device descriptor blocks.
- The system could not connect an interrupt vector.
- The SCI_EN (system control interrupt enable request) cannot be set (see 0x00000001 earlier in this article).
- The ACPI Table checksum is incorrect.
ACPI consists of a hierarchical arrangement of tables, each one building upon the next to define the complete capabilities of the system and every device in it. It starts by looking for the Root System Description table, which points to the next table, which points to the next and so on. This error occurs for the most part because these tables are bad or missing.
(0x000000012,
Parameter2,
Parameter3,
Parameter4):
ACPI is expecting a Power Resource Object that cannot be found. The exact object can be found by viewing the error through a kernel debugger.
(0x00002001,
Parameter2,
Parameter3,
Parameter4):
ACPI attempted to evaluate the control method for a specific type of Programmable Interrupt Controller and did not succeed.
(0x00010001,
Parameter2,
Parameter3,
Parameter4):
This error indicates an error when attempting to perform interrupt routing. This is usually due to a bad interrupt routing table.
(0x00010002,
Parameter2,
Parameter3,
Parameter4):
ACPI could not find a link node referenced in the interrupt routing table.
(0x00010003,
Parameter2,
Parameter3,
Parameter4):
A device is present in the system for which there is no entry in the IRQ routing table.
(0x00010005,
Parameter2,
Parameter3,
Parameter4):
This relates to the rules about how a PCI routing table is written. To prevent unnecessary ambiguities, it is important that the device number be specified in the table but the function number not. To this end, the function field must be set to all F's. This error occurs when a function number is encountered that is not all F's.
(0x00010006,
Parameter2,
Parameter3,
Parameter4):
To reprogram a link node, ACPI must be capable of disabling it. This error occurs when ACPI was not able to disable a link node.