soc/intel/elkhartlake: Update FSP-S PM & Thermal related configs
Further add initial Silicon UPD settings for thermal and power management stuffs. Signed-off-by: Lean Sheng Tan <lean.sheng.tan@intel.com> Change-Id: I04ded059c36f18925b7a74c934fef2566c3db8fa Reviewed-on: https://review.coreboot.org/c/coreboot/+/55335 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
This commit is contained in:
		
				
					committed by
					
						 Werner Zeh
						Werner Zeh
					
				
			
			
				
	
			
			
			
						parent
						
							08938a9be3
						
					
				
				
					commit
					a96be277e1
				
			| @@ -63,6 +63,10 @@ struct soc_intel_elkhartlake_config { | ||||
|  | ||||
| 	/* TCC activation offset */ | ||||
| 	uint32_t tcc_offset; | ||||
| 	uint32_t tcc_offset_clamp; | ||||
|  | ||||
| 	/* Memory Thermal Throttling: Enable - Default (0) / Disable (1) */ | ||||
| 	bool MemoryThermalThrottlingDisable; | ||||
|  | ||||
| 	/* System Agent dynamic frequency support. | ||||
| 	 * When enabled memory will be trained at different frequencies. | ||||
| @@ -366,6 +370,12 @@ struct soc_intel_elkhartlake_config { | ||||
| 	 *  - PM_CFG.SLP_LAN_MIN_ASST_WDTH | ||||
| 	 */ | ||||
| 	uint8_t PchPmPwrCycDur; | ||||
|  | ||||
| 	/* | ||||
| 	 * PCH power button override period. | ||||
| 	 * Values: 0x0 - 4s, 0x1 - 6s, 0x2 - 8s, 0x3 - 10s, 0x4 - 12s, 0x5 - 14s | ||||
| 	 */ | ||||
| 	u8 PchPmPwrBtnOverridePeriod; | ||||
| }; | ||||
|  | ||||
| typedef struct soc_intel_elkhartlake_config config_t; | ||||
|   | ||||
| @@ -22,6 +22,24 @@ | ||||
| /* Native function controls pads termination */ | ||||
| #define GPIO_TERM_NATIVE	0x1F | ||||
|  | ||||
| /* PM related values */ | ||||
| /* Imon offset is defined in 1/1000 increments */ | ||||
| #define IMON_OFFSET	1 | ||||
| /* Policy Imon slope is defined in 1/100 increments */ | ||||
| #define IMON_SLOPE	100 | ||||
| /* Thermal Design Current current limit in 1/8A units */ | ||||
| #define TDC_CURRENT_LIMIT_MAX	112 | ||||
| /* AcLoadline in 1/100 mOhms */ | ||||
| #define AC_LOADLINE_LANE_0_MAX	112 | ||||
| #define AC_LOADLINE_LANE_1_MAX	3 | ||||
| /* DcLoadline in 1/100 mOhms */ | ||||
| #define DC_LOADLINE_LANE_0_MAX	92 | ||||
| #define DC_LOADLINE_LANE_1_MAX	3 | ||||
| /* VR Icc Max limit. 0-255A in 1/4 A units */ | ||||
| #define ICC_LIMIT_MAX	104 | ||||
| /* Core Ratio Limit: For overclocking part: LFM to Fused */ | ||||
| #define CORE_RATIO_LIMIT	0x13 | ||||
|  | ||||
| /* | ||||
|  * Chip config parameter PcieRpL1Substates uses (UPD value + 1) | ||||
|  * because UPD value of 0 for PcieRpL1Substates means disabled for FSP. | ||||
| @@ -261,6 +279,71 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd) | ||||
| 		params->ScsEmmcDdr50Enabled = config->ScsEmmcDdr50Enabled; | ||||
| 	} | ||||
|  | ||||
| 	/* Thermal config */ | ||||
| 	dev = pcidev_path_on_root(SA_DEVFN_DPTF); | ||||
| 	params->Device4Enable = is_dev_enabled(dev); | ||||
| 	params->ProcHotResponse = 0x0;	//Disable PROCHOT response | ||||
| 	/* Thermal sensor (TS) target width */ | ||||
| 	params->DmiTS0TW = 3; | ||||
| 	params->DmiTS1TW = 2; | ||||
| 	params->DmiTS2TW = 1; | ||||
| 	/* Enable memory thermal throttling by default */ | ||||
| 	if (!config->MemoryThermalThrottlingDisable) { | ||||
| 		params->PchMemoryPmsyncEnable[0] = 1; | ||||
| 		params->PchMemoryPmsyncEnable[1] = 1; | ||||
| 		params->PchMemoryC0TransmitEnable[0] = 1; | ||||
| 		params->PchMemoryC0TransmitEnable[1] = 1; | ||||
| 	} | ||||
|  | ||||
| 	/* TccActivationOffset config */ | ||||
| 	params->TccActivationOffset = config->tcc_offset; | ||||
| 	params->TccOffsetClamp = config->tcc_offset_clamp; | ||||
| 	params->TccOffsetLock = 0x1;	//lock Tcc Offset register | ||||
|  | ||||
| 	/* Power management config */ | ||||
| 	params->ImonSlope[0] = IMON_SLOPE; | ||||
| 	params->ImonOffset[0] = IMON_OFFSET; | ||||
| 	params->TdcCurrentLimit[0] = TDC_CURRENT_LIMIT_MAX; | ||||
| 	params->AcLoadline[0] = AC_LOADLINE_LANE_0_MAX; | ||||
| 	params->DcLoadline[0] = DC_LOADLINE_LANE_0_MAX; | ||||
| 	params->AcLoadline[1] = AC_LOADLINE_LANE_1_MAX; | ||||
| 	params->DcLoadline[1] = DC_LOADLINE_LANE_1_MAX; | ||||
| 	params->IccMax[0] = ICC_LIMIT_MAX; | ||||
| 	params->OneCoreRatioLimit = CORE_RATIO_LIMIT; | ||||
| 	params->TwoCoreRatioLimit = CORE_RATIO_LIMIT; | ||||
| 	params->ThreeCoreRatioLimit = CORE_RATIO_LIMIT; | ||||
| 	params->FourCoreRatioLimit = CORE_RATIO_LIMIT; | ||||
| 	params->FiveCoreRatioLimit = CORE_RATIO_LIMIT; | ||||
| 	params->SixCoreRatioLimit = CORE_RATIO_LIMIT; | ||||
| 	params->SevenCoreRatioLimit = CORE_RATIO_LIMIT; | ||||
| 	params->EightCoreRatioLimit = CORE_RATIO_LIMIT; | ||||
| 	params->PsysPmax = 0;	//Set max platform power to auto profile | ||||
| 	params->Custom1TurboActivationRatio = 0; | ||||
| 	params->Custom2TurboActivationRatio = 0; | ||||
| 	params->Custom3TurboActivationRatio = 0; | ||||
| 	params->PchPwrOptEnable = 0x1;	//Enable PCH DMI Power Optimizer | ||||
| 	params->TStates = 0x0;	//Disable T state | ||||
| 	params->PkgCStateLimit = 0x7;	//Set C state limit to C9 | ||||
| 	params->FastPkgCRampDisable[0] = 0x1; | ||||
| 	params->SlowSlewRate[0] = 0x1; | ||||
| 	params->MaxRatio = 0x8;	//Set max P state ratio | ||||
| 	params->PchEspiLgmrEnable = 0; | ||||
| 	params->PchPmPwrBtnOverridePeriod = config->PchPmPwrBtnOverridePeriod; | ||||
| 	params->PchS0ixAutoDemotion = 0; | ||||
| 	params->PmcV1p05PhyExtFetControlEn = 0x1; | ||||
| 	params->PmcV1p05IsExtFetControlEn = 0x1; | ||||
| 	/* FIVR config */ | ||||
| 	params->PchFivrExtV1p05RailEnabledStates = 0x1E; | ||||
| 	params->PchFivrExtV1p05RailSupportedVoltageStates = 0x2; | ||||
| 	params->PchFivrExtVnnRailEnabledStates = 0x1E; | ||||
| 	params->PchFivrExtVnnRailSupportedVoltageStates = 0xE; | ||||
| 	params->PchFivrExtVnnRailSxEnabledStates = 0x1C; | ||||
| 	params->PchFivrVccinAuxLowToHighCurModeVolTranTime = 0x0C; | ||||
| 	params->PchFivrVccinAuxRetToHighCurModeVolTranTime = 0x36; | ||||
| 	params->PchFivrVccinAuxRetToLowCurModeVolTranTime = 0x2B; | ||||
| 	params->PchFivrVccinAuxOffToHighCurModeVolTranTime = 0x0096; | ||||
| 	params->FivrSpreadSpectrum = 0xF; | ||||
|  | ||||
| 	/* Override/Fill FSP Silicon Param for mainboard */ | ||||
| 	mainboard_silicon_init_params(params); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user