diff options
Diffstat (limited to 'src/northbridge/amd/amdk8/cpu_rev.c')
-rw-r--r-- | src/northbridge/amd/amdk8/cpu_rev.c | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/src/northbridge/amd/amdk8/cpu_rev.c b/src/northbridge/amd/amdk8/cpu_rev.c index 0c4c5f8fbd..15b4cf6318 100644 --- a/src/northbridge/amd/amdk8/cpu_rev.c +++ b/src/northbridge/amd/amdk8/cpu_rev.c @@ -1,30 +1,25 @@ -/* this is a shrunken cpuid. */ - -static unsigned int cpuid(unsigned int op) +#include <arch/cpu.h> +static int is_cpu_rev_a0(void) { - unsigned int ret; - unsigned dummy2,dummy3,dummy4; - - asm volatile ( - "cpuid" - : "=a" (ret), "=b" (dummy2), "=c" (dummy3), "=d" (dummy4) - : "a" (op) - ); - - return ret; + return (cpuid_eax(1) & 0xffef) == 0x0f00; } -static int is_cpu_rev_a0(void) +static int is_cpu_pre_c0(void) { - return (cpuid(1) & 0xffef) == 0x0f00; + return (cpuid_eax(1) & 0xffef) < 0x0f48; } -static int is_cpu_pre_c0(void) +static int is_cpu_c0(void) { - return (cpuid(1) & 0xffef) < 0x0f48; + return (cpuid_eax(1) & 0xffef) == 0x0f48; } static int is_cpu_pre_b3(void) { - return (cpuid(1) & 0xffef) < 0x0f41; + return (cpuid_eax(1) & 0xffef) < 0x0f41; +} + +static int is_cpu_b3(void) +{ + return (cpuid_eax(1) & 0xffef) == 0x0f41; } |