summaryrefslogtreecommitdiff
path: root/src/soc
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/intel/apollolake/chip.c1
-rw-r--r--src/soc/intel/apollolake/chip.h10
2 files changed, 11 insertions, 0 deletions
diff --git a/src/soc/intel/apollolake/chip.c b/src/soc/intel/apollolake/chip.c
index e7a8168c94..bd40595ea3 100644
--- a/src/soc/intel/apollolake/chip.c
+++ b/src/soc/intel/apollolake/chip.c
@@ -736,6 +736,7 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *silupd)
/* SATA config */
if (is_devfn_enabled(PCH_DEVFN_SATA)) {
silconfig->SataSalpSupport = !(cfg->DisableSataSalpSupport);
+ silconfig->SpeedLimit = cfg->sata_speed;
memcpy(silconfig->SataPortsEnable, cfg->SataPortsEnable,
sizeof(silconfig->SataPortsEnable));
}
diff --git a/src/soc/intel/apollolake/chip.h b/src/soc/intel/apollolake/chip.h
index a92d98218c..3951880610 100644
--- a/src/soc/intel/apollolake/chip.h
+++ b/src/soc/intel/apollolake/chip.h
@@ -25,6 +25,13 @@ enum pnp_settings {
PNP_PERF_POWER,
};
+enum sata_speed_limit {
+ SATA_DEFAULT = 0,
+ SATA_GEN1,
+ SATA_GEN2,
+ SATA_GEN3
+};
+
struct soc_intel_apollolake_config {
/* Common structure containing soc config data required by common code*/
@@ -215,6 +222,9 @@ struct soc_intel_apollolake_config {
/* Sata Power Optimisation */
uint8_t SataPwrOptimizeDisable;
+
+ /* SATA speed limit */
+ enum sata_speed_limit sata_speed;
};
typedef struct soc_intel_apollolake_config config_t;