On Wed, Oct 26, 2011 at 12:16:32AM +0100, Julian Pidancet wrote:
Hi,
I stumbled across the vgasrc directory in the SeaBIOS git tree which seem to contain the source of a VGA Bios. I havn't found any related documentation nor announcements regarding this, and there is no Makefiles or scripts to build it. That's why I'm enquiring here about the status of this project.
You can build the vgabios by running:
make out/vgabios.bin
There was a brief note on the vga code some time back:
http://www.coreboot.org/pipermail/coreboot/2009-May/047775.html
I've got several questions:
- What is the general status of this project ?
I started converting the VGA bios from the "lgpl vga bios" project ( http://savannah.nongnu.org/projects/vgabios/ ) a couple of years ago. I converted the base code, but did not have time to convert the "VBE" or the "cirrus" code.
There was also an effort a few years back to get the code running on real hardware that had some success.
- Is this code intended to be executed in a 32bit environment by
transitionning from 16bit to 32bit mode for each BIOS call as SeaBIOS already does ?
The current seabios vgabios code runs exclusively in 16bit mode. (Note, SeaBIOS also has some calls handled entirely in 16bit mode as well.)
- Is this code able to run independantly from SeaBIOS ?
It should - but I've never tested it that way.
- How can I build the sources ?
make out/vgabios.bin
I am currently working on a emulated graphic adapter for Xen and I would like to implement a VBE driver for it. This VGA BIOS seems to be a good base for that kind of work. Would that be possible ?
It should work. Ideally, someone would complete the port of the "lgpl vgabios". This involves translating the remaining 16bit assembler to C code and then doing lots of testing on the result.
-Kevin
On Wed, Oct 26, 2011 at 1:26 AM, Kevin O'Connor kevin@koconnor.net wrote:
You can build the vgabios by running:
make out/vgabios.bin
Great, that was easy :)
I started converting the VGA bios from the "lgpl vga bios" project ( http://savannah.nongnu.org/projects/vgabios/ ) a couple of years ago. I converted the base code, but did not have time to convert the "VBE" or the "cirrus" code.
Since my plan requires some VBE support code anyway, I guess I would have to convert it as a preliminary task, right ?
It should work. Ideally, someone would complete the port of the "lgpl vgabios". This involves translating the remaining 16bit assembler to C code and then doing lots of testing on the result.
I havn't tried to run the ROM yet. Could you be more precise about what works (or what is supposed to be working), what's not, and what exactly remains to be translated ? I'd like to make an idea of the amount of work required to have a ROM equivalent to vgabios.
Thanks !
Hi,
I started converting the VGA bios from the "lgpl vga bios" project ( http://savannah.nongnu.org/projects/vgabios/ ) a couple of years ago. I converted the base code, but did not have time to convert the "VBE" or the "cirrus" code.
qemu uses the lgpl vga bios too, slightly modified version, git tree is at git://git.qemu.org/vgabios.git
I am currently working on a emulated graphic adapter for Xen and I would like to implement a VBE driver for it. This VGA BIOS seems to be a good base for that kind of work. Would that be possible ?
It should work. Ideally, someone would complete the port of the "lgpl vgabios". This involves translating the remaining 16bit assembler to C code and then doing lots of testing on the result.
Just curious: What kind of graphic adapter do you plan to create?
The vgabios+qemu have two different ways to handle VBE support: One is the cirrus emulation, where the vgabios programms the cirrus like real hardware. The other one is the bochs vbe support. That is basically a side channel which allows the bios to program video modes in a very simple way using special I/O ports. All non-cirrus vga cards emulated by qemu (std, vmware, qxl) support that.
Supporting the bochs vbe interface for one more model is just a matter of adding a few lines with the PCI IDs to the vgabios.git Makefile. If you don't want or don't can go this route it is most likely easier to go with the C version in the seabios.git tree than touching the vgabios.git assembly code.
HTH, Gerd