Fix it now
0x000000A5 means the ACPI BIOS is not fully compliant with the ACPI specification, and Microsoft’s published resolution is short: obtain a new BIOS from the vendor. Parameter 1 says which incompatibility was found, and several of its values point at firmware tables rather than at anything you can change in setup.
msinfo32
- Note the current firmware version from System Information, or from the setup screen on a machine that will not start.
- Get parameter 1 from the BugCheck event in the System log or from the dump. 0x11 means the system could not enter ACPI mode; 0x10009 means the Fixed ACPI Description Table could not be located; 0x1000A means the Root System Description Pointer or Extended System Description Table could not be located.
- Flash the current firmware from the machine or board vendor’s own support page for that exact model. This is the documented resolution, not a last resort.
- If the firmware was recently reset or the machine has sat unpowered for a long time, load setup defaults, set the date and time, and check every storage and power option before booting.
- If the code is 0x000000E0 rather than 0x000000A5, stop and go to the hardware vendor – see the note below.
0x000000E0 is not a firmware setting problem. Microsoft states plainly that the BIOS has reported a component so faulty that Windows cannot operate, that the parameters are issued by the BIOS and can only be interpreted by the hardware vendor, and that Microsoft cannot address the error.
If the machine starts on current firmware at defaults, stop here. The next section covers what each code in this group actually reports.
Why it happens
ACPI is the contract between firmware and operating system covering power states, device enumeration, interrupt routing and thermal management. The firmware publishes a set of tables describing the platform, and Windows reads them during startup. If those tables are missing, malformed or describe something Windows cannot work with, there is no recovery – the operating system has no other way to find out what the machine is.
0x000000A5 is that rejection, and parameter 1 is the only thing that turns it into a specific action. 0x01 means ACPI could not find the System Control Interrupt vector in the resources handed to it. 0x02 means the ACPI BIOS could not process the resource list for the PCI root buses. 0x03 means a control method failed while device extensions were being created. 0x0D means a required method or object was missing from the namespace. 0x11 means the system could not enter ACPI mode. 0x10009 means the Fixed ACPI Description Table could not be located, and 0x1000A the Root System Description Pointer or Extended System Description Table.
Microsoft’s resolution is unusually direct for a bug check: if you are not debugging, this error indicates that you have to obtain a new BIOS. There is a published fallback – turning ACPI mode off by pressing F7 when text-mode setup prompts for storage drivers – but that belongs to an installer that current Windows does not have, so on a modern machine the firmware update is the answer rather than the first option.
The rest of the group is thinner than it looks. 0x0000005C says the hardware abstraction layer initialisation failed, and nothing else – no parameters, no cause, no resolution. 0x00000031 says system initialisation failed at a very early stage, with no parameters, and Microsoft states a debugger is required to analyse it. 0x00000079 does have a real parameter table and a specific cause: the HAL revision level or configuration does not match the kernel or the computer, most often because someone manually updated Ntoskrnl.exe or Hal.dll, or because a multiprocessor HAL has ended up paired with a single-processor kernel.
Firmware that predates this Windows build
You have this one if 0x000000A5 on a machine that has been upgraded to a newer Windows version, or one whose firmware has never been updated.
- Take the current firmware from the machine or board vendor’s support page for the exact model.
- Apply it with the vendor’s own tool, on mains power, without interrupting it.
- Load setup defaults afterwards and set the date and time before booting Windows.
- If the current firmware is already installed and the code persists, the vendor is the next step – the tables are theirs to fix.
Firmware settings lost or reset
You have this one if The machine has been unpowered for a long time, the clock is wrong, or somebody cleared the configuration.
- Record what the settings were, if the machine can still be read, before changing anything.
- Load setup defaults, then set the storage mode, boot mode and date and time deliberately rather than accepting whatever the default is.
- A configuration that will not persist across power cycles points at the coin cell. Replacing it is cheap and stops the settings vanishing again.
- Confirm the disk is detected in setup after each change.
A flat coin cell is a real cause of settings not persisting. It is not published as a cause of 0xA5 itself, so treat it as the reason your fix keeps undoing rather than as the fault.
A mismatched HAL or kernel
You have this one if 0x00000079, usually after someone replaced a system file by hand, or on an image moved between very different machines.
- Read parameter 1: 0x1 is mismatched processor control block release levels, 0x2 mismatched build types, 0x3 mismatched loader and HAL versions.
- On 0x2, parameter 2 and 3 are the build types – 0 multiprocessor free, 1 multiprocessor checked, 2 single-processor free, 3 single-processor checked – which shows the mismatch directly.
- Restore the correct file from the original installation source. Microsoft’s published procedure uses the Recovery Console from an older Windows, so on a current build the practical equivalent is repairing the installation or restoring from backup.
- Where an image was cloned between machines, prepare the source with
sysprep /generalizebefore capture instead.
The firmware is reporting a faulty component
You have this one if 0x000000E0. Microsoft’s own words are that one of your computer components is faulty.
- Run the diagnostic tool the machine came with, or the vendor’s downloadable diagnostics.
- Contact the system vendor and report the error. The parameters are issued by the BIOS and only they can interpret them.
- Do not spend time on firmware settings or on reinstalling Windows. Microsoft states it cannot address this error.
- Where the machine is under warranty or contract, this code is the evidence to open the case with.
Full reference
0x000000A5 parameter 1, the values you are likely to see
| Value | What ACPI reported |
|---|---|
0x01 |
ACPI cannot find the System Control Interrupt vector in the resources handed to it at start |
0x02 |
The ACPI BIOS could not process the resource list for the PCI root buses |
0x03 |
A control method failed while device extensions were being created for the ACPI namespace |
0x0D |
A required method or object could not be found in the namespace |
0x11 |
The system could not enter ACPI mode |
0x10009 |
The Fixed ACPI Description Table could not be located |
0x1000A |
The Root System Description Pointer or Extended System Description Table could not be located |
What each code in this group actually publishes
| Code | Published meaning | Documented resolution |
|---|---|---|
0x000000A5 |
The ACPI BIOS is not fully compliant with the ACPI specification | Obtain a new BIOS from the vendor |
0x0000005C |
HAL initialisation failed | None published |
0x00000079 |
The HAL revision or configuration does not match the kernel or the computer | Restore the correct HAL or kernel file from the original source |
0x00000031 |
System initialisation failed at a very early stage | A debugger is required to analyse it |
0x000000E0 |
The BIOS reported a component so faulty that Windows cannot operate | Vendor diagnostics, then the vendor. Microsoft cannot address it |
0x00000079 in more detail
MISMATCHED_HAL is one of the few codes in this family with a fully published parameter table. Parameter 1 of 0x1 gives the major processor control block level of Ntoskrnl.exe in parameter 2 and of Hal.dll in parameter 3, so the mismatch is visible directly. Parameter 1 of 0x2 gives the build types of the same two files. Parameter 1 of 0x3 gives the size and version of the loader parameter extension, meaning the loader and the HAL disagree. Microsoft’s cause note is that this often happens when someone manually updates one of those two files, and that a machine can end up with a multiprocessor HAL and a single-processor kernel or the reverse.
Where firmware updates go wrong
- Record the current version first. Some vendors do not publish older packages, and a rollback may not be possible.
- Use the vendor’s own tool for that exact model. Firmware from a similar model is not interchangeable.
- Run it on mains power, with the battery fitted on a laptop, and do not interrupt it.
- Load setup defaults afterwards, then reapply the settings the machine needs – storage mode above all.
- Set the date and time before booting Windows. A wrong clock produces its own set of problems that will look unrelated.
When the machine will not start at all
- Check whether the disk is detected in firmware setup. If it is not, this is a different problem from an ACPI rejection.
- Boot the recovery environment and try System Restore, which undoes a driver or update change without touching firmware.
- Where the firmware update itself failed, most boards have a recovery mode – a specific key combination or a file on a USB stick – documented by the vendor.
- Remove add-in cards and non-essential devices and try again with the minimum viable configuration.
- If the code is 0x00000031 or 0x0000005C, there is very little published to work from, so treat the dump and a vendor case as the route rather than trial and error.
Every code this article covers
| Code | What it points at | Source |
|---|---|---|
0x000000A5 |
ACPI_BIOS_ERROR: the ACPI BIOS of the computer is not fully compliant with the ACPI specification. Parameter 1 names the incompatibility, from a missing SCI vector through namespace and resource failures to a missing FADT or RSDP/XSDT. The published resolution is to obtain a new BIOS | Microsoft Learn |
0x0000005C |
HAL_INITIALIZATION_FAILED: the hardware abstraction layer initialisation failed. Microsoft publishes no parameters, cause or resolution for this code | Microsoft Learn |
0x00000079 |
MISMATCHED_HAL: the HAL revision level or configuration does not match that of the kernel or the computer. Parameter 1 is 0x1 mismatched PRCB release levels, 0x2 mismatched build types, 0x3 mismatched loader and HAL versions. Often caused by manually updating Ntoskrnl.exe or Hal.dll, or by pairing a multiprocessor HAL with a single-processor kernel | Microsoft Learn |
0x00000031 |
PHASE0_INITIALIZATION_FAILED: system initialisation failed at a very early stage. No parameters are published, and Microsoft states a debugger is required to analyse it | Microsoft Learn |
0x000000E0 |
ACPI_BIOS_FATAL_ERROR: one of the computer’s components is faulty. The BIOS has reported a component so faulty that Windows cannot operate; the parameters are issued by the BIOS and can only be interpreted by the hardware vendor, and Microsoft states it cannot address this error | Microsoft Learn |
Confirm the fix worked
- System Information reports the firmware version you intended to install.
- The machine completes three cold starts without a stop code.
- Device Manager shows no devices with an exclamation point, particularly under System devices.
- Sleep and resume work, which exercises the ACPI path that was rejected.
- The clock holds its time across a full power-off, if a flat coin cell was part of the story.
Questions people ask about this
Can I fix 0x000000A5 in firmware setup?
Sometimes, if the machine simply lost its configuration. But Microsoft’s published resolution is to obtain a new BIOS from the vendor, and several parameter 1 values – a missing FADT, a missing RSDP or XSDT – describe tables the firmware is not publishing at all, which no setup option changes.
What about the F7 trick to disable ACPI?
It is published, but it belongs to text-mode setup on an older Windows installer that current versions do not have. On a modern machine, treat the firmware update as the route.
Is 0x000000E0 the same as 0x000000A5?
No, and this is the one to get right. 0xA5 is a compliance problem in the firmware’s tables. 0xE0 is the BIOS reporting that a component is so faulty Windows cannot run, with parameters only the hardware vendor can interpret, and Microsoft says outright that it cannot address the error.
Will reinstalling Windows help?
Not for 0xA5 or 0xE0. The first is firmware and the second is hardware. It might help 0x00000079, because that is a mismatch between installed system files, but restoring the correct file or the machine from backup is the smaller intervention.
The machine only fails after a firmware update. What now?
Load setup defaults and reapply the settings deliberately, particularly the storage mode – a firmware update frequently resets it. If that does not help, most vendors publish a firmware recovery procedure and, where the update introduced the fault, the previous package.
