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:
parent
7519d77f72
commit
eafb18be43
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue