[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] QEMU + -std-vga + XFree86
From: |
Kyle Hubert |
Subject: |
Re: [Qemu-devel] QEMU + -std-vga + XFree86 |
Date: |
Mon, 26 Mar 2007 01:32:49 -0700 |
no obvious problem in the xf86config file.
when all fails, use the framebuffer :) and Xfbdev (fbdev driver instead
of vesa)
The framebuffer seems to miss every other vertical scan line. I'm not
sure if I make sense, but the video wraps around the screen onto
itself vertically. Thus rendering half of it on top (with vertical
black lines every other pixel)
you might need a patch called vesafb-tng to reach such size.
I haven't tried successfully though. Appending the proper
parameters -append "video=vesafb:address@hidden", I
basically reach at most 1280x1024.
I tried using the newer video appendage and it didn't seem to work. I
had to use the older vga=. I believe you are talking about the kernel
boot param, yes?
How about this for more information. The XFree86 VBE extension does
the following code:
pInt->ax = 0x4F00;
pInt->es = SEG_ADDR(RealOff);
pInt->di = SEG_OFF(RealOff);
pInt->num = 0x10;
xf86ExecX86int10(pInt);
Resulting in:
TotalMem = B_O16(vbe->TotalMem);
/* Some BIOS'es are off by one */
TotalMem += TotalMem & 1U;
xf86DrvMsgVerb(screen, X_INFO, 3, "VESA VBE Total Mem: %li kB\n",
TotalMem * 64);
Which is annoying it ignores the X config's manual VideoRam in the
device section.
Perhaps the vgabios doesn't correctly implement this interrupt?
Looking in the 0.6a release of vgabios, you see in vbe.c:
// VBE Total Memory (in 64b blocks)
vbe_info_block.TotalMemory = VBE_TOTAL_VIDEO_MEMORY_DIV_64K;
So, it's intended to return correctly. Yet the XFree86 driver reports
a zero return.
Perhaps the vgabios.bin coming with QEMU is incorrect? I don't see
anything in vgabios.diff which suggests this code was changed.
-Kyle