Re: [PATCH v3 0/4] platform/x86/amd/hsmp: Family 1Ah client support

From: M K, Muralidhara

Date: Mon Aug 24 2026 - 01:20:06 EST




On 8/19/2026 10:17 PM, Mario Limonciello wrote:
Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.


On 8/19/26 02:31, Muralidhara M K wrote:
This series enables the HSMP driver on the Family 1Ah client platforms,
Models 80h-8Fh and E0h-E3h.

The client parts drive a different mailbox from the server HSMP
interface, but the latest BIOS describes it through ACPI _CRS/_DSD the
same way a server socket's mailbox is described, and the parts speak
the Ryzen Master SMC message set instead of the server message IDs.
Patches 1-3 teach the driver the message set and let the client reach
its mailbox through the existing _CRS/_DSD-driven MMIO path, leaving
server behaviour unchanged, and patch 4 includes the telemetry table
those parts return. Only the ACPI driver probes them.

Changes in v3:

   - is_client_platform() now tells client and server apart through the
     ACPI-reported PM profile (FADT preferred_profile: PM_DESKTOP,
     PM_MOBILE, PM_WORKSTATION, PM_TABLET) instead of a hardcoded Family
     1Ah model range, the same signal amd-pstate already keys off of.
     Future client generations are recognised as long as firmware
     reports the right PM profile, with no driver update needed.
   - hsmp_desc() now resolves the running platform's descriptor once and
     caches the pointer behind READ_ONCE()/WRITE_ONCE() instead of
     recomputing it on every call. Concurrent first callers are benign,
     since every one of them computes and stores that same pointer, so
     the pair only needs to keep the load/store from being torn or
     reordered by the compiler, not order it against anything else.
   - The client message enum in amd_hsmp.h is now documented with
     kernel-doc, one @member entry per message describing its inputs
     and outputs, rather than a block comment plus a same-line comment
     per enumerator. Noted there that not every platform supports every
     message and that an unsupported one returns -ENOMSG.
   - Patch 4: the Telemetry Table RM layout moved out of the .rst and
     into amd_hsmp.h as real kernel-doc'd struct/enum declarations,
     giving userspace one authoritative definition of the byte layout.
     The .rst now just points at struct hsmp_telemetry_table_rm. The
     structs are now also packed to a 4-byte boundary to match
     firmware's actual layout, and the trailing NPU/PMF counters and
     spare padding firmware carries after the overclocking fields are
     no longer missing. Verified field-by-field against AMD's internal
     metrics table header and end-to-end against a live snapshot off
     Family 1Ah client hardware.

Each patch builds individually at W=1 and is clean under
checkpatch.pl --strict, kernel-doc, codespell and the htmldocs build.

Muralidhara M K (4):
   platform/x86/amd/hsmp: Add HSMP client support for Family 1Ah
   platform/x86/amd/hsmp: Route metric table through the client messages
   platform/x86/amd/hsmp: Add ACPI client support for Family 1Ah
   platform/x86/amd/hsmp: Document the client telemetry table

  Documentation/arch/x86/amd_hsmp.rst  |  24 ++-
  arch/x86/include/uapi/asm/amd_hsmp.h | 398 +++++++++++++++++++++++++ ++++++++++
  drivers/platform/x86/amd/hsmp/acpi.c |   2 +-
  drivers/platform/x86/amd/hsmp/hsmp.c | 273 +++++++++++++++++++++---
  drivers/platform/x86/amd/hsmp/hsmp.h |  25 +++
  5 files changed, 688 insertions(+), 34 deletions(-)


base-commit: 775f2078b38ff2121410a35302497a1e81b8e459

Thank you very much for the changes you did in v3, I'm happy now with
the changes.

Reviewed-by: Mario Limonciello (AMD) <superm1@xxxxxxxxxx>

Thanks Mario.

Hi Ilpo,
Could you please take a look at this series and share your feedback ?