On 10/17/12 15:11, Laszlo Ersek wrote:

> I did see a lot of binary stuff written to the serial console. I
> expected to see textual debug messages, but apparently the /bootdebug &
> /debug flags above allow a remote windbg to attach instead, and it was
> too late last night to get even windbg.

I installed windbg in the working (SeaBIOS-firmware) win2k8r2sp1 VM, and
connected it with the OVMF-firmware win2k8r2sp1 VM. The latter was
running the installer whose bcd has been modified with "/debug" and
"/dbgsettings serial". For the connection between the two guests used
"serial over unix domain socket", not TCP, but otherwise it looked
more-or-less like described in
<http://www.linux-kvm.org/page/WindowsGuestDrivers/GuestDebugging>.

The debugger-debuggee handshake took extremely long each time. Anyway,
with either "cirrus" or "vga" in the debuggee (= the OVMF-firmware
win2k8r2sp1 installer), this is what the debugger displayed, before the
debuggee spiralled into the dead loop ("gave up"):

    ModLoad: fffff960`006a0000 fffff960`006ab000   TSDDD.dll
    ModLoad: fffff960`008d0000 fffff960`008da000   vga.dll
    ModLoad: fffff960`009b0000 fffff960`009ba000   framebuf.dll
    ModLoad: fffff960`008a0000 fffff960`008aa000   vga.dll
    ModLoad: fffff960`00990000 fffff960`0099a000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface
    ModLoad: fffff960`009c0000 fffff960`009ca000   framebuf.dll
    FRAMEBUF: DISP bInitPDEV failed - no valid modes
    FRAMEBUF: DISP DrvEnablePDEV failed
    ModLoad: fffff960`00920000 fffff960`0092a000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface
    ModLoad: fffff960`00950000 fffff960`0095a000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface
    ModLoad: fffff960`009e0000 fffff960`009ea000   framebuf.dll
    FRAMEBUF: DISP bInitPDEV failed - no valid modes
    FRAMEBUF: DISP DrvEnablePDEV failed
    ModLoad: fffff960`00980000 fffff960`0098a000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface
    ModLoad: fffff960`00980000 fffff960`0098a000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface
    ModLoad: fffff960`00860000 fffff960`0086a000   framebuf.dll
    FRAMEBUF: DISP bInitPDEV failed - no valid modes
    FRAMEBUF: DISP DrvEnablePDEV failed
    ModLoad: fffff960`008f0000 fffff960`008fa000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface
    ModLoad: fffff960`00910000 fffff960`0091a000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface
    ModLoad: fffff960`00930000 fffff960`0093a000   framebuf.dll
    FRAMEBUF: DISP bInitPDEV failed - no valid modes
    FRAMEBUF: DISP DrvEnablePDEV failed
    ModLoad: fffff960`00830000 fffff960`0083a000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface
    ModLoad: fffff960`008e0000 fffff960`008ea000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface
    ModLoad: fffff960`00920000 fffff960`0092a000   framebuf.dll
    FRAMEBUF: DISP bInitPDEV failed - no valid modes
    FRAMEBUF: DISP DrvEnablePDEV failed
    ModLoad: fffff960`00990000 fffff960`0099a000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface
    ModLoad: fffff960`008e0000 fffff960`008ea000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface
    ModLoad: fffff960`009b0000 fffff960`009ba000   framebuf.dll
    FRAMEBUF: DISP bInitPDEV failed - no valid modes
    FRAMEBUF: DISP DrvEnablePDEV failed
    ModLoad: fffff960`008a0000 fffff960`008aa000   vga.dll
    VIDEOPRT: Int10: Int 10 failed
    Vga risc: bEnableHardware - Set current mode
    Vga risc: Failed bEnableHardware
    Vga risc: Failed DrvEnableSurface

I have no idea why the UEFI-booted kernel tries to initialize the
display with Int10h, since that is a (VGA) BIOS interrupt. I can
understand why it works with SeaBIOS, but when booted on an UEFI
platform, the kernel should either use the EUFI GOP (although I presume
it'd occur beyond ExitBootServices()), or load its own video driver and
massage the hardware directly. Shouldn't it?

There may be no caller/callee relationship between framebuf.dll and
vga.dll (they could be alternatives). vga.dll might insist on Int10,
while framebuf.dll might simply not recognize either the emulated vga or
the cirrus card...

Thanks,
Laszlo

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to