Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
91655d5
kernel.h: Move ARRAY_SIZE() to a separate header
alejandro-colomar Oct 3, 2023
7e837af
batman-adv: Switch to linux/array_size.h
ecsv Nov 13, 2023
d0c3aaa
platform/x86/intel/tpmi: Add support for performance limit reasons
May 27, 2024
4eab00e
platform/x86/intel/tpmi: Add API to get debugfs root
May 27, 2024
b432295
platform/x86/intel: TPMI domain id and CPU mapping
spandruvada May 28, 2024
5cff790
platform/x86/intel/tpmi: Add new auxiliary driver for performance limits
May 27, 2024
dbbc28f
platform/x86/intel/tpmi/plr: Add support for the plr mailbox
May 27, 2024
ccba5fc
platform/x86/intel/tpmi/plr: Fix output in plr_print_bits()
Jul 15, 2024
c80c81f
platform/x86/intel: power-domains: Add Clearwater Forest support
spandruvada Jan 3, 2025
18b5ff6
platform/x86/intel: power-domains: Use topology_logical_package_id() …
darcari Aug 29, 2025
391d230
config: enable CONFIG_INTEL_PLR_TPMI
zhang-rui Dec 4, 2025
719e704
platform/x86/intel-uncore-freq: Do not present separate package-die d…
spandruvada Aug 20, 2024
800ee6f
platform/x86/intel-uncore-freq: Add support for efficiency latency co…
Aug 28, 2024
f2baaaf
platform/x86/intel-uncore-freq: Add efficiency latency control to sys…
Aug 28, 2024
dc456ea
platform/x86/intel-uncore-freq: Add attributes to show agent types
spandruvada May 8, 2025
27567e6
Documentation: admin-guide: pm: Add documentation for agent_types
spandruvada May 8, 2025
a145a21
platform/x86/intel: power-domains: Add interface to get Linux die ID
spandruvada May 8, 2025
187f0c0
platform/x86/intel-uncore-freq: Add attributes to show die_id
spandruvada May 8, 2025
b3cf659
Documentation: admin-guide: pm: Add documentation for die_id
spandruvada May 8, 2025
e31deba
platform/x86/intel-uncore-freq: avoid non-literal format string
arndb Jun 10, 2025
2836038
platform/x86/intel-uncore-freq: Fix warning in partitioned system
spandruvada Aug 19, 2025
a231de7
platform/x86/intel-uncore-freq: Present unique domain ID per package
spandruvada Sep 3, 2025
c1be6f5
platform/x86/intel: power-domains: Fix error code in tpmi_init()
Jun 6, 2025
bab75bb
platform/x86: intel-uncore-freq: fix all header kernel-doc warnings
rddunlap Nov 11, 2025
55146ce
platform/x86/intel/vsec.h: Move to include/linux
debox1 Jul 25, 2024
1b5326c
platform/x86/intel/vsec: Add PMT read callbacks
debox1 Jul 25, 2024
e84c399
platform/x86/intel/pmt: Use PMT callbacks
debox1 Jul 25, 2024
f537c9a
MAINTAINERS: Add link to documentation of Intel PMT ABI
debox1 Jul 3, 2025
e991a1a
platform/x86/intel/vsec: Add private data for per-device data
debox1 Jul 3, 2025
4fabcda
platform/x86/intel/vsec: Create wrapper to walk PCI config space
debox1 Jul 3, 2025
22bf72c
platform/x86/intel/vsec: Add device links to enforce dependencies
debox1 Jul 3, 2025
c52584d
platform/x86/intel/vsec: Skip absent features during initialization
debox1 Jul 3, 2025
ed95bc7
platform/x86/intel/vsec: Skip driverless features
debox1 Jul 3, 2025
2f090e0
platform/x86/intel/vsec: Add new Discovery feature
debox1 Jul 3, 2025
fcb9190
sysfs: Fix crash on empty group attributes array
djbw Feb 22, 2024
1a47f40
platform/x86/intel/pmt: Add PMT Discovery driver
debox1 Jul 3, 2025
5b038ba
docs: Add ABI documentation for intel_pmt feature directories
debox1 Jul 3, 2025
4d1c4dd
platform/x86/intel/tpmi: Relocate platform info to intel_vsec.h
debox1 Jul 3, 2025
8027c25
platform/x86/intel/vsec: Set OOBMSM to CPU mapping
debox1 Jul 3, 2025
ab3c2b7
platform/x86/intel/tpmi: Get OOBMSM CPU mapping from TPMI
debox1 Jul 3, 2025
ef3c4ee
platform/x86/intel/pmt/discovery: Get telemetry attributes
debox1 Jul 3, 2025
83e637d
platform/x86/intel/pmt/telemetry: Add API to retrieve telemetry regio…
debox1 Jul 3, 2025
2fc01dd
platform/x86/intel/pmt: KUNIT test for PMT Enhanced Discovery API
debox1 Jul 3, 2025
609a880
platform/x86/intel/pmt/discovery: Fix size_t specifiers for 32-bit
nathanchance Jul 8, 2025
f251836
platform/x86/intel/pmt/discovery: fix format string warning
arndb Jul 11, 2025
77c1343
platform/x86/intel/pmt: fix build dependency for kunit test
arndb Jul 14, 2025
ff62602
platform/x86/intel/pmt: fix a crashlog NULL pointer access
mjruhl Jul 13, 2025
7506489
platform/x86/intel/pmt: Fix kobject memory leak on init failure
kaushlen Dec 23, 2025
27869bc
platform/x86/intel/pmt/discovery: use valid device pointer in dev_err…
aloktiwa Dec 24, 2025
9cac52e
config: enable CONFIG_INTEL_PMT_DISCOVERY
zhang-rui Jan 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 134 additions & 0 deletions Documentation/ABI/testing/sysfs-class-intel_pmt-features
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
What: /sys/class/intel_pmt/features-<PCI BDF>/
Date: 2025-04-24
KernelVersion: 6.16
Contact: david.e.box@linux.intel.com
Description:
The `features-<PCI BDF>/` directory represents the "features"
capability exposed by Intel PMT (Platform Monitoring Technology)
for the given PCI device.

