[SeaBIOS] [PATCH 08/15] Fix finding VESA mode
Christian Gmeiner
christian.gmeiner at gmail.com
Mon Sep 3 18:12:34 CEST 2012
2012/9/3 Kevin O'Connor <kevin at koconnor.net>:
> On Sat, Sep 01, 2012 at 05:12:59PM +0200, Christian Gmeiner wrote:
>> With the current code the following happens:
>>
>> VBE mode info request: 4101
>> VBE mode 4101 not found
>> get_mode failed.
>>
>> Looking at the provided mode (cx register) only bits 8-0
>> define the video mode number. I am not sure if the current
>> code ever worked.
>>
>> Signed-off-by: Christian Gmeiner <christian.gmeiner at gmail.com>
>> ---
>> vgasrc/vbe.c | 17 ++++++++++++++++-
>> 1 file changed, 16 insertions(+), 1 deletion(-)
>>
>> diff --git a/vgasrc/vbe.c b/vgasrc/vbe.c
>> index 227a244..af72324 100644
>> --- a/vgasrc/vbe.c
>> +++ b/vgasrc/vbe.c
>> @@ -72,9 +72,24 @@ vbe_104f01(struct bregs *regs)
>> struct vbe_mode_info *info = (void*)(regs->di+0);
>> u16 mode = regs->cx;
>>
>> + /*
>> + * Bitfields for VESA/VBE video mode number:
>> + *
>> + * Bit(s) Description (Table 04082)
>> + * 15 preserve display memory on mode change
>> + * 14 (VBE v2.0+) use linear (flat) frame buffer
>> + * 13 (VBE/AF 1.0P) VBE/AF initializes accelerator hardware
>> + * 12 reserved for VBE/AF
>> + * 11 (VBE v3.0) user user-specified CRTC refresh rate values
>> + * 10-9 reserved for future expansion
>> + * 8-0 video mode number (0xxh are non-VESA modes, 1xxh are VESA-defined)
>> + *
>> + * see http://www.ctyme.com/intr/rb-0274.htm
>> + */
>
> This is true for the call to set mode (vbe_104f02), but the spec does
> not say this for the get mode info call (104f01). It would be odd to
> pass in these additional bits when the caller just wants to get info
> on the given mode.
But if I want more information's about mode 0x101 with linear
framebuffer support - thats
the only way to get it. Also this is triggered by src/bootsplash.c so
it seems to be a valid
use-case.
Does this mean you will not merge it?
---
Christian Gmeiner, MSc
More information about the SeaBIOS
mailing list