Files
vystem/docs/shelter/kernel/efifb.md
2026-05-27 19:34:54 +02:00

1.0 KiB

EFI framebuffer

Introduction

This subsystem aims to provide a simple way to indicate the boot process state using a progress bar displayed on the EFI GOP framebuffer. For the moment, only framebuffers using 32 bits pixel format are supported. It's defined in shelter/lib/include/kernel/efifb.h and implemented in shelter/lib/src/kernel/efifb.c.

Overview

To avoid any complex colors encoding, pixel values for the colors white and gray must be provided through the framebuffer configuration.

The framebuffer parameters are loaded using the sh_efifb_init_fb(sh_conf_FB_CONFIG *fb_conf,sh_page_PAGE_TABLE_POOL *ptp) function. This function will:

  1. Load framebuffers dimensions
  2. Identity map the whole framebuffers
  3. Erase the previous texts on the framebuffer, based on the information provided in the framebuffer configuration

The progress bar is initialized using sh_efifb_init_bar(). It will draw an empty progress bar.

Finally, to update the progress bar, the sh_efifb_set_bar(sh_uint8 percent) function is used.