Each directory corresponds to a PMT feature and contains
attributes describing the available telemetry, monitoring, or
control functionalities.

Directory Structure:

/sys/class/intel_pmt/features-<PCI BDF>/
├── accelerator_telemetry/ # Per-accelerator telemetry data
├── crash_log/ # Contains system crash telemetry logs
├── per_core_environment_telemetry/ # Environmental telemetry per core
├── per_core_performance_telemetry/ # Performance telemetry per core
├── per_rmid_energy_telemetry/ # Energy telemetry for RMIDs
├── per_rmid_perf_telemetry/ # Performance telemetry for RMIDs
├── tpmi_control/ # TPMI-related controls and telemetry
├── tracing/ # PMT tracing features
└── uncore_telemetry/ # Uncore telemetry data

Common Files (Present in all feature directories):

caps
- Read-only
- Lists available capabilities for this feature.

guids
- Read-only
- Lists GUIDs associated with this feature.

Additional Attributes (Conditional Presence):

max_command_size
- Read-only
- Present if the feature supports out-of-band MCTP access.
- Maximum supported MCTP command size for out-of-band PMT access (bytes).

max_stream_size
- Read-only
- Present if the feature supports out-of-band MCTP access.
- Maximum supported MCTP stream size (bytes).

min_watcher_period_ms
- Read-only
- Present if the feature supports the watcher API.
The watcher API provides a writable control interface that allows user
configuration of monitoring behavior, such as setting the sampling or
reporting interval.
- Minimum supported time period for the watcher interface (milliseconds).

num_rmids
- Read-only
- Present if the feature supports RMID (Resource Monitoring ID) telemetry.
RMIDs are identifiers used by hardware to track and report resource usage,
such as memory bandwidth or energy consumption, on a per-logical-entity
basis (e.g., per core, thread, or process group).
- Maximum number of RMIDs tracked simultaneously.

Example:
For a device with PCI BDF `0000:00:03.1`, the directory tree could look like:

/sys/class/intel_pmt/features-0000:00:03.1/
├── accelerator_telemetry/
│ ├── caps
│ ├── guids
│ ├── max_command_size
│ ├── max_stream_size
│ ├── min_watcher_period_ms
├── crash_log/
│ ├── caps
│ ├── guids
│ ├── max_command_size
│ ├── max_stream_size
├── per_core_environment_telemetry/
│ ├── caps
│ ├── guids
│ ├── max_command_size
│ ├── max_stream_size
│ ├── min_watcher_period_ms
├── per_rmid_energy_telemetry/
│ ├── caps
│ ├── guids
│ ├── max_command_size
│ ├── max_stream_size
│ ├── min_watcher_period_ms
│ ├── num_rmids
├── tpmi_control/
│ ├── caps
│ ├── guids
├── tracing/
│ ├── caps
│ ├── guids
├── uncore_telemetry/
│ ├── caps
│ ├── guids
│ ├── max_command_size
│ ├── max_stream_size
│ ├── min_watcher_period_ms

Notes:
- Some attributes are only present if the corresponding feature supports
the capability (e.g., `max_command_size` for MCTP-capable features).
- Features supporting RMIDs include `num_rmids`.
- Features supporting the watcher API include `min_watcher_period_ms`.
- The `caps` file provides additional information about the functionality
of the feature.

Example 'caps' content for the 'tracing' feature:

/sys/class/intel_pmt/features-0000:00:03.1/
├── tracing/
│ ├── caps

