From: "David E. Box" <david.e.box@linux.intel.com>
To: hansg@kernel.org, ilpo.jarvinen@linux.intel.com,
irenic.rajneesh@gmail.com
Cc: "David E. Box" <david.e.box@linux.intel.com>,
linux-kernel@vger.kernel.org,
platform-driver-x86@vger.kernel.org,
srinivas.pandruvada@linux.intel.com, xi.pardee@linux.intel.com
Subject: [PATCH v6 00/15] Add ACPI-based PMT discovery support for Intel PMC
Date: Sun, 31 May 2026 12:46:02 -0700 [thread overview]
Message-ID: <cover.1780248804.git.david.e.box@linux.intel.com> (raw)
This series adds ACPI-based PMT discovery support and wires it into the
Intel PMC telemetry stack for Nova Lake S.
Today, PMT discovery flow is primarily PCI-oriented. Some platforms expose
PMT discovery via ACPI _DSD, and PMC telemetry needs to consume that path
for both standalone and companion-device cases. This series addresses that
in three logical steps:
1. Prepare intel_vsec for ACPI-backed discovery
2. Refactor PMT class handling so discovery source is
abstracted (PCI or ACPI)
3. Add/enable PMC consumers using ACPI discovery, including NVL
SSRAM support
Patches for step 1 were previously accepted. V4 onward includes the
remaining integration patches.
Testing:
Tested on Nova Lake S system and confirmed enumeration from both PCI and
ACPI enumerated PCD and PCH telemetry endpoints. Existing telemetry from
NVL CPU and an add-on Battlemage card also continued to work.
---
V6 changes:
- Squashed Xi Pardee's two patches (v5 patches 10 and 13) into a single
patch (v6 patch 12). The two patches logically belonged together as
they both addressed per-index probe state tracking and reentrant probe
protection.
- Reordered v5 patch 12 ("Add PCI platform data") to v6 patch 10 to
maintain better logical flow before the squashed probe state patch.
- Address other style and cleanup comments.
V5 changes:
- Addressed Ilpo Järvinen's review feedback on patches 08 and 14:
- Added #include <linux/limits.h> for U16_MAX in pwrm_telemetry.c.
- Split acpi_handle declaration from ACPI_HANDLE() assignment in both
pmc_pwrm_acpi_probe() and pmc_ssram_telemetry_acpi_init(). The
assignment now sits immediately above its !handle check.
- Reordered local variables in those two functions in reverse-xmas-tree
order.
- Patch 14: fixed a __free(pmc_acpi_free) ordering bug that caused
buf.pointer to leak. The cleanup variable is now declared after
acpi_evaluate_object() populates buf.pointer, and the GUID search
operates on the cleanup variable so its current value tracks the
actual allocation.
- Patches 05 and 06: bounded the new discovery-header memcpy_fromio()
to resource_size() of the mapped DVSEC entry. The cache introduced in
patch 05 (and the unified PCI header fetch in patch 06) would otherwise
read 16 bytes from namespaces whose DVSEC entry_size is only 3 dwords
(telemetry).
- Patch 06: documented in the ACPI branch that entry->disc_table = NULL
is intentional, so consumers that dereference disc_table must only be
wired to INTEL_VSEC_DISC_PCI namespaces.
- Remaining patches unchanged from v4.
V4 changes:
- Bound PMT discovery-header sizing to shared canonical definitions:
- Added INTEL_VSEC_ACPI_DISC_DWORDS in intel_vsec API.
- Added PMT_DISC_HEADER_DWORDS in PMT class, derived from the shared
definition.
- Replaced literal header copy sizes in PMT header fetch with size bound
to entry->disc_header.
- Updated PMC ACPI discovery typing to use shared acpi_disc_t consistently:
- acpi_disc_t now references INTEL_VSEC_ACPI_DISC_DWORDS.
- pmc_parse_telem_dsd() uses acpi_disc_t return type and
declaration-site allocation with __free(kfree).
- Included intel_vsec header in PMC core declarations to align type
ownership.
- In SSRAM ACPI scaffolding, switched temporary discovery pointer from raw
u32 (*)[4] to acpi_disc_t for consistency with exported PMC helper types.
- Remaining patches unchanged from v3.
V3 changes:
- Dropped "platform/x86/intel/pmt: Move header decode into common helper"
- The dropped patch caused a crashlog regression because disc_res was
accessed before assignment
- Updated the surrounding PMT patches to keep the needed ACPI header-fetch
work without the dropped helper
- Added "platform/x86/intel/pmt: Cache the telemetry discovery header"
to carry the post-v3 bug fix cleanly
- Dropped the standalone cleanup-pattern patch to keep the simpler
ssram pointer flow requested in review
David E. Box (14):
platform/x86/intel/pmt: Add pre/post decode hooks around header
parsing
platform/x86/intel/pmt/crashlog: Split init into pre-decode
platform/x86/intel/pmt/telemetry: Move overlap check to post-decode
hook
platform/x86/intel/pmt: Pass discovery index instead of resource
platform/x86/intel/pmt: Cache the telemetry discovery header
platform/x86/intel/pmt: Unify header fetch and add ACPI source
platform/x86/intel/pmc: Add PMC SSRAM Kconfig description
platform/x86/intel/pmc: Add ACPI PWRM telemetry driver for Nova Lake S
platform/x86/intel/pmc/ssram: Rename probe and PCI ID table for
consistency
platform/x86/intel/pmc/ssram: Add PCI platform data
platform/x86/intel/pmc/ssram: Refactor DEVID/PWRMBASE extraction into
helper
platform/x86/intel/pmc/ssram: Add ACPI discovery scaffolding
platform/x86/intel/pmc/ssram: Make PMT registration optional
platform/x86/intel/pmc: Add NVL PCI IDs for SSRAM telemetry discovery
Xi Pardee (1):
platform/x86/intel/pmc/ssram: Switch to static array with per-index
probe state
drivers/platform/x86/intel/pmc/Kconfig | 25 ++
drivers/platform/x86/intel/pmc/Makefile | 2 +
drivers/platform/x86/intel/pmc/core.h | 16 +
.../platform/x86/intel/pmc/pwrm_telemetry.c | 216 ++++++++++
.../platform/x86/intel/pmc/ssram_telemetry.c | 376 +++++++++++++++---
drivers/platform/x86/intel/pmt/class.c | 156 +++++++-
drivers/platform/x86/intel/pmt/class.h | 6 +
drivers/platform/x86/intel/pmt/crashlog.c | 19 +-
drivers/platform/x86/intel/pmt/telemetry.c | 34 +-
include/linux/intel_vsec.h | 5 +-
10 files changed, 769 insertions(+), 86 deletions(-)
create mode 100644 drivers/platform/x86/intel/pmc/pwrm_telemetry.c
base-commit: 069b06f8dfc9cdb34221c854653e7f54535e98e1
--
2.43.0
next reply other threads:[~2026-05-31 19:46 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-31 19:46 David E. Box [this message]
2026-05-31 19:46 ` [PATCH v6 01/15] platform/x86/intel/pmt: Add pre/post decode hooks around header parsing David E. Box
2026-05-31 19:46 ` [PATCH v6 02/15] platform/x86/intel/pmt/crashlog: Split init into pre-decode David E. Box
2026-05-31 19:46 ` [PATCH v6 03/15] platform/x86/intel/pmt/telemetry: Move overlap check to post-decode hook David E. Box
2026-05-31 19:46 ` [PATCH v6 04/15] platform/x86/intel/pmt: Pass discovery index instead of resource David E. Box
2026-05-31 19:46 ` [PATCH v6 05/15] platform/x86/intel/pmt: Cache the telemetry discovery header David E. Box
2026-05-31 19:46 ` [PATCH v6 06/15] platform/x86/intel/pmt: Unify header fetch and add ACPI source David E. Box
2026-05-31 19:46 ` [PATCH v6 07/15] platform/x86/intel/pmc: Add PMC SSRAM Kconfig description David E. Box
2026-05-31 19:46 ` [PATCH v6 08/15] platform/x86/intel/pmc: Add ACPI PWRM telemetry driver for Nova Lake S David E. Box
2026-05-31 19:46 ` [PATCH v6 09/15] platform/x86/intel/pmc/ssram: Rename probe and PCI ID table for consistency David E. Box
2026-05-31 19:46 ` [PATCH v6 10/15] platform/x86/intel/pmc/ssram: Add PCI platform data David E. Box
2026-05-31 19:46 ` [PATCH v6 11/15] platform/x86/intel/pmc/ssram: Refactor DEVID/PWRMBASE extraction into helper David E. Box
2026-05-31 19:46 ` [PATCH v6 12/15] platform/x86/intel/pmc/ssram: Switch to static array with per-index probe state David E. Box
2026-05-31 19:46 ` [PATCH v6 13/15] platform/x86/intel/pmc/ssram: Add ACPI discovery scaffolding David E. Box
2026-05-31 19:46 ` [PATCH v6 14/15] platform/x86/intel/pmc/ssram: Make PMT registration optional David E. Box
2026-05-31 19:46 ` [PATCH v6 15/15] platform/x86/intel/pmc: Add NVL PCI IDs for SSRAM telemetry discovery David E. Box
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1780248804.git.david.e.box@linux.intel.com \
--to=david.e.box@linux.intel.com \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=irenic.rajneesh@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=srinivas.pandruvada@linux.intel.com \
--cc=xi.pardee@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.