Bootblock does not need a unique boot_cpu()

Detection of a CPU being a BSP CPU is not dependent of the existence
of northbridge and/or southbridge init code in the bootblock.

Even if CONFIG_LOGICAL_CPUS==0, boot_cpu() can get executed on an AP
CPU of a hyper-threading CPU and needs to return actual BSP bit from
MSR.

Change-Id: I9187f954bb357ba1dbd459cfe11cc96cb7567968
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/447
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
This commit is contained in:
Kyösti Mälkki 2011-11-22 19:44:45 +02:00 committed by Patrick Georgi
parent 7519d77f72
commit eafb18be43
2 changed files with 5 additions and 5 deletions

View File

@ -1,9 +1,4 @@
#if CONFIG_LOGICAL_CPUS && \
(defined(CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT) || defined(CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT))
#include <cpu/x86/lapic/boot_cpu.c> #include <cpu/x86/lapic/boot_cpu.c>
#else
#define boot_cpu(x) 1
#endif
#ifdef CONFIG_BOOTBLOCK_CPU_INIT #ifdef CONFIG_BOOTBLOCK_CPU_INIT
#include CONFIG_BOOTBLOCK_CPU_INIT #include CONFIG_BOOTBLOCK_CPU_INIT

View File

@ -1,5 +1,6 @@
#include <cpu/x86/msr.h> #include <cpu/x86/msr.h>
#if CONFIG_SMP
static int boot_cpu(void) static int boot_cpu(void)
{ {
int bsp; int bsp;
@ -8,3 +9,7 @@ static int boot_cpu(void)
bsp = !!(msr.lo & (1 << 8)); bsp = !!(msr.lo & (1 << 8));
return bsp; return bsp;
} }
#else
#define boot_cpu(x) 1
#endif