Hi,
I'm interested in participating in the Genode project as GSoC student,
specifically the UEFI framebuffer task, so I am writing to you to
briefly introduce myself and discuss the project idea. I am currently a
student of Computer Engineering (MSc) at Ilmenau University of
Technology in Germany in my second master semester. I've chosen
computer engineering over computer science out of interest for low-
level topics, which I think fits nicely with Genode. I worked on a toy
x86 operating system with a friend some years ago, which was a good
learning experience. It naturally did not go very far, but it did at
least have basic multitasking and virtual memory :-)
So, about the UEFI framebuffer proposal: Is the overall goal to have
Genode/Nova running as bare UEFI application (without any OS Loader) or
to have it loaded by GRUB (or similar) but not rely on outdated BIOS
features (such as VBE) any more? Or support both like e.g. the Linux
kernel does?
This heavily influences the options available for framebuffer output,
since the UEFI GOP (Graphics Output Protocol) that I assume you are
referring to as one of the alternative/modern ways to access the
framebuffer is only available as UEFI boot service. When being booted
from an OS loader, usually only UEFI run-time services are available.
In that case, the OS loader has to convey some information (mainly
memory address, width/stride, height, depth) about the linear GOP
framebuffer that the loader (or the firmware, for that matter)
initialized to the kernel. multiboot2 does this for example with the
framebuffer boot info tag. So to use this it would be sufficient to
write a generic framebuffer driver operating on that information that
is not specific to UEFI at all. It could probably also use the VBE
framebuffer provided the OS loader initialized it. The "problem" with
this is that it is probably not enough work to justify a 3-month GSoC
proposal.
I hope that the questions at least touch the right topics but do feel
free to say so if you had something different in mind altogether.
Best regards,
Philipp