Bug Check 0xA5: ACPI_BIOS_ERROR
The ACPI_BIOS_ERROR bug check has a value of 0x000000A5. This bug check indicates that the Advanced Configuration and Power Interface (ACPI) BIOS of the computer is not fully compliant with the ACPI specification.
Important Info If You Have Received a STOP Code
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss. A hardware device, its driver, or related software might have caused this error. If your copy of Windows came with your computer, call the manufacturer of your computer. If you purchased Windows separately from your computer, Microsoft provides support. To find contact info for Microsoft or your computer manufacturer, Contact Support.
If you have experience with computers and want to try to recover from this error, follow the steps provided in the Microsoft article Resolving STOP (Blue Screen) Errors in Windows.
These actions might prevent an error like this from happening again:
- Download and install updates and device drivers for your computer from Windows Update.
- Scan your computer for computer viruses.
- Check your hard disk for errors.
ACPI_BIOS_ERROR Parameters
Four bug check parameters appear on the blue screen. Parameter 1 indicates the kind of the incompatibility. The meaning of the other parameters depends on the value of Parameter 1.
If the BIOS incompatibility is related to Plug and Play (PnP) or power management, the following parameters are used.
| Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Cause |
|---|---|---|---|---|
|
0x01 |
ACPI's deviceExtension |
ACPI's ResourceList |
0: No resource list is found 1: No IRQ resource is found in list |
ACPI cannot find the System Control Interrupt (SCI) vector in the resources that are handed to it when ACPI is started. |
|
0x02 |
(See the table later on this page) | |||
|
0x03 |
The ACPI object that was being run |
The return value from the interpreter |
The name of the control method (in ULONG format) |
ACPI tried to run a control method while creating device extensions to represent the ACPI namespace, but this control method failed. |
|
0x04 |
The ACPI extension that _PRW belongs to |
A pointer to the method |
The DataType returned (see Amli.h) |
ACPI evaluated a _PRW and expected to find an integer as a package element. |
|
0x05 |
The ACPI extension that _PRW belongs to |
Aointer to the _PRW |
The number of elements in the _PRW |
ACPI evaluated a _PRW, and the package that came back failed to contain at least two elements. The ACPI specification requires that two elements always be present in a _PRW. |
|
0x06 |
The ACPI extension that _PRx belongs to |
A pointer to the _PRx |
A pointer to the name of the object to look for |
ACPI tried to find a named object, but it could not find the object. |
|
0x07 |
The ACPI extension that the method belongs to |
A pointer to the method |
The DataType returned (see Amli.h) |
ACPI evaluated a method and expected to receive a buffer in return. However, the method returned some other data type. |
|
0x08 |
The ACPI extension that the method belongs to |
A pointer to the method |
The DataType returned (see Amli.h) |
ACPI evaluated a method and expected to receive an integer in return. However, the method returned some other data type. |
|
0x09 |
The ACPI extension that the method belongs to |
A pointer to the method |
The DataType returned (see Amli.h) |
ACPI evaluated a method and expected to receive a package in return. However, the method returned some other data type. |
|
0x0A |
The ACPI extension that the method belongs to |
A pointer to the method |
The DataType returned (see Amli.h) |
ACPI evaluated a method and expected to receive a string in return. However, the method returned some other data type. |
|
0x0B |
The ACPI extension that _EJD belongs to |
The status that the interpreter returns |
The name of the object that ACPI is trying to find |
ACPI cannot find the object that an _EJD string references. |
|
0x0C |
The ACPI extension that ACPI found a dock device for |
A pointer to the _EJD method |
0: BIOS does not claim system is dockage 1: Duplicate device extensions for dock device |
ACPI provides faulty or insufficient information for dock support. |
|
0x0D |
The ACPI extension that ACPI needs the object for |
The (ULONG) name of the method that ACPI looked for |
0: Base case 1: Conflict |
ACPI could not find a required method or object in the namespace This bug check code is used if there is no _HID or _ADR present. |
|
0x0E |
The NS PowerResource that ACPI needs the object for |
The (ULONG) name of the method that ACPI looked for |
0: Base case |
ACPI could not find a required method or object in the namespace for a power resource (or entity other than a "device"). This bug check code is used if there is no _ON, _OFF, or _STA present for a power resource. |
|
0x0F |
The current buffer that ACPI was parsing |
The buffer's tag |
The specified length of the buffer |
ACPI could not parse the resource descriptor. |
|
0x10 |
(See the table later on this page) | |||
|
0x11 |
(See the table later on this page) | |||
|
0x14 |
The current buffer that ACPI was parsing |
The buffer's tag |
A pointer to a variable that contains the ULONGLONG length of the buffer |
ACPI could not parse the resource descriptor. The length exceeds MAXULONG. |
|
0x15 |
The ACPI Machine Language (AML) context |
1: Failed to load table 2: The Parameter Path String Object was not found 3: Failed to insert Parameter Data into the ParameterPath String Object 4: Out of system memory |
The NT status code |
ACPI had a fatal error when attempting to load a table. |
|
0x16 |
A pointer to the parent NSOBJ |
A pointer to the illegal child ACPI namespace object |
Reserved |
ACPI had a fatal error when processing an xSDT. An object was declared as a child of a parent that cannot have children. |
If an interrupt routing failure or incompatibility has occurred, the following parameters are used.
| Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Cause |
|---|---|---|---|---|
|
0x2001 |
InterruptModel (integer) |
The return value from the interpreter |
A pointer to the PIC control method |
ACPI tried to evaluate the PIC control method but failed. |
|
0x10001 |
A pointer to the device object |
A pointer to the parent of the device object |
A pointer to the _PRT object (See the following Comments section) |
ACPI tried to do interrupt routing, but failed. |
|
0x10002 |
A pointer to the device object |
A pointer to the string name that ACPI was looking for but could not find |
A pointer to the _PRT object (See the following Comments section) |
ACPI could not find the link node referenced in a _PRT. |
|
0x10003 |
A pointer to the device object |
The device ID or function number. This DWORD is encoded as follows: bits 5:0 are the PCI device number, and bits 8:6 are the PCI function number |
A pointer to the _PRT object (See the following Comments section) |
ACPI could not find a mapping in the _PRT package for a device. |
|
0x10005 |
A pointer to the _PRT object (See the following Comments section) |
A pointer to the current _PRT element. (This pointer is an index into the _PRT.) |
The device ID or function number. This DWORD is encoded as follows: bits 15:0 are the PCI function number, and bits 31:16 are the PCI device number |
ACPI found an entry in the _PRT that the function ID is not all F's for. (The generic format for a _PRT entry is that the device number is specified, but the function number is not.) |
|
0x10006 |
A pointer to the link node. (This device is missing the _DIS method.) |
0 |
0 |
ACPI found a link node, but it cannot disable the node. (Link nodes must be disabled to allow for reprogramming.) |
|
0x10007 |
The vector that could not be found |
0 |
0 |
The _PRT contained a reference to a vector that is not described in the I/O APIC entry's MAPIC table. |
|
0x10008 |
The invalid interrupt level. |
0 |
0 |
The ACPI SCI interrupt level is invalid. |
|
0x10009 |
0 |
0 |
0 |
The Fixed ACPI Description Table (FADT) could not be located. |
|
0x1000A |
0 |
0 |
0 |
The Root System Description Pointer (RSDP) or Extended System Description Table (XSDT) could not be located |
|
0x1000B |
The ACPI table signature |
A pointer to the ACPI table |
0 |
The length of the ACPI table is not consistent with the table revision. |
|
0x20000 |
The I/O port in the Fixed Table |
0 |
0 |
The PM_TMR_BLK entry in the Fixed ACPI Description Table doesn't point to a working ACPI timer block. |
If a miscellaneous failure or incompatibility has occurred, the following parameters are used.
| Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Cause |
|---|---|---|---|---|
|
0x20000 |
The I/O port in the Fixed Table |
0 |
0 |
The PM_TMR_BLK entry in the Fixed ACPI Description Table does not point to a working ACPI timer block. |
If Parameter 1 equals 0x02, the ACPI BIOS could not process the resource list for the PCI root buses. In this case, Parameter 3 specifies the exact problem, and the remaining parameters have the following definitions.
| Parameter 2 | Parameter 3 | Parameter 4 | Cause |
|---|---|---|---|
|
The ACPI extension for the PCI bus |
0x0 |
A pointer to the QUERY_RESOURCES IRP |
ACPI cannot convert the BIOS' resource list into the proper format. This probably represents an error in the BIOS' list encoding procedure. |
|
The ACPI extension for the PCI bus |
0x1 |
A pointer to the QUERY_RESOURCE_REQUIREMENTS IRP |
ACPI cannot convert the BIOS' resource list into the proper format. This probably represents an error in the BIOS' list encoding procedure. |
|
The ACPI extension for the PCI bus |
0x2 |
0 |
ACPI found an empty resource list. |
|
The ACPI extension for the PCI bus |
0x3 |
A pointer to the PNP CRS descriptor |
ACPI could not find the current bus number in the CRS. |
|
The ACPI extension for the PCI bus |
A pointer to the resource list for PCI |
A pointer to the E820 memory table |
The list of resources that PCI claims to decode overlaps with the list of memory regions that the E820 BIOS interface reports. (This kind of conflict is never permitted.) |
If Parameter 1 equals 0x10, the ACPI BIOS could not determine the system-to-device-state mapping correctly. In this situation, Parameter 3 specifies the exact problem, and the remaining parameters have the following definitions.
| Parameter 2 | Parameter 3 | Parameter 4 | Cause |
|---|---|---|---|
|
The ACPI extension whose mapping is needed |
0x0 |
The DEVICE_POWER_STATE (this is "x+1") |
_PRx was mapped back to a non-supported S-state. |
|
The ACPI extension whose mapping is needed |
0x1 |
The SYSTEM_POWER_STATE that cannot be mapped |
ACPI cannot find a D-state to associate with the S-state. |
|
The ACPI extension whose mapping is needed |
0x2 |
The SYSTEM_POWER_STATE that cannot be mapped |
The device claims to be able to wake the system when the system is in this S-state, but the system does not actually support this S-state. |
If Parameter 1 equals 0x11, the system could not enter ACPI mode. In this situation, Parameter 2 specifies the exact problem, and the remaining parameters have the following definitions.
| Parameter 2 | Parameter 3 | Parameter 4 | Cause |
|---|---|---|---|
|
0x0 |
0 |
0 |
The system could not initialize the AML interpreter. |
|
0x1 |
0 |
0 |
The system could not find RSDT. |
|
0x2 |
0 |
0 |
The system could not allocate critical driver structures. |
|
0x3 |
0 |
0 |
The system could not load RSDT. |
|
0x4 |
0 |
0 |
The system could not load DDBs. |
|
0x5 |
0 |
0 |
The system cannot connect the Interrupt vector. |
|
0x6 |
0 |
0 |
SCI_EN never becomes set in PM1 Control Register. |
|
0x7 |
A pointer to the table that had a bad checksum |
Creator revision |
The table checksum is incorrect. |
|
0x8 |
A pointer to the table that ACPI failed to load |
Creator revision |
ACPI failed to load DDB. |
|
0x9 |
FADT version |
0 |
Unsupported firmware version. |
|
0xA |
0 |
0 |
The system could not find MADT. |
|
0xB |
0 |
0 |
The system could not find any valid Local SAPIC structures in the MADT. |
Cause
The value of Parameter 1 indicates the error.
Resolution
If you are debugging this error, use the !analyze -v extension. This extension displays all the relevant data (device extensions, nsobjects, or whatever is appropriate to the specific error).
If you are not performing debugging, this error indicates that you have to obtain a new BIOS. Contact your vendor or visit the internet to get a new BIOS.
If you cannot obtain an updated BIOS, or the latest BIOS is still not ACPI compliant, you can turn off ACPI mode during text-mode setup. To turn off ACPI mode, press the F7 key when you are prompted to install storage drivers. The system does not notify you that the F7 key was pressed, but it silently disables ACPI and enables you to continue your installation.
Remarks
A PCI routing table (_PRT) is the ACPI BIOS object that specifies how all the PCI devices are connected to the interrupt controllers. A computer with multiple PCI buses might have multiple _PRTs.
You can display a _PRT in the debugger by using the !acpikd.nsobj extension together with the address of the _PRT object as its argument.
Send comments about this topic to Microsoft
Build date: 4/9/2013
