* 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@kollasch.net
---
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@kollasch.net
Acked-by: Jordan Crouse jordan.crouse@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@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
On 22/03/08 09:14 -0600, Jordan Crouse wrote:
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@kollasch.net
Acked-by: Jordan Crouse jordan.crouse@amd.com
r3186. Thanks.
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@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
-- Jordan Crouse Systems Software Development Engineer Advanced Micro Devices, Inc.