Bizarre bug...

Matthew Dillon dillon at apollo.backplane.com
Mon Apr 26 16:20:45 PDT 2004


    The system timebase is based on 8254 Timer 2.  It's set to a
    full 65536 repeating cycle.  My guess is that the BIOS call
    used to set the graphics mode is screwing up Timer 2 somehow.

    You could try adding a call to timer_restore() to your kernel.
    This isn't really a fix, but it might narrow the issue down a
    bit.  Try it and lets see what happens.

						-Matt

Index: i386/vm86.c
===================================================================
RCS file: /cvs/src/sys/i386/i386/vm86.c,v
retrieving revision 1.9
diff -u -r1.9 vm86.c
--- i386/vm86.c	3 Nov 2003 22:50:11 -0000	1.9
+++ i386/vm86.c	26 Apr 2004 23:18:33 -0000
@@ -582,6 +582,7 @@
 
 	vmf->vmf_trapno = intnum;
 	error = vm86_bioscall(vmf);
+	timer_restore();
 	crit_exit();
 	return(error);
 }
@@ -614,6 +615,7 @@
 
 	vmf->vmf_trapno = intnum;
 	retval = vm86_bioscall(vmf);
+	timer_restore();
 
 	for (i = 0; i < vmc->npages; i++) {
 		entry = vmc->pmap[i].pte_num;





More information about the Bugs mailing list