VESA non-VGA flag
Jia-Shiun Li
jiashiun at gmail.com
Mon Mar 14 21:42:02 PST 2005
On Thu, 10 Mar 2005 17:01:13 +0800, Jia-Shiun Li <jiashiun at gmail.com> wrote:
> Hi,
>
> These days I was trying to add a splash screen. I used VMWare to test,
> but it cannot init VESA correctly, which is odd since VMWare claimed
> its display to be VESA compliant. I then traced into
> src/sys/i386/isa/vesa.c, found that it was cause by the flag V_NONVGA.
> It will stop initializing if this flag is set, at line 655(v1.50). If
> I comment it out, VESA will work on VMWare and I can happily use my
> splash screen during booting.
>
> I tried to google some info, but still cannot figure out if the
> 'non-VGA' flag really means 'not (IBM)VGA backward-compatible' or 'not
> a display device at all'. But since anything implementing VBE must be
> a display device to make sense, I suppose it to be the former. The
> question is, if the checking of non-VGA flag can be safely removed? I
> do not know if there is any devices depending on it to work correctly.
> To me it seems ok without the checking.
>
According to VBE 3.0 page 26, the non-vga flag means 'not VGA
compatible', so it should not prevent VESA from initializing.
I did not found anyone responsible for this. Søren and Ian could you
take a look at this patch? It makes VESA work on VMWare without
breaking it on other (real)hardwares.
Jia-Shiun.
--- sys/i386/isa/vesa.c.orig Mon Mar 14 23:55:19 2005
+++ sys/i386/isa/vesa.c Mon Mar 14 23:55:42 2005
@@ -652,8 +652,6 @@
printf("VESA: information block\n");
dump_buffer(buf, 64);
}
- if (vesa_adp_info->v_flags & V_NONVGA)
- return 1;
if (vesa_adp_info->v_version < 0x0102) {
printf("VESA: VBE version %d.%d is not supported; "
"version 1.2 or later is required.\n",
-------------- next part --------------
--- sys/i386/isa/vesa.c.orig Mon Mar 14 23:55:19 2005
+++ sys/i386/isa/vesa.c Mon Mar 14 23:55:42 2005
@@ -652,8 +652,6 @@
printf("VESA: information block\n");
dump_buffer(buf, 64);
}
- if (vesa_adp_info->v_flags & V_NONVGA)
- return 1;
if (vesa_adp_info->v_version < 0x0102) {
printf("VESA: VBE version %d.%d is not supported; "
"version 1.2 or later is required.\n",
More information about the freebsd-current
mailing list