Hello,
after quite some time, this is the second RFC version for the DRM-based
splash screen. Motivation behind the work can be found in v1 [0].
Following the advice received on the v1, I stripped away all of the
user-driven functionalities (i.e.: configurable message and progress
bar), which can be provided by existing userspace tools, and decided to
use 24-bits bitmap as image format instead of raw dumps.
With the addition of EFI BGRT as a new source, this new DRM client is
now able to draw to screen one of the following:
- a colored background;
- a BMP image loaded as firmware (either built-in or loaded from the
filesystem);
- the BMP image supplied by the EFI BGRT.
Once compiled inside the kernel, the client can be enabled through the
command line specifying the drm_client_lib.active=splash parameter.
Two additional command-line parameters can be specified:
- drm_client_lib.splash_color=0xRRGGBB to modify the default
background color (which can in turn be set through a build-time
option);
- drm_client_lib.splash_bmp=<image.bmp> to set the BMP image loaded in
case this is the chosen source (with a fixed default of
drm_splash.bmp.
These two parameters were kept against some of the received feedback
because they fit a specific embedded usecase I want to cover (i.e.:
hardware model detected and set by the bootloader, along with a custom
splash for each model).
Additional notes:
- Rotation is still not managed.
- As for v1, support for tiled screens is untested.
- Plain color and BMP sources were tested both on QEMU and on a
Beagleplay.
- EFI BGRT support was tested using QEMU+OVMF.
Thank you in advance for any feedback you want to leave.
Best regards,
Francesco
[0]
https://lore.kernel.org/all/[email protected]
Signed-off-by: Francesco Valla <[email protected]>
---
Changes in v2:
- Moved from raw dump to BMP format for static image source
- Removed support for configurable message
- Removed support for progress bar
- Added EFI BGRT as image source
Link to v1:
https://lore.kernel.org/r/[email protected]
---
Francesco Valla (3):
drm: client: add splash client
MAINTAINERS: add entry for DRM splash client
drm: docs: remove bootsplash from TODO
Documentation/gpu/todo.rst | 17 -
MAINTAINERS | 7 +
drivers/gpu/drm/clients/Kconfig | 79 ++-
drivers/gpu/drm/clients/Makefile | 1 +
drivers/gpu/drm/clients/drm_client_internal.h | 9 +
drivers/gpu/drm/clients/drm_client_setup.c | 8 +
drivers/gpu/drm/clients/drm_splash.c | 883 ++++++++++++++++++++++++++
7 files changed, 986 insertions(+), 18 deletions(-)
---
base-commit: 7f98ab9da046865d57c102fd3ca9669a29845f67
change-id: 20251026-drm_client_splash-e10d7d663e7f
Best regards,
--
Francesco Valla <[email protected]>