summaryrefslogtreecommitdiff
path: root/src/soc/intel
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2017-03-07 19:12:02 -0800
committerDuncan Laurie <dlaurie@chromium.org>2017-03-08 19:07:37 +0100
commitb2aac8503019aad122983c0b60635357e9087b9c (patch)
tree574eb4cab039609b3bd2a01ea26ab1087d8eb16f /src/soc/intel
parent03df460af5f73bb2fbbe23caff5f0bb646e8f756 (diff)
intel/skylake: Add devicetree settings for acoustic noise mitigation
Add options to the skylake chip config that will allow tuning the various settings that can affect acoustics with the CPU and its VRs. These settings are applied inside FSP, and they can adjust the slew slew rate when changing voltages or disable fast C-state ramping on the various CPU VR rails. BUG=b:35581264 BRANCH=none TEST=these are currently unused, but I verified that enabling the options can affect the acoustics of a system at runtime. Change-Id: I6a8ec0b8d3bd38b330cb4836bfa5bbbfc87dc3fb Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://review.coreboot.org/18662 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins)
Diffstat (limited to 'src/soc/intel')
-rw-r--r--src/soc/intel/skylake/chip.h29
-rw-r--r--src/soc/intel/skylake/chip_fsp20.c9
2 files changed, 38 insertions, 0 deletions
diff --git a/src/soc/intel/skylake/chip.h b/src/soc/intel/skylake/chip.h
index 7dda76afa5..69b5364198 100644
--- a/src/soc/intel/skylake/chip.h
+++ b/src/soc/intel/skylake/chip.h
@@ -418,6 +418,35 @@ struct soc_intel_skylake_config {
/* Wake Enable Bitmap for USB3 ports */
u8 usb3_wake_enable_bitmap;
+
+ /*
+ * Acoustic Noise Mitigation
+ * 0b - Disable
+ * 1b - Enable noise mitigation
+ */
+ u8 AcousticNoiseMitigation;
+
+ /*
+ * Disable Fast Package C-state ramping
+ * Need to set AcousticNoiseMitigation = '1' first
+ * 0b - Enabled
+ * 1b - Disabled
+ */
+ u8 FastPkgCRampDisableIa;
+ u8 FastPkgCRampDisableGt;
+ u8 FastPkgCRampDisableSa;
+
+ /*
+ * Adjust the VR slew rates
+ * Need to set AcousticNoiseMitigation = '1' first
+ * 000b - Fast/2
+ * 001b - Fast/4
+ * 010b - Fast/8
+ * 011b - Fast/16
+ */
+ u8 SlowSlewRateForIa;
+ u8 SlowSlewRateForGt;
+ u8 SlowSlewRateForSa;
};
typedef struct soc_intel_skylake_config config_t;
diff --git a/src/soc/intel/skylake/chip_fsp20.c b/src/soc/intel/skylake/chip_fsp20.c
index 929aa5be7b..21d895ecf0 100644
--- a/src/soc/intel/skylake/chip_fsp20.c
+++ b/src/soc/intel/skylake/chip_fsp20.c
@@ -249,6 +249,15 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd)
*/
params->SendVrMbxCmd1 = config->SendVrMbxCmd;
+ /* Acoustic Noise Mitigation */
+ params->AcousticNoiseMitigation = config->AcousticNoiseMitigation;
+ params->SlowSlewRateForIa = config->SlowSlewRateForIa;
+ params->SlowSlewRateForGt = config->SlowSlewRateForGt;
+ params->SlowSlewRateForSa = config->SlowSlewRateForSa;
+ params->FastPkgCRampDisableIa = config->FastPkgCRampDisableIa;
+ params->FastPkgCRampDisableGt = config->FastPkgCRampDisableGt;
+ params->FastPkgCRampDisableSa = config->FastPkgCRampDisableSa;
+
soc_irq_settings(params);
}