ACPI Debug Playbook

Symptom-driven ACPI debug guide connecting missing devices, driver binding issues, resource conflicts, EC failures, GPIO wake bugs, and power-resource problems.

3 min read
ACPI Advanced cover

ACPI debugging is easiest when you start from the symptom, not from the acronym.

Instead of asking “what is _STA?”, ask:

Why did the OS hide this device?

Instead of asking “what is _CRS?”, ask:

Why did the driver bind but fail to receive interrupts?

This playbook maps common symptoms to ACPI checkpoints.

Item Value Note
Device missing _STA / _HID / table loading Check whether the object exists and returns present/enabled.
Driver not binding _HID / _CID The OS driver may not recognize the ACPI ID.
Driver binds but device fails _CRS Check bus address, GPIO interrupt, MMIO, IRQ, and controller path.
Windows-only behavior _DSM / _OSI Vendor method or OS-specific branch may change feature exposure.
Battery/thermal/hotkey failure EC OperationRegion / Field / Notify Trace EC RAM offsets and SCI query methods.
Instant wake _PRW / GPIO / GPE Wake source may be enabled, inverted, or uncleared.
Resume-only failure _PS0 / _WAK / PowerResource Cold boot and resume power paths may differ.

Playbook 1: device is missing

acpidump + iasl

Find namespace object

Check _HID/_CID

Check _STA return value

Trace variables used by _STA

Check firmware generation policy

Most important question: does the OS receive a device that it is allowed to enumerate?

Playbook 2: driver binds, but hardware does nothing

Driver identity OK

Check _CRS

Compare bus/address/GPIO/IRQ with schematic

Check controller path exists

Check polarity/wake flags/resource conflict

Most important question: did firmware describe the same electrical connection that exists on the board?

Find failing method

Trace fields used by the method

Map fields to EC offsets

Check EC firmware map

Check EC readiness and SCI clearing

Most important question: is AML reading the same EC state that EC firmware actually provides?

Playbook 4: sleep/wake failure

Identify target state

Collect wake source

Inspect _PRW / GPIO / GPE

Trace _PSx / PowerResource

Compare cold boot vs resume sequence

Most important question: did the platform enter and leave the low-power state with all wake and power dependencies consistent?

Future Blog Ideas

  • How Windows Finds Your Hardware Using ACPI
  • Why Your Device Disappears from Device Manager
  • OperationRegion Explained Through Real EC Debugging
  • DSDT vs SSDT for Firmware Engineers
  • Understanding _DSM Through Thunderbolt Debugging
  • How Sleep and Resume Really Work
  • ACPI Debugging Playbook Every BIOS Engineer Should Know

Found this useful?

Save it or share it with someone learning firmware, BIOS/UEFI, and embedded systems.

Nội dung liên quan

Một số bài viết, ghi chú hoặc project có liên quan đến nội dung bạn vừa đọc.

Biến note thành bài viết hoàn chỉnh

Notes là nơi ghi nhanh khái niệm.