x86: Fix cpu detection shift error
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 30 Jun 2016 18:24:54 +0000 (14:24 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 30 Jun 2016 21:04:18 +0000 (17:04 -0400)
That's an ancient bug, from back when this code was in kern/init.c (not
kern/src/init.c either!).

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/arch/x86/cpuinfo.c

index b857ee2..cbd8e21 100644 (file)
@@ -62,7 +62,7 @@ void print_cpuinfo(void)
        max_extd_lvl = eax;
        cpuid(1, 0x0, &eax, &ebx, &ecx, &edx);
        family = ((eax & 0x0FF00000) >> 20) + ((eax & 0x00000F00) >> 8);
        max_extd_lvl = eax;
        cpuid(1, 0x0, &eax, &ebx, &ecx, &edx);
        family = ((eax & 0x0FF00000) >> 20) + ((eax & 0x00000F00) >> 8);
-       model = ((eax & 0x000F0000) >> 12) + ((eax & 0x000000F0) >> 4);
+       model = ((eax & 0x000F0000) >> 16) + ((eax & 0x000000F0) >> 4);
        cprintf("Family: %d\n", family);
        cprintf("Model: %d\n", model);
        cprintf("Stepping: %d\n", eax & 0x0000000F);
        cprintf("Family: %d\n", family);
        cprintf("Model: %d\n", model);
        cprintf("Stepping: %d\n", eax & 0x0000000F);