On Mon, Dec 28, 2009 at 1:15 PM, svn@openbios.org wrote:
Author: blueswirl Date: 2009-12-28 11:15:33 +0100 (Mon, 28 Dec 2009) New Revision: 648
Modified: trunk/openbios-devel/arch/sparc64/entry.S trunk/openbios-devel/drivers/pci.c trunk/openbios-devel/drivers/vga_vbe.c Log: Map VGA buffer only during PCI probe
Also pass physical addresses instead of bus addresses to VGA init.
Signed-off-by: Blue Swirl blauwirbel@gmail.com
Modified: trunk/openbios-devel/drivers/vga_vbe.c
--- trunk/openbios-devel/drivers/vga_vbe.c 2009-12-21 09:57:53 UTC (rev 647) +++ trunk/openbios-devel/drivers/vga_vbe.c 2009-12-28 10:15:33 UTC (rev 648) @@ -25,6 +25,7 @@ #include "asm/io.h" #include "libc/vsprintf.h" #include "video_subr.h" +#include "ofmem.h"
/* VGA init. We use the Bochs VESA VBE extensions */ #define VBE_DISPI_INDEX_ID 0x0 @@ -142,7 +143,10 @@ depth = d; linebytes = (width * ((depth + 7) / 8)); } +#ifdef CONFIG_SPARC64
- ofmem_map_page_range(fb, fb, fb_size, 0x36);
#endif +#endif
vga_vbe_set_mode(width, height, depth);
You pass flags so mapping is unlocked, this can cause problems with translations being evicted from tlb table. Do you see any issues? Linux kernel has it's own idea of address translations, and we still do not switch trap handlers so probably framebuffer should be mapped locked into tlb table (mode=0x76)