| What: /dev/amdpmf_interface |
| Date: June 2026 |
| KernelVersion: 7.2 |
| Contact: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> |
| Description: |
| The AMD Platform Management Framework (PMF) util layer exposes a |
| minimal user-space interface via a character device for feature |
| discovery and metrics monitoring. |
| |
| When CONFIG_AMD_PMF_UTIL_SUPPORT is enabled, the driver creates |
| a character device: |
| |
| ====================== |
| /dev/amdpmf_interface |
| ====================== |
| |
| The interface supports a single ioctl: |
| |
| ============================ ======================================= |
| IOCTL Usage |
| IOCTL_AMD_PMF_POPULATE_DATA User passes a struct amd_pmf_info with |
| the size field set to sizeof(struct |
| amd_pmf_info). The driver returns all |
| available metrics and feature status |
| in the structure. |
| ============================ ======================================= |
| |
| struct amd_pmf_info layout: |
| |
| ======================= ========== ================================ |
| Field Type Description |
| size __u64 Structure size for versioning |
| features_supported __u32 Bitmask of supported features |
| platform_type __u32 Platform form factor orientation |
| power_source __u32 AC/DC power source |
| laptop_placement __u32 Device placement state |
| lid_state __u32 Lid open/closed status |
| user_presence __u32 User presence detection |
| slider_position __u32 Current power slider position |
| skin_temp __s32 Skin temperature (centidegrees) |
| gfx_busy __u32 Graphics workload percentage |
| ambient_light __s32 Ambient light sensor reading |
| avg_c0_residency __u32 Average C0 state residency |
| max_c0_residency __u32 Maximum C0 state residency |
| socket_power __u32 Socket power consumption |
| bios_input[10] __u32 Custom BIOS input parameters |
| bios_output[10] __u32 Custom BIOS output parameters |
| ======================= ========== ================================ |
| |
| Feature Support Flags (features_supported bitmask): |
| |
| ===================================== ==== ============================= |
| Flag Bit Description |
| AMD_PMF_FEAT_AUTO_MODE 0 Auto Mode feature support |
| AMD_PMF_FEAT_STATIC_POWER_SLIDER 1 Static Power Slider support |
| AMD_PMF_FEAT_POLICY_BUILDER 2 Policy Builder (Smart PC) |
| AMD_PMF_FEAT_DYNAMIC_POWER_SLIDER_AC 3 Dynamic slider on AC |
| AMD_PMF_FEAT_DYNAMIC_POWER_SLIDER_DC 4 Dynamic slider on DC |
| ===================================== ==== ============================= |
| |
| Return codes: |
| |
| ============= ============================================================ |
| Return code Description |
| 0 Success |
| EINVAL Invalid size or parameter |
| EFAULT copy_to_user/copy_from_user failures |
| ENODEV PMF device not available |
| ENOTTY Unknown ioctl command |
| ============= ============================================================ |
| |
| User-space tools integrating with AMD PMF to discover capabilities and |
| monitor real-time metrics for thermal and power management validation. |