Table of contents
TOC
Collapse the table of content
Expand the table of content

ACPI firmware implementation requirements

Last Updated: 1/3/2017

The checklists in this article contain requirements that the ACPI platform firmware must meet to properly support the power and battery subsystem. For each requirement in a checklist, the column marked "Applies to S3/S4" indicates whether the requirement applies to PCs that implement the traditional ACPI S3 and S4 power states. The column marked "Applies to CS" indicates whether the requirement applies to PCs that implement the modern standby power model, which is supported starting with Windows 8.

Power supply checklist

RequirementApplies to S3/S4Applies to CS

Power Source device object is present in the ACPI namespace.

  • Device() object for an AC adapter/Power Source is present in the ACPI namespace.

Yes

Yes

Power source device provides the following control methods and objects:

  • Hardware ID (_HID) with a value of "ACPI0003".

Yes

Yes

  • Power Source (_PSR) control method to report whether the power source is currently online (AC power) or offline (battery power). All input power sources for the system must be multiplexed through this _PSR method. For example, _PSR must indicate that the power source is online if the system is powered through a DC barrel connector or a separate dock connector. Do not use multiple ACPI Power Source Devices.

Yes

Yes

Battery checklist

System designers should make sure that they have completed the items in the following table for each battery present in the system. For systems that have multiple batteries, the first battery in the namespace should be the primary battery for the system, for debugging purposes.

RequirementApplies to S3/S4Applies to CS

A Device() object for each battery device in the ACPI namespace.

  • Device() object for each battery is present in the ACPI namespace.

Yes

Yes

Each battery device provides the following control methods and objects:

  • _HID with a value of "PNP0C0A".

Yes

Yes

  • General Status (_STA) to report to Windows whether the battery is present in a system in which the battery can be removed or the battery is located in a portable dock.

Yes

Yes

  • Battery Information Extended (_BIX) to report battery static information, which includes last full charge capacity, design capacity, and cycle count.

Yes

Yes

  • Battery Status (_BST) to report the current battery status, including remaining capacity, rate of drain and charging state.

Yes

Yes

  • Battery Trip Point (_BTP) to enable an event-driven battery status model to reduce periodic work for polling. _BTP enables Windows to specify a threshold of remaining charge capacity at which the platform should issue a Notify(0x80) command on the battery device to notify Windows that it needs to update its battery status information.

Yes

Yes

  • (Optional) Slot Unit Number (_SUN) to indicate the order in which the battery should appear in the UI.

Yes

Yes

The _BIX method must support the following fields and constraints as described in battery static information section:

  • The Revision field must be set to 0x0.

Yes

Yes

  • The Power Unit field must be set of 0x0.

Yes

Yes

  • The Design Capacity and Last Full Charge Capacity values must be set to accurate values from the battery and charging subsystem and not set equal to 0xFFFFFFFF or 0x00000000.

Yes

Yes

  • The Battery Technology field must be set to 0x1.

Yes

Yes

  • The Design Voltage field must be set accurately and not set equal to 0x00000000 or 0xFFFFFFFF.

Yes

Yes

  • The Design Capacity of Low must be set to the minimum value required to Hibernate or Shutdown the system from a fully on state.

Yes

Yes

  • The Battery Capacity Granularity 1 and Battery Capacity Granularity 2 fields must be set to a value no larger than 1 percent of the battery design capacity.

Yes

Yes

  • The Cycle Count field must be accurately filled in from the battery subsystem.

Yes

Yes

  • The Measurement Accuracy field must be set to 80,000 or better.

Yes

Yes

  • The Model Number and Serial Number fields must not be set to NULL.

Yes

Yes

  • When information in _BIX, including last full charge capacity, design capacity, and cycle count changes, the platform will issue an ACPI Notify(0x81) command on the battery device.

Yes

Yes

The _BST method must report real-time battery status.

  • All information returned by the _BST method must be obtained dynamically from the underlying power and battery charging subsystem.

Yes

Yes

  • Data accuracy must be within the value of Measurement Accuracy as reported in the _BIX object.

Yes

Yes

Support for ACPI Battery Trip Points

  • A _BTP method is provided that allows Windows to specify a remaining charge capacity threshold at which the platform will issue an ACPI Notify(0x80) command on the battery device.

Yes

Yes

  • The battery device issues an ACPI Notify command when the battery charge reaches the critical level.

Yes

Yes

  • When the battery charge level reaches the value specified in _BIX.DesignCapacityofLow, the platform must generate a Notify(0x80) command on the Control Method Battery device.

Yes

Yes

Implement Device Specific Methods as appropriate

  • Implement the Device Specific Method (_DSM) under each battery device to indicate if the battery is user-serviceable.

Yes

Yes

  • Implement the _DSM method if a periodic watchdog reset is required during charging and Windows will guarantee execution of the _BST method within the polling window for each period.

Yes

Yes

  • Implement the _DSM method if the platform's thermal model requires control over the battery charging rate.

Yes

Yes

© 2017 Microsoft