Yoshinori K. Okuji wrote: >> First one is that there should be common virtual terminal for all arch's >> and then separate graphics drivers that will do the actual drawing. In >> this patch this is all implemented in one module and it is not as pretty >> as it could be. > > Another way is to emulate VBE on other architectures... Actually, some > firmware (such as CFE) follows this way (e.g. CFE emulates PC's VGA BIOS).
I think that we still need to make modifications to interfaces, so we have easy to use functions for "visual effects", like different blitting operators. If these interface functions are good enough, there should not be any need to emulate anything. Of course one can use VBE video driver as basis for other video drivers. I can try to draft out features that I think is needed and then we can see what is still missing and when it is good enough then implement it. >> Second one is that this patch uses VGA BIOS fonts to draw characters and >> it might cause some problems in some cards. > > You should use the font manager to render characters, like the VGA terminal. > Getting fonts from the BIOS is the last resort. It's identical on that aspect to VGA module. But VBE 3.0 standard allows to have modes without text output support, so this could indicate that font's are not available in ROM for every implementation. Even though we are using our own drawing functions there might be some cases where that font data is invalid. VGA module uses Unicode values above 128 from font manager and below that it uses BIOS fonts. If our font manager provides always USASCII fonts, then we might drop whole VGA font support. >> Third one is that there are some testing functionality (vbe_test, >> vbe_list_modes) in same module, what would be best place to move those? > > I think they should be in the directory commands. These may be useful even > when the user does not use a framebuffer terminal, because Multiboot > Specification also requires VBE support. Hmm... For me this indeed looks like that there has to be different vbe module to be loaded that provides auto probing of controller data. Perhaps some of this should even reside in the kernel for the i386? What do you think if I create kern/i386/pc/vbe.c that contains following from the patch: // functions grub_vbe_probe grub_vbe_set_mode grub_vbe_get_mode grub_vbe_get_mode_info // global variables struct grub_vbe_info_block grub_vbe_controller_info; struct grub_vbe_mode_info_block grub_vbe_active_mode_info; And perhaps some others if there is a need. Rest of the functionality could probably should be in terminal or to separate video driver. >> Now how to get started on testing: >> - insmod vesafb >> - Use vbe_list_modes to find mode number (eg. 0x111) that you want to use. >> - set vbe_mode varible ('set vbe_mode=0x111') >> >> To test mode: >> - vbe_test >> >> To use it in terminal: >> - insmod terminal >> - terminal vesafb > > Thank you for your description. Can we have your code in the CVS? It's easier > to test, once it is merged, because we do not have to care about conflicts. Once those couple of changes are done, I can commit it to CVS. Thanks, Vesa Jääskeläinen _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel