On Jan 7, 2015, at 9:43 AM, Gerd Hoffmann wrote: > Hi, > >> However, you should specify it whatever the host endianness and the host >> OS is. If this is not the case, you're just exchanging a bug with another. >> >> If something >> >> a) works with Linux host but not with Mac OS X host >> >> b) and works with Linux guest but not with Mac OS X guest >> >> the only logical explanation is that you have more than one bug, and >> they somehow cancel each other. > > It isn't that simple I think. Linux and MacOS X using different video > modes could also have this effect. Also there are a number of ways > linux can drive the video card, depending on the kernel version. > kernels 3.14+ have a drm driver for the qemu stdvga, which runs the card > with 32bpp (if enabled). On older kernels the only option is offb, > which IIRC by default runs with 8bpp modes. Also offb has quirks to set > the palette registers on the qemu stdvga. > > So, one interesting question is how MacOS X drives the video card? Just > using what openfirmware has initialized? Which video mode?
That is an intriguing idea. What if the problem is with openbios? I wonder if it is as simple as settings a property in a node. > > Turning on DEBUG_VGA in vga.c should help shed a light on what the guest > is doing and which video mode is active. I turned on all debug options in vga.c. Here is the output: VGA: write addr=0x03c0 data=0x00 VBE: write index=0x4 val=0x0 VBE: write index=0x8 val=0x0 VBE: write index=0x9 val=0x0 VBE: write index=0x1 val=0x320 VBE: write index=0x2 val=0x258 VBE: write index=0x3 val=0x20 VBE: write index=0x4 val=0x1 VGA: write addr=0x03c0 data=0x00 VGA: write addr=0x03c0 data=0x20 VGA: Using shared surface for depth=32 swap=1 VGA: write addr=0x03c8 data=0x00 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c8 data=0x01 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c8 data=0x02 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c8 data=0x03 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c9 data=0x00 VGA: write addr=0x03c8 data=0x04 VGA: write addr=0x03c9 data=0x01 VGA: write addr=0x03c9 data=0x01 VGA: write addr=0x03c9 data=0x01 VGA: write addr=0x03c8 data=0x05 VGA: write addr=0x03c9 data=0x01 VGA: write addr=0x03c9 data=0x01 VGA: write addr=0x03c9 data=0x01 VGA: write addr=0x03c8 data=0x06 > > Also: what UI is in use? cocoa? gtk? sdl? Has using another ui > (assuming it is available on macosx hosts) any effect? Cocoa is what I am using. There are currently no other UI's available on Mac OS X.