coreboot/src/lib/Kconfig
Subrata Banik 8cd9454d00 lib: Add support for text rendering on splash screen
Introduce FRAMEBUFFER_SPLASH_TEXT to allow rendering status messages
directly into the linear framebuffer. This enables displaying dynamic
information, such as battery levels or system status, during the
bootsplash stage without requiring complex graphics libraries.

Changes:
- Add Kconfig option to toggle framebuffer text support.
- User to call `render_text_to_framebuffer` to display the text message.
- Include render_text.c in ramstage build when
  FRAMEBUFFER_SPLASH_TEXT is enabled.
- Create 24x32 font table entry using GoogleSansFlex_24pt-Medium.ttf.

TEST=Able to build google/fatcat.

Change-Id: I6ac25d8d8a9d3d77a9cc2f8c6e0139268b2066b9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91092
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-13 11:27:33 +00:00

346 lines
9.8 KiB
Text

## SPDX-License-Identifier: GPL-2.0-only
config MISSING_BOARD_RESET
bool
help
Selected by boards that don't provide a do_board_reset()
implementation. This activates a stub that logs the missing
board reset and halts execution.
config ROMSTAGE_ADA
bool
help
Selected by features that use Ada code in romstage.
config RAMSTAGE_ADA
bool
help
Selected by features that use Ada code in ramstage.
config RAMSTAGE_LIBHWBASE
bool
select RAMSTAGE_ADA
help
Selected by features that require `libhwbase` in ramstage.
config ROMSTAGE_LIBHWBASE
bool
select ROMSTAGE_ADA
help
Selected by features that require `libhwbase` in romstage.
config FLATTENED_DEVICE_TREE
bool
help
Selected by features that require to parse and manipulate a flattened
devicetree in ramstage.
config HAVE_SPD_IN_CBFS
bool
help
If enabled, add support for adding spd.hex files in cbfs as spd.bin
and locating it runtime to load SPD.
config DIMM_MAX
int
default 4
help
Total number of memory DIMM slots available on motherboard.
It is multiplication of number of channel to number of DIMMs per
channel
config MAX_SOCKET
int
default 1
config DIMM_SPD_SIZE
int
default 256
help
Total SPD size that will be used for DIMM.
Ex: DDR3 256, DDR4 512.
config SPD_READ_BY_WORD
bool
config SPD_CACHE_IN_FMAP
bool
default n
help
Enables capability to cache DIMM SPDs in a dedicated FMAP region
to speed loading of SPD data. Currently requires board-level
romstage implementation to read/write/utilize cached SPD data.
When the default FMAP is used, will create a region named RW_SPD_CACHE
to store the cached SPD data.
config SPD_CACHE_FMAP_NAME
string
depends on SPD_CACHE_IN_FMAP
default "RW_SPD_CACHE"
help
Name of the FMAP region created in the default FMAP to cache SPD data.
if RAMSTAGE_LIBHWBASE && !ROMSTAGE_LIBHWBASE
config HWBASE_DYNAMIC_MMIO
def_bool y
endif
if ROMSTAGE_LIBHWBASE
config HWBASE_STATIC_MMIO
def_bool y
endif
if RAMSTAGE_LIBHWBASE || ROMSTAGE_LIBHWBASE
config HWBASE_DEFAULT_MMCONF
hex
default ECAM_MMCONF_BASE_ADDRESS
config HWBASE_DIRECT_PCIDEV
def_bool y
endif
config NO_FMAP_CACHE
bool
help
If your platform really doesn't want to use an FMAP cache (e.g. due to
space constraints), you can select this to disable warnings and save
a bit more code.
config ESPI_DEBUG
bool
help
This option enables eSPI library helper functions for displaying debug
information.
config NO_CBFS_MCACHE
bool
help
Disables the CBFS metadata cache. This means that your platform does
not need to provide a CBFS_MCACHE section in memlayout and can save
the associated CAR/SRAM size. In that case every single CBFS file
lookup must re-read the same CBFS directory entries from flash to find
the respective file.
config CBFS_CACHE_ALIGN
int
default 8
help
Sets the alignment of the buffers returned by the cbfs_cache.
config CBFS_PRELOAD
bool
depends on COOP_MULTITASKING
help
When enabled it will be possible to preload CBFS files into the
cbfs_cache. This helps reduce boot time by loading the files
in the background before they are actually required. This feature
depends on the read-only boot_device having a DMA controller to
perform the background transfer.
config DECOMPRESS_OFAST
bool
depends on COMPILER_GCC
default y
help
Compile the decompressing function in -Ofast instead of standard -Os
config PROBE_RAM
def_bool y if VENDOR_EMULATION
help
When enabled it will be possible to detect usable RAM using probe_ram
function.
menu "Boot Logo Configuration"
config BMP_LOGO
bool "Enable logo"
default n
help
Displays a BMP logo during boot. This method supports a
BMP file only. The uncompressed size can be up to 1 MB. The logo can
be compressed based on either `BMP_LOGO_COMPRESS_*` configs (default LZMA).
config HAVE_CUSTOM_BMP_LOGO
def_bool n
depends on BMP_LOGO
config HAVE_BMP_LOGO_COMPRESS_LZMA
bool
depends on BMP_LOGO
default y
choice
prompt "BMP Logo compression"
depends on BMP_LOGO
default BMP_LOGO_COMPRESS_LZMA if HAVE_BMP_LOGO_COMPRESS_LZMA
default BMP_LOGO_COMPRESS_LZ4
config BMP_LOGO_COMPRESS_LZMA
bool "Use LZMA compression for BMP logo"
help
This option enables the use of LZMA compression for the BMP logo.
LZMA is a lossless compression algorithm that can significantly reduce
the size of the logo, without sacrificing quality.
If this option is not enabled, the BMP logo will be uncompressed.
config BMP_LOGO_COMPRESS_LZ4
bool "Compress BMP logo using LZ4"
help
This option enables compression of the BMP logo using the LZ4 algorithm.
Although the size reduction is not as efficient as LZMA compression, however,
it can also make the boot process slightly faster compared to the LZMA.
endchoice
config BMP_LOGO_FILE_NAME
string "Logo file"
depends on BMP_LOGO
default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/logo.bmp"
config HAVE_ESOL_SUPPORT_FOR_LOW_BATTERY_INDICATOR
bool
depends on FSP_UGOP_EARLY_SIGN_OF_LIFE || MAINBOARD_HAS_EARLY_LIBGFXINIT
help
Enable low-battery indicator support in eSOL.
This option should be selected if the eSOL feature (using either libgfxinit or FSP uGOP)
supports displaying a low-battery indicator.
Platforms selecting `MAINBOARD_HAS_EARLY_LIBGFXINIT` can default enable this option.
For platforms using FSP uGOP, this option should only be enabled if uGOP has implemented
the necessary low-battery handling. This allows platforms to control low-battery
indicator support based on uGOP readiness.
config PLATFORM_HAS_LOW_BATTERY_INDICATOR
bool "Display low battery indicator"
depends on BMP_LOGO
help
If enabled, this option displays a low battery indicator screen. This screen can be
used to warn the user that the battery is low and that they should plug in the device.
This option requires that the system have a display and that the BMP_LOGO option is
enabled.
config PLATFORM_POST_RENDER_DELAY_SEC
int
default 5
help
Delay, in seconds, after rendering a splash screen element.
In low-battery mode, this ensures the warning is visible before shutdown.
In normal modes, this can be used to ensure the display has finished
teardown/synchronization after user notification before passing control
to the OS.
if PLATFORM_HAS_LOW_BATTERY_INDICATOR
config PLATFORM_HAS_EARLY_LOW_BATTERY_INDICATOR
bool "Display low battery indicator in romstage"
depends on HAVE_ESOL_SUPPORT_FOR_LOW_BATTERY_INDICATOR
help
If enabled, this option displays a low battery indicator during romstage (before memory
is available) in text mode in the firmware and defer the firmware update. This screen
can be used to warn the user that the battery is low and that they should plug in the
device.
config PLATFORM_LOW_BATTERY_INDICATOR_LOGO_PATH
string "Path to low battery logo file"
default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/low_battery.bmp"
endif
config SPLASH_SCREEN_FOOTER
bool "Enable custom footer on firmware splash screen"
depends on BMP_LOGO
help
Enable this option to display a custom footer image or logo on the
firmware splash screen during the boot process. This provides an
additional branding opportunity for device manufacturers, allowing
them to display a logo or other graphic at the bottom of the
splash screen, complementing the main OEM splash image.
config SPLASH_SCREEN_FOOTER_LOGO_PATH
string "Path to splash screen footer logo file"
depends on SPLASH_SCREEN_FOOTER
default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/logo.bmp"
config PLATFORM_HAS_OFF_MODE_CHARGING_INDICATOR
bool "Display off-mode charging indicator"
default n
depends on BMP_LOGO
help
Enable an off-mode charging splash screen to notify the user that
the device is charging. This prevents user confusion when a
device autoboots into a charging state upon the
insertion of a power cable, rather than performing a full OS boot.
This feature requires a functional display and depends on the
BMP_LOGO infrastructure to render the charging assets.
config PLATFORM_OFF_MODE_CHARGING_INDICATOR_LOGO_PATH
string "Path to off-mode charging logo file"
default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/off_mode_charging.bmp"
config FRAMEBUFFER_SPLASH_TEXT
bool "Enable splash screen text"
default n
help
Enable logic to render bitmapped text strings directly into
the linear framebuffer during the splash screen stage. This
method uses a bitmapped font table to display system
status messages, such as battery charging levels.
if FRAMEBUFFER_SPLASH_TEXT
choice
prompt "Font Selection"
default FONT_GOOGLE_SANS_FLEX_MEDIUM_24X32
config FONT_GOOGLE_SANS_FLEX_MEDIUM_24X32
bool "Google Sans Flex Medium 24x32"
help
Use the Google Sans Medium font table generated from
GoogleSansFlex_24pt-Medium.ttf using `generate_font.py` script.
Dimensions: 24x32 pixels.
endchoice
config FONT_WIDTH
int
default 24 if FONT_GOOGLE_SANS_FLEX_MEDIUM_24X32
default 16
help
The width of the font canvas in pixels.
config FONT_HEIGHT
int
default 32 if FONT_GOOGLE_SANS_FLEX_MEDIUM_24X32
default 24
help
The height of the font canvas in pixels.
endif # FRAMEBUFFER_SPLASH_TEXT
endmenu
config HAVE_EARLY_POWEROFF_SUPPORT
bool
help
Enable platform-specific early power off support.
This option should be selected if the platform requires special handling
to power off the system before memory initialization. This is often
necessary on Intel platforms, as directly powering off before memory
initialization is typically not supported by the chipset.
Selecting this option indicates that the platform implements the
`platform_do_early_poweroff()` function, which performs the
necessary hardware operations to initiate an early power off sequence.
This might involve configuring hardware registers, sending commands to
power management controllers, or other platform-specific operations.