soc/intel/apollolake: Add EMMC DLL API
Starting from 136_30,FSP supports to update all the SDIO DLL programming value through silicon init upd. Implement the interface to pass board specific programming value to fsp silicon init. Change-Id: Ifd901148f3f7f89f966217491c661ec346337c38 Signed-off-by: Zhao, Lijian <lijian.zhao@intel.com> Reviewed-on: https://chromium.devtools.intel.com/7372 Reviewed-by: Petrov, Andrey <andrey.petrov@intel.com> Tested-by: Petrov, Andrey <andrey.petrov@intel.com> Reviewed-on: https://chromium.devtools.intel.com/7585 Reviewed-on: https://review.coreboot.org/15084 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
4001f244ad
commit
1b8ee0b88a
|
@ -117,6 +117,19 @@ void platform_fsp_silicon_init_params_cb(struct FSPS_UPD *silupd)
|
|||
silconfig->PcieRpClkReqNumber[4] = cfg->pcie_rp4_clkreq_pin;
|
||||
silconfig->PcieRpClkReqNumber[5] = cfg->pcie_rp5_clkreq_pin;
|
||||
|
||||
if (cfg->emmc_tx_cmd_cntl != 0)
|
||||
silconfig->EmmcTxCmdCntl = cfg->emmc_tx_cmd_cntl;
|
||||
if (cfg->emmc_tx_data_cntl1 != 0)
|
||||
silconfig->EmmcTxDataCntl1 = cfg->emmc_tx_data_cntl1;
|
||||
if (cfg->emmc_tx_data_cntl2 != 0)
|
||||
silconfig->EmmcTxDataCntl2 = cfg->emmc_tx_data_cntl2;
|
||||
if (cfg->emmc_rx_cmd_data_cntl1 != 0)
|
||||
silconfig->EmmcRxCmdDataCntl1 = cfg->emmc_rx_cmd_data_cntl1;
|
||||
if (cfg->emmc_rx_strobe_cntl != 0)
|
||||
silconfig->EmmcRxStrobeCntl = cfg->emmc_rx_strobe_cntl;
|
||||
if (cfg->emmc_rx_cmd_data_cntl2 != 0)
|
||||
silconfig->EmmcRxCmdDataCntl2 = cfg->emmc_rx_cmd_data_cntl2;
|
||||
|
||||
/* Our defaults may not match FSP defaults, so set them explicitly */
|
||||
silconfig->AcpiBase = ACPI_PMIO_BASE;
|
||||
/* First 4k in BAR0 is used for IPC, real registers start at 4k offset */
|
||||
|
|
|
@ -40,6 +40,40 @@ struct soc_intel_apollolake_config {
|
|||
uint8_t pcie_rp4_clkreq_pin;
|
||||
uint8_t pcie_rp5_clkreq_pin;
|
||||
|
||||
/* [14:8] DDR mode Number of dealy elements.Each = 125pSec.
|
||||
* [6:0] SDR mode Number of dealy elements.Each = 125pSec.
|
||||
*/
|
||||
uint32_t emmc_tx_cmd_cntl;
|
||||
|
||||
/* [14:8] HS400 mode Number of dealy elements.Each = 125pSec.
|
||||
* [6:0] SDR104/HS200 mode Number of dealy elements.Each = 125pSec.
|
||||
*/
|
||||
uint32_t emmc_tx_data_cntl1;
|
||||
|
||||
/* [30:24] SDR50 mode Number of dealy elements.Each = 125pSec.
|
||||
* [22:16] DDR50 mode Number of dealy elements.Each = 125pSec.
|
||||
* [14:8] SDR25/HS50 mode Number of dealy elements.Each = 125pSec.
|
||||
* [6:0] SDR12/Compatibility mode Number of dealy elements.Each = 125pSec.
|
||||
*/
|
||||
uint32_t emmc_tx_data_cntl2;
|
||||
|
||||
/* [30:24] SDR50 mode Number of dealy elements.Each = 125pSec.
|
||||
* [22:16] DDR50 mode Number of dealy elements.Each = 125pSec.
|
||||
* [14:8] SDR25/HS50 mode Number of dealy elements.Each = 125pSec.
|
||||
* [6:0] SDR12/Compatibility mode Number of dealy elements.Each = 125pSec.
|
||||
*/
|
||||
uint32_t emmc_rx_cmd_data_cntl1;
|
||||
|
||||
/* [14:8] HS400 mode 1 Number of dealy elements.Each = 125pSec.
|
||||
* [6:0] HS400 mode 2 Number of dealy elements.Each = 125pSec.
|
||||
*/
|
||||
uint32_t emmc_rx_strobe_cntl;
|
||||
|
||||
/* [13:8] Auto Tuning mode Number of dealy elements.Each = 125pSec.
|
||||
* [6:0] SDR104/HS200 Number of dealy elements.Each = 125pSec.
|
||||
*/
|
||||
uint32_t emmc_rx_cmd_data_cntl2;
|
||||
|
||||
/* Configure serial IRQ (SERIRQ) line. */
|
||||
enum serirq_mode serirq_mode;
|
||||
|
||||
|
|
Loading…
Reference in New Issue