Note on FVCool, Apr. 6, 2006. The scheduling procedure is changed in FreeBSD ver.5.xx. The document of ver.1.04 for KT133/A series chipset on FreeBSD ver.4.xx does not work anymore. I am not so sure, but the following changes of functions, cpu_idle_default(), cpu_idle() in /usr/src/sys/i386/i386/machdep.c seems to work. Please try at your own risk! ------------------------------------------------------------------ Here 0xAAAA is the PLVL_2 register address FVCool will tell you when exected with -v and -e options. ------------------------------------------------------------------ static void cpu_idle_default(void) { /* * added for idle-hlt for 82C686 */ __asm __volatile("movl $0xAAAA,%edx"); __asm __volatile("inb %dx,%al"); /* * end of addition */ /* * we must absolutely guarentee that hlt is the * absolute next instruction after sti or we * introduce a timing window. */ __asm __volatile("sti; hlt"); } void cpu_idle(void) { #ifdef SMP if (mp_grab_cpu_hlt()) return; #endif if (cpu_idle_hlt) { /* * added for idle-hlt for 82C686 */ __asm __volatile("movl $0xAAAA,%edx"); __asm __volatile("inb %dx,%al"); /* * end of addition */ disable_intr(); if (sched_runnable()) enable_intr(); else (*cpu_idle_hook)(); /* * added for idle-hlt for 82C686 */ __asm __volatile("movl $0xAAAA,%edx"); __asm __volatile("inb %dx,%al"); /* * end of addition */ } } ------------------------------------------------------------------