Well, sort of...
The problem is that all that VGA code is written for 16-bit 8086 machines.
The DEC Alpha solution and the XFree86 solution is to have an 8086
software emulator. (The DEC has an emulator in its ROM.)
But we certainly have looked into that idea -- in fact, I did so in March
of 2000, when the project was 3 months old. We decided that there were
other, more important things and once Ron got the Matrox working we forgot
about VGA init. However, as a vendor you may just want to do the
initialization.
Your four choices are to run the video in a more raw mode (a la Cirrus in
the L440GX+); use a video card that initializes itself (like some Matrox
cards); get the VGA BIOS guys to write a Linux driver (like SiS did); or
switch to 16-bit mode, jump to the video code, and switch back to 32-bit
mode. Each of the first three have been done by some LinuxBIOS developer;
the last is the most general but hardest.
The problems you will face include but are not limited to:
1) Does the VGA BIOS callback the normal BIOS?
2) Does the VGA BIOS do any checksums to ensure it is executing at the
right time?
3) Is 16-bit mode set up well enough so that you can just switch to it?
4) Will switching back to 32-bit mode screw anything up?
However, if you lack quality docs (Cirrus init), quality hardware
(Matrox solution), and quality VGA guys (SiS solution), it may be your
best shot.
If you can get the docs and you just want to setup a few boards, I'd try
to initialize everything on your own and forget about the VGA BIOS.
That's partially because the Cirrus was relatively easy for me set up -- I
just had to twiddle a few bits. If you are lucky, you may just have to
set a bit to turn the card on.
- James
>
> Now I am thinking if it is possible that copy vga bios from vga card to
> dram c0000h - c8000h, and then jump into c0003h of dram, I guess this is a
> simpler way to light vga than using framebuffer, is it right?