On 10/18/12 10:12, Gleb Natapov wrote:
> On Thu, Oct 18, 2012 at 03:38:37AM +0200, Laszlo Ersek wrote:
>> I have no idea why the UEFI-booted kernel tries to initialize the
>> display with Int10h, since that is a (VGA) BIOS interrupt.
> Looks like google knows something about it. Search for "INT 10" here:
> http://www.uefi.org/events/UEFI-Plugfest-WindowsBootEnvironment.pdf
>
> * VGA support still requires INT 10h support
> * Windows Server 2008 supports headless systems with no VGA
I did some digging.
I.
First, let's recall the debug message
FRAMEBUF: DISP bInitPDEV failed - no valid modes
from [1]. Similar source code is (legally) available on the web, see [2].
Apparently it's FRAMEBUF.dll that should work (not VGA.dll), but it finds no
acceptable mode.
II.
The current video modes provided by OVMF's GOP are
(OvmfPkg/QemuVideoDxe/Initialize.c):
///
/// Table of supported video modes
///
QEMU_VIDEO_VIDEO_MODES QemuVideoVideoModes[] = {
// { 640, 480, 8, 60, Crtc_640_480_256_60, Seq_640_480_256_60, 0xe3 },
// { 800, 600, 8, 60, Crtc_800_600_256_60, Seq_800_600_256_60, 0xef },
{ 640, 480, 32, 60, Crtc_640_480_32bpp_60, Seq_640_480_32bpp_60, 0xef
},
{ 800, 600, 32, 60, Crtc_800_600_32bpp_60, Seq_800_600_32bpp_60, 0xef
},
// { 1024, 768, 8, 60, Crtc_1024_768_256_60, Seq_1024_768_256_60, 0xef }
{ 1024, 768, 24, 60, Crtc_1024_768_24bpp_60, Seq_1024_768_24bpp_60, 0xef }
// { 1024, 768, 32, 60, Crtc_1024_768_32bpp_60, Seq_1024_768_32bpp_60,
0xef }
// { 960, 720, 32, 60, Crtc_960_720_32bpp_60, Seq_1024_768_32bpp_60, 0xef }
};
In summary, 640x480x32, 800x600x32, 1024x768x24. According to the link posted
by Gleb above (slide 23), any mode in the four-element set {800x600, 1024x768}
x {24bpp, 32bpp} is acceptable (if BGR). All 24bpp and 32bpp modes exported by
OVMF are BGR, see QemuVideoCompleteModeInfo() and the PIXEL24_* macros.
Therefore according to the presentation above, two modes from the listed three
should work. They don't.
III.
Other documentation exists! Page 5 of [3] says
Either 1024x768 display resolution with 32-bit pixel color
or 800x600 display resolution with 24-bit pixel color.
This narrows the acceptable set from 4 elements down to 2, and those are
exactly not present in the QemuVideoVideoModes array.
Then, slide 9 of [4] restricts it to 1024x768x32 only. (When I tried to
uncomment it in the array, it didn't work -- as I've just learned from Jordan,
the register dumps "Crtc_1024_768_32bpp_60" and "Seq_1024_768_32bpp_60" are not
finished for that mode.)
IV.
Regarding the big picture of after-ExitBootServices() video initialization, see
forum / blog posts [5] [6] [7]. There appears to be a big difference in this
aspect between Windows 7 (~ Windows 2008 R2) and Windows 8. (I assume the
commenter(s) referred to Windows 8 as "Windows.Next" in May/Aug 2011.)
I'll try to see if I can connect to the win2k8r2sp1 guest with "rdesktop", but
I believe we should get the 1024x768x32bpp mode working. ("We" as in "I don't
have the slightest idea" :)) Alternatively, 800x600x24.
Additionally, IIRC Paolo suggested hacking in the VGA BIOS (from SeaBIOS I
think?...) into OVMF as a CSM. I think it might not be co-distributable
(SeaBIOS's licenses appear more restrictive than the 2-clause BSDL), but maybe
worth an experiment. (Of course I don't know how to do that either, and the CSM
spec looks intimidating.)
Thanks!
Laszlo
[1] http://article.gmane.org/gmane.comp.bios.tianocore.devel/763
[2]
http://doxygen.reactos.org/dc/d8b/win32ss_2drivers_2displays_2vga__new_2screen_8c_source.html
[3] http://www.feishare.com/attachments/083_UEFIrequirements.pdf
[4] http://www.uefi.org/learning_center/UPFS11_P4_UEFI_GOP_AMD.pdf
[5]
http://blogs.technet.com/b/askcore/archive/2011/05/31/installing-windows-7-on-uefi-based-computer.aspx#3447148
-- comment from "Răzvan Corneliu C.R. VILT"
[6] http://forums.macrumors.com/showpost.php?p=13255278&postcount=47
[7] http://forums.macrumors.com/showpost.php?p=13331676&postcount=68
------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel