aboutsummaryrefslogtreecommitdiff
path: root/src/northbridge/amd/amdk8/cpu_rev.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/northbridge/amd/amdk8/cpu_rev.c')
-rw-r--r--src/northbridge/amd/amdk8/cpu_rev.c31
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;
}