From df899527e67c6c02fd317eeae25a9e7d7f6b3e8a Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Sat, 19 Apr 2025 16:36:51 -0400 Subject: UEFI and republicans --- kernel/drivers/gpu/gop.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 kernel/drivers/gpu/gop.c (limited to 'kernel/drivers/gpu/gop.c') diff --git a/kernel/drivers/gpu/gop.c b/kernel/drivers/gpu/gop.c new file mode 100644 index 0000000..47da952 --- /dev/null +++ b/kernel/drivers/gpu/gop.c @@ -0,0 +1,27 @@ +#include +#include +#include +#include +#include +#include + +struct gpu gop_dev = { 0 }; + +static EFI_GRAPHICS_OUTPUT_PROTOCOL *gop; + +int gop_init(struct gpu **gpu_dev) +{ + gop = efi_get_gop(); + if (gop == NULL || gop->Mode == NULL) + return 1; + + gop_dev.name = "GOP"; + gop_dev.width = gop->Mode->Info->HorizontalResolution; + gop_dev.height = gop->Mode->Info->VerticalResolution; + gop_dev.bit_depth = 32; // we only allow 8bit color in efi/gop.c + gop_dev.framebuffer = kmapaddr((void *)gop->Mode->FrameBufferBase, NULL, + gop->Mode->FrameBufferSize, F_WRITEABLE); + *gpu_dev = &gop_dev; + + return 1; +} -- cgit v1.2.3-freya