diff mbox

uvesafb doesn't work with seabios

Message ID 20140512052918.GA2100@morn.localdomain
State New
Headers show

Commit Message

Kevin O'Connor May 12, 2014, 5:29 a.m. UTC
On Sun, May 11, 2014 at 04:19:55PM +0200, Bernhard Walle wrote:
> Am 2014-05-11 14:37, schrieb Kevin O'Connor:
> >On Sun, May 11, 2014 at 01:42:57PM +0200, Bernhard Walle wrote:
> >>Am 10.05.14 17:07, schrieb Kevin O'Connor:
> >>> Also, it looks like uvesafb can call x86emu.  Older versions of x86emu
> >>> are known to not emulate some instructions properly, and it has caused
> >>> problems for SeaVGABIOS.  The most recent version of SeaVGABIOS from
> >>> SeaBIOS git has additional checks for this - can you grab the seabios
> >>> git, set CONFIG_DEBUG_LEVEL to 8, build SeaVGABIOS (set
> >>> CONFIG_VGA_BOCHS), and post the logs from both Linux and QEMU with the
> >>> above options?
> >>
> >>It doesn't change the result (that it doesn't work). It only makes the
> >>kernel failing much faster and of course there's much more debugging
> >>output: http://bwalle.de/tmp/debugoutput (250k).
> >
> >Were there any Linux or userspace messages with the above?
> 
> 
> Yes:
> 
>   uvesafb: Getting VBE info block failed (eax=0x1d2, err=0)
>   uvesafb: vbe_init() failed with -22
>   uvesafb: probe of uvesafb.0 failed with error -22

It does look like the x86emu issue.  You can try applying the
SeaVGABIOS patch below to confirm it.

-Kevin

Comments

Bernhard Walle May 12, 2014, 6:53 p.m. UTC | #1
Am 2014-05-12 07:29, schrieb Kevin O'Connor:
> 
> It does look like the x86emu issue.  You can try applying the
> SeaVGABIOS patch below to confirm it.

The output doesn't appear. But I'm sure that I copied the correct files
because modifications of other strings worked.

Regards,
Bernhard

> 
> -Kevin
> 
> 
> --- a/vgasrc/vgaentry.S
> +++ b/vgasrc/vgaentry.S
> @@ -47,7 +47,14 @@ _rom_header_signature:
> 
>          // Force a fault if found to be running on broken x86emu 
> versions.
>          DECLFUNC x86emu_fault
> +msg:    .ascii "SeaVGABIOS: x86emu leal trap!\n"
>  x86emu_fault:
> +#if CONFIG_DEBUG_IO
> +        movw %cs:DebugOutputPort, %dx
> +        movl $30, %ecx
> +        movl $msg, %esi
> +        rep outsb %cs:(%esi), (%dx)
> +#endif
>  1:      hlt
>          jmp 1b
diff mbox

Patch

--- a/vgasrc/vgaentry.S
+++ b/vgasrc/vgaentry.S
@@ -47,7 +47,14 @@  _rom_header_signature:
 
         // Force a fault if found to be running on broken x86emu versions.
         DECLFUNC x86emu_fault
+msg:    .ascii "SeaVGABIOS: x86emu leal trap!\n"
 x86emu_fault:
+#if CONFIG_DEBUG_IO
+        movw %cs:DebugOutputPort, %dx
+        movl $30, %ecx
+        movl $msg, %esi
+        rep outsb %cs:(%esi), (%dx)
+#endif
 1:      hlt
         jmp 1b