summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaravanan Palanisamy <saravanan.palanisamy@intel.com>2020-05-15 20:40:34 +0300
committerJae Hyun Yoo <jae.hyun.yoo@intel.com>2021-07-14 20:07:04 +0300
commit5e3a7ae2838d6c0e80be693b644902f471c3fb8e (patch)
tree325801350a11a550728a375f04f06246fef6638e
parent81a5b1ef1d91d3cc83aff64bf7c4a87b17abd379 (diff)
downloadlinux-5e3a7ae2838d6c0e80be693b644902f471c3fb8e.tar.xz
mfd: peci: Add ICX-D generation info
This commit adds CPU generation info for ICX-D Xeon family. Signed-off-by: Saravanan Palanisamy <saravanan.palanisamy@intel.com> Signed-off-by: Anoop S <anoopx.s@intel.com>
-rw-r--r--drivers/hwmon/peci-cputemp.c1
-rw-r--r--drivers/hwmon/peci-dimmtemp.c2
-rw-r--r--drivers/mfd/intel-peci-client.c6
-rw-r--r--include/linux/mfd/intel-peci-client.h5
4 files changed, 14 insertions, 0 deletions
diff --git a/drivers/hwmon/peci-cputemp.c b/drivers/hwmon/peci-cputemp.c
index c1b842069168..c5d92d1d2c25 100644
--- a/drivers/hwmon/peci-cputemp.c
+++ b/drivers/hwmon/peci-cputemp.c
@@ -333,6 +333,7 @@ static int check_resolved_cores(struct peci_cputemp *priv)
/* Get the RESOLVED_CORES register value */
switch (priv->gen_info->model) {
case INTEL_FAM6_ICELAKE_X:
+ case INTEL_FAM6_ICELAKE_XD:
msg.addr = priv->mgr->client->addr;
msg.device = 30;
msg.function = 3;
diff --git a/drivers/hwmon/peci-dimmtemp.c b/drivers/hwmon/peci-dimmtemp.c
index f5a778f52beb..8b3a265355e0 100644
--- a/drivers/hwmon/peci-dimmtemp.c
+++ b/drivers/hwmon/peci-dimmtemp.c
@@ -41,6 +41,7 @@ static const u8 support_model[] = {
INTEL_FAM6_SKYLAKE_X,
INTEL_FAM6_SKYLAKE_XD,
INTEL_FAM6_ICELAKE_X,
+ INTEL_FAM6_ICELAKE_XD,
};
static inline int read_ddr_dimm_temp_config(struct peci_dimmtemp *priv,
@@ -73,6 +74,7 @@ static int get_dimm_temp(struct peci_dimmtemp *priv, int dimm_no)
switch (priv->gen_info->model) {
case INTEL_FAM6_ICELAKE_X:
+ case INTEL_FAM6_ICELAKE_XD:
re_msg.addr = priv->mgr->client->addr;
re_msg.rx_len = 4;
re_msg.msg_type = PECI_ENDPTCFG_TYPE_LOCAL_PCI;
diff --git a/drivers/mfd/intel-peci-client.c b/drivers/mfd/intel-peci-client.c
index 1b96cefb8563..9b4ed8b0d4ca 100644
--- a/drivers/mfd/intel-peci-client.c
+++ b/drivers/mfd/intel-peci-client.c
@@ -56,6 +56,12 @@ static const struct cpu_gen_info cpu_gen_info_table[] = {
.core_mask_bits = CORE_MASK_BITS_ON_ICX,
.chan_rank_max = CHAN_RANK_MAX_ON_ICX,
.dimm_idx_max = DIMM_IDX_MAX_ON_ICX },
+ { /* Icelake Xeon D */
+ .family = INTEL_FAM6,
+ .model = INTEL_FAM6_ICELAKE_XD,
+ .core_mask_bits = CORE_MASK_BITS_ON_ICXD,
+ .chan_rank_max = CHAN_RANK_MAX_ON_ICXD,
+ .dimm_idx_max = DIMM_IDX_MAX_ON_ICXD },
};
static int peci_client_get_cpu_gen_info(struct peci_client_manager *priv)
diff --git a/include/linux/mfd/intel-peci-client.h b/include/linux/mfd/intel-peci-client.h
index 1303e3f93c33..55dec5be3245 100644
--- a/include/linux/mfd/intel-peci-client.h
+++ b/include/linux/mfd/intel-peci-client.h
@@ -19,6 +19,7 @@
#define INTEL_FAM6_SKYLAKE_X 0x55
#define INTEL_FAM6_SKYLAKE_XD 0x56
#define INTEL_FAM6_ICELAKE_X 0x6A
+#define INTEL_FAM6_ICELAKE_XD 0x6C
#endif
#define INTEL_FAM6 6 /* P6 (Pentium Pro and later) */
@@ -43,6 +44,10 @@
#define CHAN_RANK_MAX_ON_ICX 8 /* Max number of channel ranks on Icelake */
#define DIMM_IDX_MAX_ON_ICX 2 /* Max DIMM index per channel on Icelake */
+#define CORE_MASK_BITS_ON_ICXD 64
+#define CHAN_RANK_MAX_ON_ICXD 4 /* Max number of channel ranks on Icelake D */
+#define DIMM_IDX_MAX_ON_ICXD 2 /* Max DIMM index per channel on Icelake D */
+
#define CORE_MASK_BITS_MAX CORE_MASK_BITS_ON_ICX
#define CHAN_RANK_MAX CHAN_RANK_MAX_ON_HSX
#define DIMM_IDX_MAX DIMM_IDX_MAX_ON_HSX