baytrail: use CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED

On baytrail, it appears that the turbo disable setting is
actually building-block scoped. One can see this on quad
core parts where if enable_turbo() is called only on the
BSP then only cpus 0 and 1 have turbo enabled. Fix this
by calling enable_turbo() on all non-bsp cpus.

BUG=chrome-os-partner:25014
BRANCH=baytrail
TEST=Built and booted rambi. All cpus have bit 38 set to 0
     in msr 0x1a0.

Change-Id: Id493e070c4a70bb236cdbd540d2321731a99aec2
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/182406
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: http://review.coreboot.org/5048
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
This commit is contained in:
Aaron Durbin 2014-01-14 17:34:10 -06:00 committed by Kyösti Mälkki
parent 3f94a74de2
commit 59d1d87c86
2 changed files with 9 additions and 1 deletions

View File

@ -14,6 +14,7 @@ config CPU_SPECIFIC_OPTIONS
select CACHE_MRC_SETTINGS select CACHE_MRC_SETTINGS
select CAR_MIGRATION select CAR_MIGRATION
select COLLECT_TIMESTAMPS select COLLECT_TIMESTAMPS
select CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED
select CPU_MICROCODE_IN_CBFS select CPU_MICROCODE_IN_CBFS
select DYNAMIC_CBMEM select DYNAMIC_CBMEM
select HAVE_MONOTONIC_TIMER select HAVE_MONOTONIC_TIMER

View File

@ -92,7 +92,7 @@ void baytrail_init_cpus(device_t dev)
/* Set package MSRs */ /* Set package MSRs */
reg_script_run(package_msr_script); reg_script_run(package_msr_script);
/* Enable Turbo/Burst Mode */ /* Enable Turbo Mode on BSP and siblings of the BSP's building block. */
enable_turbo(); enable_turbo();
if (mp_init(cpu_bus, &mp_params)) { if (mp_init(cpu_bus, &mp_params)) {
@ -104,6 +104,13 @@ static void baytrail_core_init(device_t cpu)
{ {
printk(BIOS_DEBUG, "Init BayTrail core.\n"); printk(BIOS_DEBUG, "Init BayTrail core.\n");
/* On bay trail the turbo disable bit is actually scoped at building
* block level -- not package. For non-bsp cores that are within a
* building block enable turbo. The cores within the BSP's building
* block will just see it already enabled and move on. */
if (lapicid())
enable_turbo();
/* Set core MSRs */ /* Set core MSRs */
reg_script_run(core_msr_script); reg_script_run(core_msr_script);