Page MenuHomeFreeBSD

amdsmu(4): Add manpage
ClosedPublic

Authored by obiwac on Sat, May 30, 6:12 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Jun 11, 9:47 PM
Unknown Object (File)
Wed, Jun 10, 10:38 AM
Unknown Object (File)
Wed, Jun 10, 7:54 AM
Unknown Object (File)
Tue, Jun 9, 8:47 AM
Unknown Object (File)
Tue, Jun 9, 6:22 AM
Unknown Object (File)
Sun, Jun 7, 3:48 PM
Unknown Object (File)
Sat, Jun 6, 9:07 PM
Unknown Object (File)
Fri, Jun 5, 10:05 PM
Subscribers

Details

Summary

Sponsored by: The FreeBSD Foundation

Test Plan
AMDSMU(4)               FreeBSD Kernel Interfaces Manual               AMDSMU(4)

NAME
     amdsmu – device driver for the AMD System Management Unit

SYNOPSIS
     To compile this driver into the kernel, place the following line in your
     kernel configuration file:

           device amdsmu

     Alternatively, to load the driver as a module at boot time, place the
     following line in rc.conf(5):

           kld_list="amdsmu"

DESCRIPTION
     The amdsmu driver provides support for the System Management Unit (SMU) for
     certain AMD mobile processors.  The SMU is a firmware component responsible
     for managing system power states, and in particular for coordinating entry
     into and exit from the S0ix suspend-to-idle sleep states.

     The driver communicates with the SMU over a register-based mailbox
     interface to query firmware version information, retrieve power management
     metrics, and hint to the SMU when the system is entering or leaving sleep.
     The driver registers ACPI suspend and resume event handlers to send the
     sleep hint to the SMU and refresh metrics after each sleep cycle.

     The following AMD processors are supported:

     •   Cezanne
     •   Rembrandt
     •   Phoenix
     •   Krackan Point

SYSCTL VARIABLES
     The driver exposes information through the following sysctl(8) variables
     under the dev.amdsmu.%d tree.

   Firmware version
     dev.amdsmu.%d.program
             SMU program number.

     dev.amdsmu.%d.version_major
             SMU firmware major version number.

     dev.amdsmu.%d.version_minor
             SMU firmware minor version number.

     dev.amdsmu.%d.version_revision
             SMU firmware revision number.

   Power management metrics
     The following variables are located under dev.amdsmu.%d.metrics and reflect
     measurements from the most recent sleep cycle.  Time values are in
     microseconds.

     dev.amdsmu.%d.metrics.table_version
             Version of the SMU metrics table reported by the firmware.

     dev.amdsmu.%d.metrics.hint_count
             Number of times the sleep hint has been sent to the SMU.
             Incremented each time the system enters suspend-to-idle.

     dev.amdsmu.%d.metrics.s0i3_last_entry_status
             Set to 1 if the last S0i3 entry was successful, 0 otherwise.
             Useful for diagnosing failed S0i3 transitions.

     dev.amdsmu.%d.metrics.time_last_in_s0i2
             Time spent in S0i2 during the last sleep cycle.  This is not
             relevant most of the time.

     dev.amdsmu.%d.metrics.time_last_entering_s0i3
             Time spent transitioning into S0i3 during the last sleep cycle.

     dev.amdsmu.%d.metrics.total_time_entering_s0i3
             Total cumulative time spent transitioning into S0i3 across all
             sleep cycles.

     dev.amdsmu.%d.metrics.time_last_resuming
             Time spent resuming from the last sleep cycle.

     dev.amdsmu.%d.metrics.total_time_resuming
             Total cumulative time spent resuming from sleep.

     dev.amdsmu.%d.metrics.time_last_in_s0i3
             Time spent in S0i3 during the last sleep cycle.

     dev.amdsmu.%d.metrics.total_time_in_s0i3
             Total cumulative time spent in S0i3 across all sleep cycles.

     dev.amdsmu.%d.metrics.time_last_in_sw_drips
             Time the system spent awake (i.e., not in S0i3) during the last
             sleep cycle.  The term "SW DRIPS" is a bit of a misnomer.

     dev.amdsmu.%d.metrics.total_time_in_sw_drips
             Total cumulative time the system has spent awake during sleep
             cycles.

   IP blocks
     Each hardware IP block that the SMU tracks is exposed under
     dev.amdsmu.%d.ip_blocks.<name>, where <name> is one of DISPLAY, CPU, GFX,
     VDD, ACP, VCN, ISP, NBIO, DF, LAPIC, USB3_0 through USB3_4, USB4_0, USB4_1,
     MPM, JPEG, IPU, UMSCH, or VPE (availability depends on the processor
     model).  Each IP block node contains the following variables:

     dev.amdsmu.%d.ip_blocks.<name>.active
             Boolean indicating whether this IP block is active i.e., whether it
             could potentially constrain S0i3 entry.

     dev.amdsmu.%d.ip_blocks.<name>.last_time
             Time in microseconds that this IP block spent active (and thus
             blocking S0i3 entry) during the last sleep cycle.  If this value
             equals the value of dev.amdsmu.%d.metrics.time_last_in_sw_drips,
             then this IP block was preventing entry into S0i3 during the last
             cycle.

   Idlemask
     dev.amdsmu.%d.idlemask
             Raw idlemask value read from the SMU.  This is an undocumented
             register intended to assist AMD in debugging power management
             issues.  Its interpretation is hardware-specific and not defined by
             any public specification.

SEE ALSO
     acpi(4), amdsmn(4), amdtemp(4), sysctl(8)

HISTORY
     The amdsmu driver first appeared in FreeBSD 15.0.

AUTHORS
     Aymeric Wibo <obiwac@FreeBSD.org>

     Development was sponsored by the
     FreeBSD Foundation.

BUGS
     The dev.amdsmu.%d.ip_blocks.USB4_0.last_time value typically contains
     garbage and should not be relied upon.

     USB4 blocking S0i3 entry appears to be reported through the USB3_0 through
     USB3_4 IP block metrics rather than through the dedicated USB4 blocks.

FreeBSD 16.0-CURRENT              May 30, 2026                         AMDSMU(4)

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision was not accepted when it landed; it landed in state Needs Review.Thu, Jun 11, 8:45 PM
Closed by commit rG4733b4dca551: amdsmu(4): Add manpage (authored by obiwac). · Explain Why
This revision was automatically updated to reflect the committed changes.

Very nice. A few suggestions.

share/man/man4/amdsmu.4
174

Necessary to avoid breaking the flow with a carriage return on multiple authors.

176–184

That's a lot of throughs... This makes it confusing (although grammatically correct IMHO). Maybe reformulate?

Does this mean that we have suspend support now for these platforms?

Does this mean that we have suspend support now for these platforms?

unfortunately not, no. SMU support is just one part of full s0ix suppott

Does this mean that we have suspend support now for these platforms?

unfortunately not, no. SMU support is just one part of full s0ix suppott

okay, thanks for the update!