=== Suspend/Resume Improvement

Links: +
link:https://obiw.ac/s0ix/[Blog] URL: link:https://obiw.ac/s0ix/[] +
link:https://youtu.be/mBxj_EkAzV0[FOSDEM talk on s2idle/S0ix] URL: https://youtu.be/mBxj_EkAzV0[] +
link:https://github.com/obiwac/freebsd-s0ix/tree/everything[Working Repo] URL: link:https://github.com/obiwac/freebsd-s0ix/tree/everything[] +
link:https://reviews.freebsd.org/D48721[Tip of the s2idle/S0ix + AMD SMU stack] URL: https://reviews.freebsd.org/D48721[] +
link:https://reviews.freebsd.org/D49453[USB4 suspend stack] URL: https://reviews.freebsd.org/D49453[]

Contact: obiwac <obiwac@FreeBSD.org>

Suspend-to-idle and support for S0ix sleep is in the process of being added to FreeBSD.

This will allow modern Intel and AMD laptops (e.g. AMD and newer Intel Framework laptops), some of which do not support ACPI S3 sleep, to enter low power states to increase battery life.

The USB4 driver (which was a dependency to S0i3 entry) has been updated to allow for the sleep routines, and all CPUs are now entering C3 during s2idle.
Scheduler work is needed to ensure CPUs stay in C3 and do not get work scheduled to them, but a prototype solution exists and is working.
This means that S0i3 can now be entered on the Framework 13 AMD Ryzen 7040 series laptops, albeit only on my working 14.1 branch.
This does not work on -CURRENT yet.

The amdgpio driver (for the AMD GPIO controller) has been extended to service all GPIO interrupts and suspend the controller, as that was potentially a blocker for the CPU to enter S0i3.
Nothing is being done with these GPIO interrupts at the moment as FreeBSD does not have the infrastructure for device drivers to register these interrupts on x86 yet.

The SMU idlemask is also now being exported as a sysctl now (dev.amdsmu.0.idlemask), the value of which is not documented and is mostly to help AMD debug issues with S0i3 entry on FreeBSD on their side.

A pre-built image is being built to aid in easily testing S0i3 entry on machines.

With respect to the links, the blog post entry is outdated.
A talk was given about this at BSDCan 2025 too, but it has yet to be uploaded as a standalone video; it will be included in the next status report.

Sponsor: The FreeBSD Foundation
