Skip to content

Est. 2011·Microsoft Partner 7033487·Delivery under 3 min·Support 7 days a week

Your vault is empty.

Free Fix 0x000000A5

ACPI_BIOS_ERROR 0x000000A5 and HAL_INITIALIZATION_FAILED 0x0000005C

12 min read Updated October 5, 2026 Windows Crashes & Boot Recovery

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.

Run this on a machine that still starts, to record the current BIOS version and date before you change it

msinfo32
  1. Note the current firmware version from System Information, or from the setup screen on a machine that will not start.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

  1. Take the current firmware from the machine or board vendor’s support page for the exact model.
  2. Apply it with the vendor’s own tool, on mains power, without interrupting it.
  3. Load setup defaults afterwards and set the date and time before booting Windows.
  4. 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.

  1. Record what the settings were, if the machine can still be read, before changing anything.
  2. Load setup defaults, then set the storage mode, boot mode and date and time deliberately rather than accepting whatever the default is.
  3. A configuration that will not persist across power cycles points at the coin cell. Replacing it is cheap and stops the settings vanishing again.
  4. 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.

  1. Read parameter 1: 0x1 is mismatched processor control block release levels, 0x2 mismatched build types, 0x3 mismatched loader and HAL versions.
  2. 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.
  3. 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.
  4. Where an image was cloned between machines, prepare the source with sysprep /generalize before 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.

  1. Run the diagnostic tool the machine came with, or the vendor’s downloadable diagnostics.
  2. Contact the system vendor and report the error. The parameters are issued by the BIOS and only they can interpret them.
  3. Do not spend time on firmware settings or on reinstalling Windows. Microsoft states it cannot address this error.
  4. 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

  1. Record the current version first. Some vendors do not publish older packages, and a rollback may not be possible.
  2. Use the vendor’s own tool for that exact model. Firmware from a similar model is not interchangeable.
  3. Run it on mains power, with the battery fitted on a laptop, and do not interrupt it.
  4. Load setup defaults afterwards, then reapply the settings the machine needs – storage mode above all.
  5. 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

  1. System Information reports the firmware version you intended to install.
  2. The machine completes three cold starts without a stop code.
  3. Device Manager shows no devices with an exclamation point, particularly under System devices.
  4. Sleep and resume work, which exercises the ACPI path that was rejected.
  5. 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.

Related error codes

Was this article helpful?

Your feedback helps us improve our documentation.

Related articles

Free Fix Windows RE update fails with 0x80070643 – recovery partition too small License Error ELAM_DRIVER_DETECTED_FATAL_ERROR 0x00000178 and security subsystem crashes Free Fix ILLEGAL_IOMMU_PAGE_FAULT 0x00000158 on Hyper-V hosts using DDA passthrough Free Fix MANUALLY_INITIATED_CRASH 0x000000E2 and missing memory dump files
← Back to Knowledge Base