cpu/intel/common: Fix typecasting issue

The patch fixes the typecasting issue, that is conversion from 'int' to
'unsigned long long int'. This changes value from '0x8000 0000' to
'0xFFFF FFFF 8000 0000'.

During unit testing, the argument is getting changed to an unexpected
number which is resulting to an exception when IA32_HWP_REQUEST MSR is
updated. In this update, the MSR's reserved bits are getting updated, so
this causes exception.

TEST= Verified the code on the Gimble.
No exception is seen after the fix.

Signed-off-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
Change-Id: I35d382c792b9df260381b7696f3bbff43d6c4dc2
Reviewed-on: https://review.coreboot.org/c/coreboot/+/68899
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Sridhar Siricilla 2022-10-26 16:18:35 +05:30 committed by Felix Held
parent 75a4a6a40e
commit 6552b99fc9
1 changed files with 1 additions and 1 deletions

View File

@ -225,5 +225,5 @@ void enable_energy_perf_pref(void)
void set_energy_perf_pref(u8 pref)
{
msr_unset_and_set(IA32_HWP_REQUEST, IA32_HWP_REQUEST_EPP_MASK,
pref << IA32_HWP_REQUEST_EPP_SHIFT);
(uint64_t)pref << IA32_HWP_REQUEST_EPP_SHIFT);
}