summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@cvs.openbsd.org>2006-03-16 22:21:40 +0000
committerDimitry Andric <dim@cvs.openbsd.org>2006-03-16 22:21:40 +0000
commit64bb33e6c434ff313ffacdc1987ded2577516df8 (patch)
tree1de5609dca4a9b1c1678f190fc69ae9fd8c2151f
parent85b8cf5538a7c498307157bec72562724661b169 (diff)
Fix for PR 4966: Only disregard bit 27 of MSR_EBL_CR_POWERON for
specific Pentium III models (early stepping 1 Coppermines). "go for it" deraadt@
-rw-r--r--sys/arch/i386/i386/machdep.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/arch/i386/i386/machdep.c b/sys/arch/i386/i386/machdep.c
index d1ec7014405..089ae01ece8 100644
--- a/sys/arch/i386/i386/machdep.c
+++ b/sys/arch/i386/i386/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.347 2006/03/16 02:55:52 dlg Exp $ */
+/* $OpenBSD: machdep.c,v 1.348 2006/03/16 22:21:39 dim Exp $ */
/* $NetBSD: machdep.c,v 1.214 1996/11/10 03:16:17 thorpej Exp $ */
/*-
@@ -250,7 +250,7 @@ struct vm_map *phys_map = NULL;
int kbd_reset;
int p4_model;
-int p3_step;
+int p3_early;
int setperf_prio = 0; /* for concurrent handlers */
void (*delay_func)(int) = i8254_delay;
@@ -1505,7 +1505,7 @@ intel686_cpu_setup(struct cpu_info *ci)
}
#if !defined(SMALL_KERNEL) && defined(I686_CPU)
- p3_step = step;
+ p3_early = (model == 8 && step == 1) ? 1 : 0;
update_cpuspeed = p3_update_cpuspeed;
#endif
}
@@ -2018,7 +2018,7 @@ p3_update_cpuspeed(void)
mult = (msr >> 22) & 0xf;
mult = mult_code[mult];
- if (p3_step > 1)
+ if (!p3_early)
mult += ((msr >> 27) & 0x1) * 40;
pentium_mhz = (bus * mult) / 10;