Shaunak Saha has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/42214 )
Change subject: soc/intel/tigerlake: SATA Port Enable Dito Config
......................................................................
soc/intel/tigerlake: SATA Port Enable Dito Config
SataPortsEnableDitoConfig Enable DEVSLP Idle Timeout settings DmVal and
DitoVal. SataPortsDmVal and SataPortsDitoVal helps to determine when to
enter Device Sleep. Device Sleep enables the host bus adapter (HBA) to
assert the DEVSLP signal as soon as there are no commands outstanding
to the device and the port specific Device Sleep idle timer has expired.
And the Device Sleep Idle Timeout value (PxDEVSLP.DITO and PxDEVSLP.DM) is a
port specific timeout value used by the HBA for determining when to assert the
DEVSLP signal. It provides a mechanism for the HBA to apply a programmable
amount of hysteresis so as to prevent the HBA from asserting the DEVSLP signal
too quickly which may result in undesirable latencies.
*PxDEVSLP.DM -> SataPortsDmVal: Enable SATA Port DmVal DITO multiplier.
Default is 15.
*PxDEVSLP.DITO -> SataPortsDitoVal: Enable SATA Port DmVal DEVSLP Idle Timeout
(DITO), Default is 625.
BUG=b:151163106
BRANCH=None
TEST=Build and boot volteer and TGL RVP.
Signed-off-by: Shaunak Saha <shaunak.saha(a)intel.com>
Change-Id: I6a824524738a9e0609f54bea9d892b4a42a1d3db
---
M src/soc/intel/tigerlake/chip.h
M src/soc/intel/tigerlake/fsp_params.c
2 files changed, 24 insertions(+), 5 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/14/42214/1
diff --git a/src/soc/intel/tigerlake/chip.h b/src/soc/intel/tigerlake/chip.h
index ed09aaa..d920fc9 100644
--- a/src/soc/intel/tigerlake/chip.h
+++ b/src/soc/intel/tigerlake/chip.h
@@ -98,6 +98,18 @@
uint8_t SataPortsEnable[8];
uint8_t SataPortsDevSlp[8];
+ /*
+ * Enable(0)/Disable(1) SATA Power Optimizer on PCH side.
+ * Default 0. Setting this to 1 disables the SATA Power Optimizer.
+ */
+ uint8_t SataPwrOptimizeDisable;
+
+ /*
+ * SATA Port Enable Dito Config.
+ * Enable DEVSLP Idle Timeout settings (DmVal, DitoVal).
+ */
+ uint8_t SataPortsEnableDitoConfig[8];
+
/* Audio related */
uint8_t PchHdaDspEnable;
uint8_t PchHdaAudioLinkHdaEnable;
@@ -308,11 +320,6 @@
*/
uint8_t DmiPwrOptimizeDisable;
- /*
- * Enable(0)/Disable(1) SATA Power Optimizer on PCH side.
- * Default 0. Setting this to 1 disables the SATA Power Optimizer.
- */
- uint8_t SataPwrOptimizeDisable;
};
typedef struct soc_intel_tigerlake_config config_t;
diff --git a/src/soc/intel/tigerlake/fsp_params.c b/src/soc/intel/tigerlake/fsp_params.c
index bdcd357..c2c963f 100644
--- a/src/soc/intel/tigerlake/fsp_params.c
+++ b/src/soc/intel/tigerlake/fsp_params.c
@@ -202,6 +202,18 @@
params->PchPwrOptEnable = !(config->DmiPwrOptimizeDisable);
params->SataPwrOptEnable = !(config->SataPwrOptimizeDisable);
+ /*
+ * Enable DEVSLP Idle Timeout settings DmVal and DitoVal.
+ * SataPortsDmVal is the DITO multiplier. Default is 15.
+ * SataPortsDitoVal is the DEVSLP Idle Timeout (DITO), Default is 625.
+ */
+ for (i = 0; i < ARRAY_SIZE(config->SataPortsEnableDitoConfig); i++) {
+ if (config->SataPortsEnableDitoConfig[i]) {
+ params->SataPortsDmVal[i] = 15;
+ params->SataPortsDitoVal[1] = 625;
+ }
+ }
+
/* Enable TCPU for processor thermal control */
params->Device4Enable = config->Device4Enable;
--
To view, visit https://review.coreboot.org/c/coreboot/+/42214
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I6a824524738a9e0609f54bea9d892b4a42a1d3db
Gerrit-Change-Number: 42214
Gerrit-PatchSet: 1
Gerrit-Owner: Shaunak Saha <shaunak.saha(a)intel.com>
Gerrit-MessageType: newchange