Thread (29 messages) 29 messages, 8 authors, 2026-08-19

Re: [RFC PATCH 0/6] Boot logo supplied by the device tree

flat view

From: Maxime Ripard <mripard@kernel.org>
Date: 2026-08-13 08:03:02
Also in: dri-devel, linux-fbdev, lkml

On Thu, Aug 13, 2026 at 01:50:47AM +0200, Màxim Pedraza Padilla wrote:
El mié, 12 ago 2026 a las 9:42, Maxime Ripard ([off-list ref]) escribió:
quoted
In such a case, you can (and really should) use KMS, and you should use
an initramfs and setup the splash screen there.
Agreed that readout is the right answer where it applies, and I am not
looking to duplicate it. Three cases where it does not:

  - Hardware whose only in-tree display driver is fbdev. There is no KMS
    state to read at all, and there are still around a hundred of those
    drivers.
Which are entirely deprecated, and kept mostly for historical reason.
It's kind of irrelevant to this discussion.
  - DRM drivers without readout implemented, which today is all of them
    but tidss.
The obvious answer to that being "just implement readout then". We won't
merge a core feature to accomodate a driver not implementing an existing
feature.
  - Falcon mode, where U-Boot proper never runs, so there is no image and
    no programmed CRTC to inherit.
In this case, the first modeset is fine, and whoever does it doesn't
matter, so it might as well be userspace.
On the initramfs: it moves the splash earlier, it does not close the gap.
Which gap are you talking about?
Measured on our 4.19 product kernel:

  1.09 s  tilcdc registers fb0, the logo can be drawn
  2.68 s  ubi0 starts attaching        <- 1.59 s of built-in driver probes
  3.39 s  Run /sbin/init               <- 0.70 s of UBI attach + UBIFS mount

An initramfs removes the 0.70 s of storage. It cannot remove the 1.59 s,
because PID 1 does not exist until the initcalls have run.
I mean, sure it can. Move built-in drivers to modules, and load them in
the initramfs. It will reduce the kernel image size (so load and
decompression time) and the kernel boot time itself.

I personally did a subsecond boot to userspace with Falcon Boot, UBI and
a similar platform (and no initramfs). 3.4s to run init seems subobtimal
to me.
So the gap goes from 2.3 s to roughly 1.6 s, before the splash binary
has loaded and drawn anything. That figure is an estimate; the
breakdown it comes from is not.

It is also worth saying what this series is and is not. The kernel has
drawn a boot logo for decades; this does not add that. It changes where the
image comes from, so that one kernel binary can serve products that differ
only in branding. If the position is that the kernel should not draw a logo
at all, that is an argument about CONFIG_LOGO rather than about these
patches -- and drm_panic already calls fb_find_logo(), so the logo is not
purely an fbdev concern either.
I understand where you're coming from. On the flip-side, why should we
add an interface we'll have to maintain forever, while making a
compromise because the fact that it should be in the DT to begin with is
arguable, on a deprecated subsystem, for something where we have
alternatives.

Maxime

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help