soc/intel/common/cpu: Don't set any TCC settings if offset is 0

Many previous versions of this function would return early if tcc_offset
is 0. This adds that logic back in.

Change-Id: Ibc529520a4e74608cb5d20e5a6e8fc2c727c903c
Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/42879
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Christian Walter <christian.walter@9elements.com>
Reviewed-by: Sumeet R Pawnikar <sumeet.r.pawnikar@intel.com>
This commit is contained in:
Tim Wawrzynczak 2020-06-29 13:06:46 -06:00 committed by Patrick Georgi
parent b389f3aa0b
commit abd3cae588
1 changed files with 6 additions and 1 deletions

View File

@ -260,15 +260,20 @@ void configure_tcc_thermal_target(void)
const config_t *conf = config_of_soc();
msr_t msr;
if (!conf->tcc_offset)
return;
/* Set TCC activation offset */
msr = rdmsr(MSR_PLATFORM_INFO);
if ((msr.lo & BIT(30)) && conf->tcc_offset) {
if ((msr.lo & BIT(30))) {
msr = rdmsr(MSR_TEMPERATURE_TARGET);
msr.lo &= ~(0xf << 24);
msr.lo |= (conf->tcc_offset & 0xf) << 24;
wrmsr(MSR_TEMPERATURE_TARGET, msr);
}
msr = rdmsr(MSR_TEMPERATURE_TARGET);
/* Time Window Tau Bits [6:0] */
msr.lo &= ~0x7f;
msr.lo |= 0xe6; /* setting 100ms thermal time window */