Re: Only one processor detected in 8-Way opteron in 32-bit mode

Keith Mannthey
2005-12-02T22:07:50Z

[-- Attachment #1: Type: text/plain, Size: 708 bytes --]

Welcome to hardware bring up. Ok I looked a little closer at the
story. In x86_64 the only check for valid apic is apicid < MAX_APICS
which make sense to me.

I386 has this concept of version. Where the valid check is diffrent

if (version >= 0x14)
return apicid < 0xff;
else
return apicid < 0xf;

Now the patch is sent before was a litle in haste. Your apic version
is 16. The valid check returns false because apicid is greater that
0xf (0x15). Most likey the bios entry for the apic version is wrong
but I don't know much about that or why it matters.

So what does this all mean. Legacy.....

Give this patch a whirl.

Thanks,
Keith

[-- Attachment #2: apicid.fix --]
[-- Type: application/octet-stream, Size: 348 bytes --]

--- arch/i386/kernel/mpparse.c.orig 2005-12-01 15:20:51.000000000 -0800
+++ arch/i386/kernel/mpparse.c 2005-12-01 15:21:19.000000000 -0800
@@ -112,9 +112,10 @@
#else
static int MP_valid_apicid(int apicid, int version)
{
- if (version >= 0x14)
+/* if (version >= 0x14)
return apicid < 0xff;
else
+*/
return apicid < MAX_APICS;
}
#endif