Re: VESA non-VGA flag

From: Jia-Shiun Li <jiashiun_at_gmail.com>
Date: Tue, 15 Mar 2005 00:07:09 +0800
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
_at__at_ -652,8 +652,6 _at__at_
 		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",

Received on Tue Mar 15 2005 - 04:42:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:30 UTC