Windows ACPI Requirements

The requirements here have been mainly captured from https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/windows-acpi-design-guide-for-soc-platforms which list a set of ACPI features required to support Windows on SoC-based platforms with clamshell form factor.

Summary

The following table lists the set of ACPI features required to support Windows on SoC-based platforms.

Feature

Section of ACPI 5.0 specification

Notes

Feature

Section of ACPI 5.0 specification

Notes

System description tables

5.2.5

Root System Description Pointer (RSDP)

 

5.2.7, 5.2.8

Either of Root (RSDT) or Extended (XSDT) System Description Tables

 

5.2.9

Fixed ACPI Description Table (FADT)

 

5.2.12

Multiple APIC Description Table (MADT)

 

5.2.24

Generic Timer Description Table (GTDT)

 

5.2.6

Core System Resources Table (CSRT) Specification

 

5.2.6

Debug Port Table 2 (DBG2) Specification

 

5.2.11.1

Differentiated System Description Table (DSDT)

 

5.2.11.2

Secondary System Description Table (SSDT)

Device management

6.1

Device Identification Objects

 

6.2

Device Configuration Objects

GPIO

5.6.5.1

GPIO controller devices

 

5.6.5

GPIO-signaled ACPI events

 

6.4.3.8.1, 19.5.53, 19.5.54

GPIO resource descriptors and macros

 

5.5.2.4.4

GeneralPurposeIO OpRegions

Simple peripheral bus (SPB)

6.4.3.8.2, 19.5.55, 19.5.118, 19.5.134

SPB resource descriptors and macros

 

 

GenericSerialBus OpRegions

Device power management

3.3

 

 

7.1

Power Resources

 

7.2

Device Power Management Objects

ACPI-defined devices

9.0, 10

 

 

9.5

Control Method Power Button

 

9.4

Control Method Lid Device

 

10.2

Control Method Battery device

 

9.18

Control Method Time and Alarm device

 

11

Thermal Zones

Device-specific support

8.4

Processors

 

Appendix B

Displays

 

6.1.8, 9.13

USB

 

 

SD bus

 

 

Cameras

 

 

HID-over-I2C devices

 

3.2.1, 4.8.2.2.1.2, 4.8.2.2.1.3

Buttons

 

 

Dock and convertible PC sensors

ACPI Model

Windows supports the hardware-reduced ACPI platform and ACPI hardware specification is not required for SoC-based platforms.

Event Model

GPIO interrupts are used to signal the events. A number of inbox drivers rely on this service to provide support for ACPI-defined devices, such as Control Method Power Button, LID device, Control Method Battery, Thermal Zone, and so on

ACPI Tables

Windows requires or supports the following ACPI Tables

  • Root System Description Pointer (RSDP)

  • Root System Description Table (RSDT)

  • Fixed ACPI Description Table (FADT)

  • Debug Port Table 2 (DBG2)

  • Differentiated System Description Table (DSDT)

  • System description tables (SSDT)

  • Multiple APIC Description Table (MADT)

  • Generic Timer Description Table (GTDT)

  • Core System Resources Table (CSRT).

  • Windows SMM Security Mitigations Table (WSMT)

  • iSCSI Boot Firmware Table (iBFT)

Device identification

Windows uses the following methods for device identification and enumeration.

_HID, _CID, _SUB, _HRV, _CLS, _DSM, _ADR, _UID

https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/device-management-namespace-objects

Power Management

ACPI-defined sleeping states (S1 through S4) are not used on Windows SoC platforms and Windows focus on device level power management. Windows supports the D0 to D3 ( including D3cold) power states.

For devices integrated with SoC, Windows Power Framework (PoFx) does the power management. An SoC-specific power engine plug-in (PEP) is required by the PoFx.

For peripheral devices that are not integrated into the SoC, Windows uses ACPI Device Power Management.

For some devices, PEP alone or in combination with ACPI device power management can be used.

Power Engine Plugin (PEP)

The Power Engine Plugin (PEP) provides interfaces for platform power management including device power management (DPM), processor power management (PPM), and ACPI runtime methods.

PEP allows implementing ACPI runtime methods natively via a Windows driver rather than firmware (AML)

ACPI Defined Devices

  • Lid Device

  • Control method battery device

  • Thermal zones

  • Control method time and alarm device

Windows ACPI drive

https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/acpi-driver