Subject: please test new bioscall code
To: None <port-i386@netbsd.org>
From: Matthias Drochner <M.Drochner@fz-juelich.de>
List: port-i386
Date: 07/07/2002 16:57:27
This is more for the brave.

I've written some code (partly ported from FreeBSD, but it turned out that
the systems differ a lot where it comes to pcbs and so) which can be used
to call real-mode BIOS code through a virtual 8086 machine.
This has a big advantage over the existing bioscall() code which really goes
to real mode: Paging stays in effect, thus memory to be used by the BIOS can
be anywhere, and it also doesn't need identity (PA==VA) mapped memory for
the mode switch trampoline code.

The code is pulled in by a new kernel option "KVM86".

For now, there are two applications, neither one overly exciting:

1. if APM is configured and another new option "APM_USE_KVM86"
   is defined, it will be used for APM BIOS attachment
   (this is just 3 or 4 calls during autoconfiguration)
2. there is a new device node "vesabios at mainbus" which probes
   for a VESA VBE 2.0 BIOS (probe only, not more yet) and prints
   out some information

The goal is to get better console support, in particular higher
resulotion text modes and a Linux-like framebuffer mode.
(doing the hard work in the bootloader was not an option for me)

The BIOS call code needs some testing beyond my limited possibilities.
Whoever feels so, would you please give it a try?
I'm especially interested in CPUs without "VME" because I don't
have one to test with ATM - it is this flag:
cpu0: features 183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR>
___________________________^^^
It would also be interesting whether the flag "KVM86_IOPL3" in
i386/kvm86.c makes a difference.

And I would of course appreciate if a real i386 processor guru looked
over the stuff.

best regards
Matthias