It only has one cpuid level, therefore it can't report whether it has an APIC. It probably hasn't; assume that. Without this, SeaBIOS would get stuck on qemu -M isapc.
Signed-off-by: Lubomir Rintel lkundrak@v3.sk --- src/smp.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/smp.c b/src/smp.c index f989ec1..38e117e 100644 --- a/src/smp.c +++ b/src/smp.c @@ -72,7 +72,7 @@ smp_probe(void) ASSERT32FLAT(); u32 eax, ebx, ecx, cpuid_features; cpuid(1, &eax, &ebx, &ecx, &cpuid_features); - if (! (cpuid_features & CPUID_APIC)) { + if (eax < 1 || !(cpuid_features & CPUID_APIC)) { // No apic - only the main cpu is present. dprintf(1, "No apic - only the main cpu is present.\n"); CountCPUs= 1;
On Fri, Aug 20, 2010 at 01:37:54PM +0200, Lubomir Rintel wrote:
It only has one cpuid level, therefore it can't report whether it has an APIC. It probably hasn't; assume that. Without this, SeaBIOS would get stuck on qemu -M isapc.
Okay. If there are no further comments I'll commit in the next couple of days.
-Kevin