For KT133/KX133 (VT8363 etc) one has to put IO port read instruction
("inb") from south the bridge 82C686.  This is done just before the CPU
hlt instruction in the idle loop.  The kernel code of this part
in FreeBSD is in

       /usr/src/sys/i386/i386/swtch.s

a patch is something like
------------------------------------------------------------------
--- swtch.s	Sat Dec  8 09:04:14 2001
+++ swtch.s.pcu2	Wed Jul 10 02:29:09 2002
@@ -249,6 +249,8 @@
 	call	_vm_page_zero_idle
 	testl	%eax, %eax
 	jnz	idle_loop
+	movl	$0xE414, %edx
+	inb	%dx, %al
 	call	*_hlt_vector			/* wait for interrupt */
 	jmp	idle_loop
------------------------------------------------------------------

here 0xE414 is a port of the 686 south bridge, and means put the CPU
into Level 2.  The address 0xE400 is a base address given by
the south bridge depending on each motherboard, and the offset
is always 0x14.  This address, 0xE414, of 686 south birdge can be
obtained by running "fvcool" with -v (verbose) option for each
motherboard as something like this:

  # fvcool -v
  # VIA KT133/A/KX133 found.
  #  Change Reg0x52 0xEB --> 0xEB
  # VT82C686/A/B(ACPI) found.
  #  PLVL_2 Reg Address:0xE414
                        ^^^^^^
You have to replace the address in the example above.