telemetry Available: No
watcher Available: Yes
crashlog Available: No
streaming Available: No
threashold Available: No
window Available: No
config Available: Yes
tracing Available: No
inband Available: Yes
oob Available: Yes
secure_chan Available: No
pmt_sp Available: Yes
pmt_sp_policy Available: Yes
mailbox Available: Yes
bios_lock Available: Yes
10 changes: 10 additions & 0 deletions Documentation/admin-guide/pm/intel_uncore_frequency_scaling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,22 @@ Attributes in each directory:
``domain_id``
This attribute is used to get the power domain id of this instance.

``die_id``
This attribute is used to get the Linux die id of this instance.
This attribute is only present for domains with core agents and
when the CPUID leaf 0x1f presents die ID.

``fabric_cluster_id``
This attribute is used to get the fabric cluster id of this instance.

``package_id``
This attribute is used to get the package id of this instance.

``agent_types``
This attribute displays all the hardware agents present within the
domain. Each agent has the capability to control one or more hardware
subsystems, which include: core, cache, memory, and I/O.

The other attributes are same as presented at package_*_die_* level.

In most of current use cases, the "max_freq_khz" and "min_freq_khz"
Expand Down
5 changes: 4 additions & 1 deletion MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -10770,6 +10770,8 @@ F: include/linux/mfd/intel_soc_pmic*
INTEL PMT DRIVERS
M: David E. Box <david.e.box@linux.intel.com>
S: Supported
F: Documentation/ABI/testing/sysfs-class-intel_pmt
F: Documentation/ABI/testing/sysfs-class-intel_pmt-features
F: drivers/platform/x86/intel/pmt/

INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
Expand Down Expand Up @@ -10878,7 +10880,8 @@ F: drivers/platform/x86/intel/uncore-frequency/
INTEL VENDOR SPECIFIC EXTENDED CAPABILITIES DRIVER
M: David E. Box <david.e.box@linux.intel.com>
S: Supported
F: drivers/platform/x86/intel/vsec.*
F: drivers/platform/x86/intel/vsec.c
F: include/linux/intel_vsec.h

INTEL VIRTUAL BUTTON DRIVER
M: AceLan Kao <acelan.kao@canonical.com>
Expand Down
2 changes: 2 additions & 0 deletions config.x86_64
Original file line number Diff line number Diff line change
Expand Up @@ -8171,6 +8171,7 @@ CONFIG_INTEL_IFS=m
CONFIG_INTEL_PMT_CLASS=m
CONFIG_INTEL_PMT_TELEMETRY=m
CONFIG_INTEL_PMT_CRASHLOG=m
CONFIG_INTEL_PMT_DISCOVERY=m

#
# Intel Speed Select Technology interface support
Expand Down Expand Up @@ -8198,6 +8199,7 @@ CONFIG_INTEL_OAKTRAIL=m
CONFIG_INTEL_RST=m
CONFIG_INTEL_SMARTCONNECT=m
CONFIG_INTEL_TPMI=m
CONFIG_INTEL_PLR_TPMI=m
# CONFIG_INTEL_TURBO_MAX_3 is not set
CONFIG_INTEL_VSEC=m
# CONFIG_MSI_EC is not set
Expand Down
11 changes: 11 additions & 0 deletions drivers/platform/x86/intel/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,14 @@ config INTEL_SMARTCONNECT
This driver checks to determine whether the device has Intel Smart
Connect enabled, and if so disables it.

config INTEL_TPMI_POWER_DOMAINS
tristate

config INTEL_TPMI
tristate "Intel Topology Aware Register and PM Capsule Interface (TPMI)"
depends on INTEL_VSEC
depends on X86_64
select INTEL_TPMI_POWER_DOMAINS
help
The Intel Topology Aware Register and PM Capsule Interface (TPMI),
provides enumerable MMIO interface for power management features.
Expand All @@ -205,6 +209,13 @@ config INTEL_TPMI
To compile this driver as a module, choose M here: the module will
be called intel_vsec_tpmi.

config INTEL_PLR_TPMI
tristate "Intel SoC TPMI Power Limit Reasons driver"
depends on INTEL_TPMI
help
This driver provides the TPMI power limit reasons status information
via debugfs files.

config INTEL_TURBO_MAX_3
bool "Intel Turbo Boost Max Technology 3.0 enumeration driver"
depends on X86_64 && SCHED_MC_PRIO
Expand Down
4 changes: 4 additions & 0 deletions drivers/platform/x86/intel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ obj-$(CONFIG_INTEL_PUNIT_IPC) += intel_punit_ipc.o
# TPMI drivers
intel_vsec_tpmi-y := tpmi.o
obj-$(CONFIG_INTEL_TPMI) += intel_vsec_tpmi.o
obj-$(CONFIG_INTEL_PLR_TPMI) += intel_plr_tpmi.o

intel_tpmi_power_domains-y := tpmi_power_domains.o
obj-$(CONFIG_INTEL_TPMI_POWER_DOMAINS) += intel_tpmi_power_domains.o

# Intel Uncore drivers
intel-rst-y := rst.o
Expand Down
Loading