Hi,
astrocrep wrote:And it comes back true then you have LFB... apparently, I do not... however, I could have SWORN Qemu support Full VBE 2.0...
It's possible to fully comply with the VBE 2.0 specification without supporting optional features....
astrocrep wrote:and nothing seems right, or that I would expect. I want to make sure I have the right value to bring into pmode.
I'd assume this line is the right one:
Code: Select all
printf("ModeInfoBlock.PhysBasePtr: %u\r\n" , ModeInfoBlock.PhysBasePtr);
What does it display?
I'd assume a correct value would look something like 3758096384 (or 0xE0000000 in hex), or 3556769792 (or 0xD4000000 in hex). To be honest, all addresses look strange to me when they're displayed as decimal numbers....
Also, if there's another OS on the computer you might be able to use it to find the address to expect - for example (for Windows) have a look at the memory ranges in used by the video card via. the "Device Manager".
For Linux you could see what the MTRRs are programmed for (e.g. on my system "cat /proc/mtrr" shows a 4 MB area at 0xFA000000 that is using the "write-combining" memory type - almost guaranteed to be the video card's).
On the same system typing in "lspci -v" lists the following information for the video card:
Code: Select all
00:02.0 VGA compatible controller: ATI Technologies Inc 3D Rage IIC 215IIC [Mach64 GT IIC] (rev 7a) (prog-if 00 [VGA])
Subsystem: Intel Corporation Unknown device 4756
Flags: bus master, stepping, medium devsel, latency 66, IRQ 19
Memory at fa000000 (32-bit, prefetchable) [size=16M]
I/O ports at 1000 [size=256]
Memory at f9000000 (32-bit, non-prefetchable) [size=4K]
[virtual] Expansion ROM at 30040000 [disabled] [size=128K]
Capabilities: [5c] Power Management version 1
Here I would assume the prefetchable memory at 0xFA000000 is display memory (where the LFB would be), while the non-prefetchable area at 0xF9000000 is likely to contain memory mapped control registers used for hardware acceleration or something.
Cheers,
Brendan