summaryrefslogtreecommitdiff
path: root/src/cpu/amd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/amd')
-rw-r--r--src/cpu/amd/family_10h-family_15h/init_cpus.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cpu/amd/family_10h-family_15h/init_cpus.c b/src/cpu/amd/family_10h-family_15h/init_cpus.c
index e2a1bf3688..c1ff24042d 100644
--- a/src/cpu/amd/family_10h-family_15h/init_cpus.c
+++ b/src/cpu/amd/family_10h-family_15h/init_cpus.c
@@ -987,6 +987,7 @@ void cpuSetAMDMSR(uint8_t node_id)
u32 platform;
uint64_t revision;
uint8_t enable_c_states;
+ uint8_t enable_cpb;
printk(BIOS_DEBUG, "cpuSetAMDMSR ");
@@ -1078,6 +1079,19 @@ void cpuSetAMDMSR(uint8_t node_id)
enable_c_states = 0;
#endif
+ if (revision & AMD_FAM15_ALL) {
+ enable_cpb = 1;
+ if (get_option(&nvram, "cpu_core_boost") == CB_SUCCESS)
+ enable_cpb = !!nvram;
+
+ if (!enable_cpb) {
+ /* Disable Core Performance Boost */
+ msr = rdmsr(0xc0010015);
+ msr.lo |= (0x1 << 25); /* CpbDis = 1 */
+ wrmsr(0xc0010015, msr);
+ }
+ }
+
printk(BIOS_DEBUG, " done\n");
}