Skip to content

Commit

Permalink
cpu/amd/fam10h-fam15h: Honor CMOS option to disable CPB (core boost)
Browse files Browse the repository at this point in the history
On certain systems and CPUs Core Performance Boost (CPB) may cause
sporadic system lockups.  This issue is also somewhat known on the
various proprietary BIOSes, therefore it seems to be a hardware
incompatibility when present.

Allow the user to disable CBP if needed.

Change-Id: Id6395d067d48963f6c084ad0bf79e23419af24d8
Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
Reviewed-on: https://review.coreboot.org/13172
Tested-by: build bot (Jenkins)
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
  • Loading branch information
madscientist159 authored and Martin Roth committed Feb 5, 2016
1 parent fec8872 commit 4e543d3
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/cpu/amd/family_10h-family_15h/init_cpus.c
Expand Up @@ -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 ");

Expand Down Expand Up @@ -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");
}

Expand Down

0 comments on commit 4e543d3

Please sign in to comment.