[LinuxBIOS] RES: RES: VGA Support on AMD DB800

Jordan Crouse jordan.crouse at amd.com
Wed Jan 2 18:52:14 CET 2008


On 02/01/08 09:32 -0200, Omar Esteves Duarte Filho wrote:
> Thank you for the support and sorry for the inconvenience, Jordan. You are
> right: this is off-topic.

First - please - stop using the term 'VGA'.  VGA is a very specific
standard for video display (http://en.wikipedia.org/wiki/VGA).  There is no
VGA here.  By using the term, you muddle the discussion.

> After some investigation here, i've finally got VGA output (both text
> console and X)! In the end, it seems that there is some problem with the
> lxfb driver. I was trying to set up the VGA with the video boot parameter in
> the kernel command line ("lxfb.mode_option=..."). But, it did not work.
> However, the video output works if "fbset 640x480-60", for instance, was
> previously typed. The fbset tool initializes the VGA with different timing
> parameters. Below is the VGA timing parameters right after the boot process
> is complete and there's still no VGA output:

mode_option is only valid when you load the driver as a module.  When running
with the driver built in, then you specify the mode on the command line,
as detailed in Documentation/fb/modedb.txt.   The correct way to specify the
mode on the command line is as follows:

video=lxfb:<xres>-<yres>-<bpp>@<refresh>

I also noted that you were specifying vga=<number> on your command line - if
the vesa framebuffer is also installed in your kernel (as it would be with
a normal Ubuntu kernel), then that will cause the VESA framebuffer to be 
loaded first (which would of course, fail).  The lxfb would be loaded as
well, but registered as the second framebuffer (if you have your kernel
output from dmesg, you should be able to see this happen).

The fbset you did below would kick the second driver and have it take over
the console from the failed primary driver.

> root at ubuntu-LX800:~# fbset -i
> 
> mode "640x480-60"
>     # D: 25.175 MHz, H: 31.469 kHz, V: 59.940 Hz
>     geometry 640 480 640 480 16
>     timings 39682 48 8 25 2 88 2
>     rgba 5/11,6/5,5/0,0/0
> endmode

This is the mode specified in lxfb_core.c - this is the correct timings for
the Geode for the VESA mode 640x480 at 60.

> Then, fbset is used to adjust the video mode:
> 
> root at ubuntu-LX800:~# fbset 640x480-60
> root at ubuntu-LX800:~#
> 
> 
> After that, VGA output works and timing parameters are checked again:
> 
> root at ubuntu-LX800:~# fbset -i
> 
> mode "640x480-60"
>     # D: 25.175 MHz, H: 31.469 kHz, V: 59.940 Hz
>     geometry 640 480 640 480 16
>     timings 39722 48 16 33 10 96 2
>     rgba 5/11,6/5,5/0,0/0
> endmode

This is the mode that is listed in the file /etc/fb.modes - which is a 
set of generic timings provided by Ubuntu.  Both timings are actually
correct - if you were to run fbset and set the previous timings, they would
work.  What you are seeing is a side effect of a poorly configured
kernel.

Jordan






More information about the coreboot mailing list