Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Arm platforms implement PSCI standards (mandated by BSA spec) and rather than introducing the sleep control and status register could make use of the PSCI standard for putting CPU and platform to suspend state.

...

...

PSCI_CPU_SUSPEND API has a power_state parameter and some of the bits are vendor-specific and this is typically defined in the DT. How do we derive this for ACPI?

Linux commands to test ACPI suspend states

...

Suspend State

Wake Up event

Status

Notes

S2Idle

Lid

OK

S2Idle

RTC Alarm

OK

Linux kernel uses few ACPI GPE functions to determine if the device can wake up. They return wrong values for Arm64 implementation and had to be disabled during the testing.

S1

Lid

OK

S1

RTC Alarm

OK

S3

TF-A hack to wake up immediately after suspend

OK

This works only with single processor suspend, for SMP the wake up sequence crashes. The same behaviour is observed for DT as well.

Gaps in existing Linux implementation

  • Linux kernel uses a few ACPI GPE functions to determine if the device can wake up and set appropriate flags. GPE is not present in HW-reduced platforms.

  • Linux ACPI suspend does not have PSCI bindings