summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPratik Prajapati <pratikkumar.v.prajapati@intel.com>2018-08-22 18:58:38 -0700
committerDuncan Laurie <dlaurie@chromium.org>2018-09-22 00:41:45 +0000
commite072247e6e54ec76157b21dc3109e8cb5f99158c (patch)
tree6a056de040d671a2a9e349c07db75dc672d7eef2
parenta5fbd140d0d7e05b84a05c562e34d9fbca306ccc (diff)
downloadcoreboot-e072247e6e54ec76157b21dc3109e8cb5f99158c.tar.xz
skylake,kabylake: Add support to set eMMC tuning param from dev tree
Add support to set eMMC tuning params from the device tree so that it can be configured per board. BUG=b:112718426,b:112690628 BRANCH=none TEST=Build nocturne image and checked values passed in dev tree is set by FSP. Change-Id: Ic71934dce9a1c380a057e579ca3fda41983b9385 Signed-off-by: Pratik Prajapati <pratikkumar.v.prajapati@intel.com> Reviewed-on: https://review.coreboot.org/28274 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lijian Zhao <lijian.zhao@intel.com> Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com> Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
-rw-r--r--src/soc/intel/skylake/chip.h3
-rw-r--r--src/soc/intel/skylake/chip_fsp20.c9
2 files changed, 12 insertions, 0 deletions
diff --git a/src/soc/intel/skylake/chip.h b/src/soc/intel/skylake/chip.h
index 5bf39318bb..b1ffcb2fe8 100644
--- a/src/soc/intel/skylake/chip.h
+++ b/src/soc/intel/skylake/chip.h
@@ -291,6 +291,9 @@ struct soc_intel_skylake_config {
u8 ScsEmmcEnabled;
u8 ScsEmmcHs400Enabled;
u8 ScsSdCardEnabled;
+ u8 EmmcHs400DllNeed;
+ u8 ScsEmmcHs400RxStrobeDll1;
+ u8 ScsEmmcHs400TxDataDll;
u8 PttSwitch;
u8 HeciTimeouts;
diff --git a/src/soc/intel/skylake/chip_fsp20.c b/src/soc/intel/skylake/chip_fsp20.c
index d5f543302f..c2c0745565 100644
--- a/src/soc/intel/skylake/chip_fsp20.c
+++ b/src/soc/intel/skylake/chip_fsp20.c
@@ -336,6 +336,15 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd)
params->ScsEmmcHs400Enabled = config->ScsEmmcHs400Enabled;
params->ScsSdCardEnabled = config->ScsSdCardEnabled;
+ if (!!params->ScsEmmcHs400Enabled && !!config->EmmcHs400DllNeed) {
+ params->PchScsEmmcHs400DllDataValid =
+ !!config->EmmcHs400DllNeed;
+ params->PchScsEmmcHs400RxStrobeDll1 =
+ config->ScsEmmcHs400RxStrobeDll1;
+ params->PchScsEmmcHs400TxDataDll =
+ config->ScsEmmcHs400TxDataDll;
+ }
+
/* If ISH is enabled, enable ISH elements */
dev = dev_find_slot(0, PCH_DEVFN_ISH);
if (dev)