[coreboot] VGA driver cursor placement and scrolling fixes
Jordan Crouse
jordan.crouse at amd.com
Sat Mar 22 16:14:36 CET 2008
On 22/03/08 13:31 +0000, Jonathan A. Kollasch wrote:
>
> * Make cursor positioning work by using both halves of the
> VGA cursor position register.
>
> * Have vga_scroll_up() and vga_clear_line() present row/column
> arguments to the VIDEO() macro in the right order.
>
> Signed-off-by: Jonathan A. Kollasch <jakllsch at kollasch.net>
Acked-by: Jordan Crouse <jordan.crouse at amd.com>
> ---
> Index: drivers/vga.c
> ===================================================================
> --- drivers/vga.c (revision 3185)
> +++ drivers/vga.c (working copy)
> @@ -64,7 +64,7 @@
> unsigned int addr;
>
> addr = ((unsigned int)crtc_read(0x0E)) << 8;
> - addr += crtc_read(0x0E);
> + addr += crtc_read(0x0F);
>
> cursorx = addr % WIDTH;
> cursory = addr / WIDTH;
> @@ -93,7 +93,7 @@
>
> addr = cursorx + (WIDTH * cursory);
> crtc_write(addr >> 8, 0x0E);
> - crtc_write(addr, 0x0E);
> + crtc_write(addr, 0x0F);
> }
>
> void vga_cursor_enable(int state)
> @@ -115,7 +115,7 @@
> void vga_clear_line(uint8_t row, uint8_t ch, uint8_t attr)
> {
> int col;
> - uint16_t *ptr = VIDEO(0, row);
> + uint16_t *ptr = VIDEO(row, 0);
>
> for (col = 0; col < WIDTH; col++)
> ptr[col] = ((attr & 0xFF) << 8) | (ch & 0xFF);
> @@ -123,7 +123,7 @@
>
> static void vga_scroll_up(void)
> {
> - uint16_t *src = VIDEO(0, 1);
> + uint16_t *src = VIDEO(1, 0);
> uint16_t *dst = VIDEO(0, 0);
> int i;
>
> --
> coreboot mailing list
> coreboot at coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot
--
Jordan Crouse
Systems Software Development Engineer
Advanced Micro Devices, Inc.
More information about the coreboot
mailing list