soc/intel/elkhartlake: Update FSP-S UPD configs for graphic & chipset
Further add initial silicon UPD settings for: - graphics & display - chipset lockdown - PAVP - legacy timer - PCH master gating control - HECI This CL also enables HECI 1 in devicetree.cb. Signed-off-by: Lean Sheng Tan <lean.sheng.tan@intel.com> Change-Id: I657f44f8506640c23049614b2db9d1837e6d44ed Reviewed-on: https://review.coreboot.org/c/coreboot/+/54960 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Werner Zeh <werner.zeh@siemens.com> Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
This commit is contained in:
parent
542a2d908d
commit
e9ee4390a5
|
@ -12,11 +12,21 @@ chip soc/intel/elkhartlake
|
||||||
register "pmc_gpe0_dw1" = "GPP_F"
|
register "pmc_gpe0_dw1" = "GPP_F"
|
||||||
register "pmc_gpe0_dw2" = "GPP_E"
|
register "pmc_gpe0_dw2" = "GPP_E"
|
||||||
|
|
||||||
|
# Enable heci1 communication
|
||||||
|
register "HeciEnabled" = "1"
|
||||||
|
|
||||||
# FSP configuration
|
# FSP configuration
|
||||||
register "SaGv" = "SaGv_Enabled"
|
register "SaGv" = "SaGv_Enabled"
|
||||||
register "SmbusEnable" = "1"
|
register "SmbusEnable" = "1"
|
||||||
register "Heci2Enable" = "1"
|
register "Heci2Enable" = "1"
|
||||||
|
|
||||||
|
# Display related UPDs
|
||||||
|
# Enable HPD for DDI ports C
|
||||||
|
register "DdiPortCHpd" = "1"
|
||||||
|
|
||||||
|
# Enable DDC for DDI ports C
|
||||||
|
register "DdiPortCDdc" = "1"
|
||||||
|
|
||||||
# Skip the CPU repalcement check
|
# Skip the CPU repalcement check
|
||||||
register "SkipCpuReplacementCheck" = "1"
|
register "SkipCpuReplacementCheck" = "1"
|
||||||
|
|
||||||
|
@ -104,6 +114,10 @@ chip soc/intel/elkhartlake
|
||||||
# GPIO for SD card detect
|
# GPIO for SD card detect
|
||||||
register "sdcard_cd_gpio" = "GPP_G5"
|
register "sdcard_cd_gpio" = "GPP_G5"
|
||||||
|
|
||||||
|
register "common_soc_config" = "{
|
||||||
|
.chipset_lockdown = CHIPSET_LOCKDOWN_COREBOOT,
|
||||||
|
}"
|
||||||
|
|
||||||
device domain 0 on
|
device domain 0 on
|
||||||
device pci 00.0 on end # Host Bridge
|
device pci 00.0 on end # Host Bridge
|
||||||
device pci 02.0 on end # Integrated Graphics Device
|
device pci 02.0 on end # Integrated Graphics Device
|
||||||
|
|
|
@ -15,18 +15,6 @@
|
||||||
#include <soc/soc_chip.h>
|
#include <soc/soc_chip.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
/*
|
|
||||||
* ME End of Post configuration
|
|
||||||
* 0 - Disable EOP.
|
|
||||||
* 1 - Send in PEI (Applicable for FSP in API mode)
|
|
||||||
* 2 - Send in DXE (Not applicable for FSP in API mode)
|
|
||||||
*/
|
|
||||||
enum {
|
|
||||||
EOP_DISABLE,
|
|
||||||
EOP_PEI,
|
|
||||||
EOP_DXE,
|
|
||||||
} EndOfPost;
|
|
||||||
|
|
||||||
static const pci_devfn_t serial_io_dev[] = {
|
static const pci_devfn_t serial_io_dev[] = {
|
||||||
PCH_DEVFN_I2C0,
|
PCH_DEVFN_I2C0,
|
||||||
PCH_DEVFN_I2C1,
|
PCH_DEVFN_I2C1,
|
||||||
|
@ -111,12 +99,60 @@ static void parse_devicetree(FSP_S_CONFIG *params)
|
||||||
/* UPD parameters to be initialized before SiliconInit */
|
/* UPD parameters to be initialized before SiliconInit */
|
||||||
void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd)
|
void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd)
|
||||||
{
|
{
|
||||||
|
struct device *dev;
|
||||||
FSP_S_CONFIG *params = &supd->FspsConfig;
|
FSP_S_CONFIG *params = &supd->FspsConfig;
|
||||||
|
struct soc_intel_elkhartlake_config *config = config_of_soc();
|
||||||
|
|
||||||
/* Parse device tree and fill in FSP UPDs */
|
/* Parse device tree and fill in FSP UPDs */
|
||||||
parse_devicetree(params);
|
parse_devicetree(params);
|
||||||
|
|
||||||
/* TODO: Update with UPD override as FSP matures */
|
/* Load VBT before devicetree-specific config. */
|
||||||
|
params->GraphicsConfigPtr = (uintptr_t)vbt_get();
|
||||||
|
|
||||||
|
/* Check if IGD is present and fill Graphics init param accordingly */
|
||||||
|
dev = pcidev_path_on_root(SA_DEVFN_IGD);
|
||||||
|
params->PeiGraphicsPeimInit = CONFIG(RUN_FSP_GOP) && is_dev_enabled(dev);
|
||||||
|
|
||||||
|
/* Display config */
|
||||||
|
params->DdiPortAHpd = config->DdiPortAHpd;
|
||||||
|
params->DdiPortADdc = config->DdiPortADdc;
|
||||||
|
params->DdiPortCHpd = config->DdiPortCHpd;
|
||||||
|
params->DdiPortCDdc = config->DdiPortCDdc;
|
||||||
|
|
||||||
|
/* Use coreboot MP PPI services if Kconfig is enabled */
|
||||||
|
if (CONFIG(USE_INTEL_FSP_TO_CALL_COREBOOT_PUBLISH_MP_PPI))
|
||||||
|
params->CpuMpPpi = (uintptr_t) mp_fill_ppi_services_data();
|
||||||
|
|
||||||
|
/* Chipset Lockdown */
|
||||||
|
if (get_lockdown_config() == CHIPSET_LOCKDOWN_COREBOOT) {
|
||||||
|
params->PchLockDownGlobalSmi = 0;
|
||||||
|
params->PchLockDownBiosLock = 0;
|
||||||
|
params->PchLockDownBiosInterface = 0;
|
||||||
|
params->PchWriteProtectionEnable[0] = 0;
|
||||||
|
params->PchUnlockGpioPads = 1;
|
||||||
|
params->RtcMemoryLock = 0;
|
||||||
|
} else {
|
||||||
|
params->PchLockDownGlobalSmi = 1;
|
||||||
|
params->PchLockDownBiosLock = 1;
|
||||||
|
params->PchLockDownBiosInterface = 1;
|
||||||
|
params->PchWriteProtectionEnable[0] = 1;
|
||||||
|
params->PchUnlockGpioPads = 0;
|
||||||
|
params->RtcMemoryLock = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Disable PAVP */
|
||||||
|
params->PavpEnable = 0;
|
||||||
|
|
||||||
|
/* Legacy 8254 timer support */
|
||||||
|
params->Enable8254ClockGating = !CONFIG(USE_LEGACY_8254_TIMER);
|
||||||
|
params->Enable8254ClockGatingOnS3 = 1;
|
||||||
|
|
||||||
|
/* PCH Master Gating Control */
|
||||||
|
params->PchPostMasterClockGating = 1;
|
||||||
|
params->PchPostMasterPowerGating = 1;
|
||||||
|
|
||||||
|
/* HECI */
|
||||||
|
params->Heci3Enabled = config->Heci3Enable;
|
||||||
|
|
||||||
/* Override/Fill FSP Silicon Param for mainboard */
|
/* Override/Fill FSP Silicon Param for mainboard */
|
||||||
mainboard_silicon_init_params(params);
|
mainboard_silicon_init_params(params);
|
||||||
|
|
Loading…
Reference in New Issue