soc/intel/skylake: vr_config: enable PSI3 and PSI4 by default

There are boards that do not need a specific domain_vr_config because
the defaults provided by the soc code are sufficient. Currently, this
means that these boards can't benefit from lower power states (PSI 3
and 4) because the settings default to being disabled since at the time
the defaults have been defined (2015) there were bugs in FSP in this
regard.

Set the default values of psiXenable to 1 for boards that do not have a
domain_vr_config setting in their devicetree, just like Cannon Lake
does.

Boards that have a domain_vr_config and set their specific settings are
not affected at all. Currently, there are only three boards that have
no domain_vr_config:

- supermicro/x11-lga1151-series
  These boards have a MPS MP2955 which we can assume support for PS3
  (the MP2965 and MP2935 support it, too).
  S-series CPUs with a 1151 socket do not have C9/C10 but only C8 and
  since only C10 makes use of PS4, those CPUs won't ever request PS4.
  That means we do not need to disable it explicitly for these boards.

- 51nb/x210:
  Needs testing and/or VR datasheet check for PS3/PS4 support

Change-Id: I5b5fd9fb3b9b89e80c47f15d706e2dd62dcc0748
Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/39980
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Michael Niewöhner 2020-03-31 00:28:57 +02:00 committed by Matt DeVillier
parent ae01122b57
commit e4c784bd0d
1 changed files with 9 additions and 9 deletions

View File

@ -21,15 +21,15 @@
#include <console/console.h> #include <console/console.h>
#include <intelblocks/cpulib.h> #include <intelblocks/cpulib.h>
/* Default values for domain configuration. PSI3 and PSI4 are disabled. */ /* Default values for domain configuration. */
static const struct vr_config default_configs[NUM_VR_DOMAINS] = { static const struct vr_config default_configs[NUM_VR_DOMAINS] = {
[VR_SYSTEM_AGENT] = { [VR_SYSTEM_AGENT] = {
.vr_config_enable = 1, .vr_config_enable = 1,
.psi1threshold = VR_CFG_AMP(20), .psi1threshold = VR_CFG_AMP(20),
.psi2threshold = VR_CFG_AMP(4), .psi2threshold = VR_CFG_AMP(4),
.psi3threshold = VR_CFG_AMP(1), .psi3threshold = VR_CFG_AMP(1),
.psi3enable = 0, .psi3enable = 1,
.psi4enable = 0, .psi4enable = 1,
.imon_slope = 0, .imon_slope = 0,
.imon_offset = 0, .imon_offset = 0,
.icc_max = 0, .icc_max = 0,
@ -40,8 +40,8 @@ static const struct vr_config default_configs[NUM_VR_DOMAINS] = {
.psi1threshold = VR_CFG_AMP(20), .psi1threshold = VR_CFG_AMP(20),
.psi2threshold = VR_CFG_AMP(5), .psi2threshold = VR_CFG_AMP(5),
.psi3threshold = VR_CFG_AMP(1), .psi3threshold = VR_CFG_AMP(1),
.psi3enable = 0, .psi3enable = 1,
.psi4enable = 0, .psi4enable = 1,
.imon_slope = 0, .imon_slope = 0,
.imon_offset = 0, .imon_offset = 0,
.icc_max = 0, .icc_max = 0,
@ -52,8 +52,8 @@ static const struct vr_config default_configs[NUM_VR_DOMAINS] = {
.psi1threshold = VR_CFG_AMP(20), .psi1threshold = VR_CFG_AMP(20),
.psi2threshold = VR_CFG_AMP(5), .psi2threshold = VR_CFG_AMP(5),
.psi3threshold = VR_CFG_AMP(1), .psi3threshold = VR_CFG_AMP(1),
.psi3enable = 0, .psi3enable = 1,
.psi4enable = 0, .psi4enable = 1,
.imon_slope = 0, .imon_slope = 0,
.imon_offset = 0, .imon_offset = 0,
.icc_max = 0, .icc_max = 0,
@ -64,8 +64,8 @@ static const struct vr_config default_configs[NUM_VR_DOMAINS] = {
.psi1threshold = VR_CFG_AMP(20), .psi1threshold = VR_CFG_AMP(20),
.psi2threshold = VR_CFG_AMP(5), .psi2threshold = VR_CFG_AMP(5),
.psi3threshold = VR_CFG_AMP(1), .psi3threshold = VR_CFG_AMP(1),
.psi3enable = 0, .psi3enable = 1,
.psi4enable = 0, .psi4enable = 1,
.imon_slope = 0, .imon_slope = 0,
.imon_offset = 0, .imon_offset = 0,
.icc_max = 0, .icc_max = 0,