[coreboot] [Patch] Native VGA support.
Luc Verhaegen
libv at skynet.be
Wed May 27 18:53:49 CEST 2009
On Tue, May 26, 2009 at 03:02:08PM +0200, Luc Verhaegen wrote:
> Since i have some spare time on my hands now (;)) and because ruik
> tickled me, i dusted off some native VGA code i had sitting around since
> 2007.
>
> This is only part of the solution, as the complete thing adds full
> native vga textmodeset support for the VIA CLE266. But i am still trying
> to track down an issue there.
>
> Part of the explanation of this patch is of course in the diff header,
> so read that first, then read on here.
>
> Issue: kernel calls int10 set video mode, and (unless provided by
> something else) consequently assumes that since this hook isn't
> implemented it must be talking to a CGA device. So a message appears
> that the vt is a CGA 80x25, and the character height is assumed to be 8.
> The real character height is 16 though, but the only effect is that you
> have the cursor floating halfway the character, everything else is just
> fine.
>
> Usage: Here is a snippet of the code in my
> northbridge/via/vt8623/unichrome.c .init hook:
>
> +#if CONFIG_VGA == 1
> + /* Now set up the VGA console */
> + vga_io_init(); /* Enable full IO access */
> +
> + unichrome_vga_init(dev);
> +
> + vga_textmode_init();
> +
> +#if CONFIG_CONSOLE_VGA == 1
> + vga_console_init();
> +#endif
> +
> + printk_info("UniChrome VGA Textmode initialized.\n");
> +
> +#if CONFIG_CONSOLE_VGA == 0
> + /* if we don't have console, at least print something... */
> + vga_line_write(0, "UniChrome VGA Textmode initialized.");
> +#endif
> +
> +#endif /* CONFIG_VGA */
>
> TODO's in the vga console code will be dealt with. Right now i want to
> reduce my diff and make the whole more manageable.
>
> Luc Verhaegen.
> Implement native VGA Support.
>
> This code brings a rather complete set of VGA IO routines for whoever wants it.
> These consist of the by now familiar read/write/mask sets. Due to the crazy
> nature of VGA, an ancient standard with bits all over the place, it makes no
> sense to define individual registers. You need a vga register spec at hand if
> you want to do anything anyway. These IO routines are always exposed.
>
> It also provides code to natively set up a 640x400 VGA textmode with an 8x16
> font. The native VGA mode code is behind the OPTION_VGA option, as the font
> really adds to the size of the compiled/compressed rom. The font is the one
> also present in the linux kernel, but this file is unlicensed. Another copy of
> this is also present in coreboot in the deprecated console/btext code.
>
> The vga console code has been cleaned up, but it still has some TODO's left
> open, but that's for when i finally have found the remaining issue with the
> epia-m. Right now, it is important to get parts of my work out already and to
> make the remainder managable again.
>
> Signed-off-by: Luc Verhaegen <libv at skynet.be>
No takers?
Luc Verhaegen.
More information about the coreboot
mailing list