Thread (3 messages) 3 messages, 2 authors, 2023-07-11

Re: [PATCH] hwmon: (peci/cputemp) Add Intel Sapphire Rapids support

From: Naresh Solanki <hidden>
Date: 2023-07-11 14:55:59
Also in: linux-hwmon, lkml, openbmc

Hi Guenter,

On Mon, 10 Jul 2023 at 19:43, Guenter Roeck [off-list ref] wrote:
On 7/10/23 09:27, Naresh Solanki wrote:
quoted
From: Patrick Rudolph <patrick.rudolph@9elements.com>

Add support to read DTS for reading Intel Sapphire Rapids platform.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
This patch touches code outside the hwmon subsystem, so I won't be able
to apply it without Ack from a maintainer.
Yes.  I'll split the patch & resubmit.
~Naresh
Guenter
quoted
---
  drivers/hwmon/peci/cputemp.c | 18 ++++++++++++++++++
  drivers/peci/cpu.c           |  5 +++++
  2 files changed, 23 insertions(+)
diff --git a/drivers/hwmon/peci/cputemp.c b/drivers/hwmon/peci/cputemp.c
index e5b65a382772..a812c15948d9 100644
--- a/drivers/hwmon/peci/cputemp.c
+++ b/drivers/hwmon/peci/cputemp.c
@@ -363,6 +363,7 @@ static int init_core_mask(struct peci_cputemp *priv)
      switch (peci_dev->info.model) {
      case INTEL_FAM6_ICELAKE_X:
      case INTEL_FAM6_ICELAKE_D:
+     case INTEL_FAM6_SAPPHIRERAPIDS_X:
              ret = peci_ep_pci_local_read(peci_dev, 0, reg->bus, reg->dev,
                                           reg->func, reg->offset + 4, &data);
              if (ret)
@@ -531,6 +532,13 @@ static struct resolved_cores_reg resolved_cores_reg_icx = {
      .offset = 0xd0,
  };

+static struct resolved_cores_reg resolved_cores_reg_spr = {
+     .bus = 31,
+     .dev = 30,
+     .func = 6,
+     .offset = 0x80,
+};
+
  static const struct cpu_info cpu_hsx = {
      .reg            = &resolved_cores_reg_hsx,
      .min_peci_revision = 0x33,
@@ -549,6 +557,12 @@ static const struct cpu_info cpu_icx = {
      .thermal_margin_to_millidegree = &dts_ten_dot_six_to_millidegree,
  };

+static const struct cpu_info cpu_spr = {
+     .reg            = &resolved_cores_reg_spr,
+     .min_peci_revision = 0x40,
+     .thermal_margin_to_millidegree = &dts_ten_dot_six_to_millidegree,
+};
+
  static const struct auxiliary_device_id peci_cputemp_ids[] = {
      {
              .name = "peci_cpu.cputemp.hsx",
@@ -574,6 +588,10 @@ static const struct auxiliary_device_id peci_cputemp_ids[] = {
              .name = "peci_cpu.cputemp.icxd",
              .driver_data = (kernel_ulong_t)&cpu_icx,
      },
+     {
+             .name = "peci_cpu.cputemp.spr",
+             .driver_data = (kernel_ulong_t)&cpu_spr,
+     },
      { }
  };
  MODULE_DEVICE_TABLE(auxiliary, peci_cputemp_ids);
diff --git a/drivers/peci/cpu.c b/drivers/peci/cpu.c
index de4a7b3e5966..3668a908d259 100644
--- a/drivers/peci/cpu.c
+++ b/drivers/peci/cpu.c
@@ -318,6 +318,11 @@ static const struct peci_device_id peci_cpu_device_ids[] = {
              .model  = INTEL_FAM6_ICELAKE_X,
              .data   = "icx",
      },
+     { /* Sapphire Rapids Xeon */
+             .family = 6,
+             .model  = INTEL_FAM6_SAPPHIRERAPIDS_X,
+             .data   = "spr",
+     },
      { /* Icelake Xeon D */
              .family = 6,
              .model  = INTEL_FAM6_ICELAKE_D,
base-commit: 4dbbaf8fbdbd13adc80731b2452257857e4c2d8b
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help