Now we need to bother Ollie, he is our real vga expert :-)
Ollie, how should we do this. I have ideas, but I want to hear your
ideas, they will be better than mine.
ron
Marcelo Tosatti wrote:
(switching to olpc-devel)
On Mon, Aug 14, 2006 at 01:14:04PM -0600, Jordan Crouse wrote:
On 14/08/06 14:49 -0400, David Zeuthen wrote:
since VGA probing must be disabled in OLPC's kernel.
Unfortunately, as far as I could gather, there exists no native
framebuffer driver for the emulated Cirrus CLGD 5446 PCI VGA device.
How about disabling vga probing only if we know we are on the OLPC
hardware? Surely this must be fixable...
VGA probing happens pretty darn early in the boot process, so we would
probably have to communicate the existence of the OLPC hardware from the
BIOS through one of the usual methods.
The reasoning behind the patch was that we were purposely ignoring VGA
all together and I wanted to eliminate the possibility that random bits would
be returned to the probing function which may or may not cause the code to
do stupid things. Far better, I reasoned, to just ignore the VGA stuff
all together (plus it saved us a bit of space).
We could probably avoid this patch all together if the kernel gurus agree
that nothing bad would happen if we left it in, or if we did the extra work
to return sane values in LinuxBIOS.
Ronald,
The aim is to kill the CONFIG_VGA_NOPROBE option which was added by
Jordan for safety reasons (see comments above).
For that to happen, it must be certain that LinuxBIOS returns
sane values for the following Linux VGA detection routines, at
arch/i386/kernel/video.S:
# This is the main entry point called by setup.S
# %ds *must* be pointing to the bootsector
video: pushw %ds # We use different segments
pushw %ds # FS contains original DS
popw %fs
pushw %cs # DS is equal to CS
popw %ds
pushw %cs # ES is equal to CS
popw %es
xorw %ax, %ax
movw %ax, %gs # GS is zero
cld
call basic_detect # Basic adapter type testing (EGA/VGA/MDA/CGA)
#ifdef CONFIG_VIDEO_SELECT
movw %fs:(0x01fa), %ax # User selected video mode
cmpw $ASK_VGA, %ax # Bring up the menu
jz vid2
call mode_set # Set the mode
jc vid1
leaw badmdt, %si # Invalid mode ID
call prtstr
vid2: call mode_menu
vid1:
#ifdef CONFIG_VIDEO_RETAIN
call restore_screen # Restore screen contents
#endif /* CONFIG_VIDEO_RETAIN */
call store_edid
#endif /* CONFIG_VIDEO_SELECT */
call mode_params # Store mode parameters
popw %ds # Restore original DS
ret
More especifically "basic_detect" and "mode_params".
Thoughts/comments?
_______________________________________________
Devel mailing list
[email protected]
http://mailman.laptop.org/mailman/listinfo/devel