Thread (17 messages) 17 messages, 4 authors, 25d ago

Re: [PATCH v3 0/7] Boot logo supplied by the device tree

flat view

From: Francesco Valla <hidden>
Date: 2026-09-30 06:32:29
Also in: dri-devel, linux-devicetree, lkml

Hi Màxim,

On Tue, Sep 29, 2026 at 01:46:36PM +0200, Màxim Pedraza Padilla wrote:
Hi Francesco,
quoted
v4 is planned but has been preempted by other activities - I am not able
to give you an ETA at the moment. If you have capacity, feel free to
take over.
Thanks, I appreciate it. Since it is your series, I would like to run
past you what I would change before taking it on.

The v4 would still be an RFC, based on drm-misc-next. Your patches keep
your authorship, with any fix to them folded in and noted in the commit
message.

Fixes to what is in v3:

  - the BGRT symbols exported, as in your patch for Mario, but with
    EXPORT_SYMBOL_GPL;
  - drm_splash_init_client() indexes modeset_mask by the number of
    modesets added in the first loop and by the number walked in the
    second, so an output without a mode ahead of a connected one gets
    the buffer instead;
  - for a tiled group, the first loop dereferences tiled->buffer before
    any buffer exists, and the width and height look swapped;
  - if the BMP firmware never arrives, the callback returns without
    waking the render thread, which is left in TASK_UNINTERRUPTIBLE for
    good;
  - the 24 bit blitters read each pixel as an unaligned u32, one byte
    past the image when the rows have no padding;
  - the image cleanup always calls memunmap(), which will need to know
    where the image came from once there is a third source;
  - the spaces in DRM_CLIENT_DEFAULT, in a patch of its own.
I suggest you also take at look at the review sashiko did for the V3
[1], as it contains some good suggestions (some of them are already
present in your list).
The modeset, tiling and render thread ones come from reading the code,
so I will reproduce them in qemu first. Tiling I cannot test at all.
I did not test tiling as well - I think it's a mode limited to some
Intel cards?
Additions:

  - a device tree image source: a node under /chosen with the BMP either
    in the node itself (dtc's /incbin/) or in a reserved memory region,
    mapped with the same memremap() as the BGRT;
A reserved memory region is (probably) a better idea, to allow change
the splash without recompiling the devicetree.

A possible usecase would be:

 - bootloader reads the BMP image from a dedicated partition and loads
   it to the reserved memory (very much like the BGRT path);
 - splash client parses the devicetree, finds the memory region and
   loads the image from there;
 - userspace updates the dedicated partition with a different image.
  - placement from that node, a position with -1 centring an axis plus
    an offset, instead of always centring;
  - rotation, for the DT image and for BGRT images with the orientation
    bits set, which are skipped today;
  - the background colour coming from the same place as the image: the
    DT node can carry its own, splash_color goes with splash_bmp, and
    the Kconfig colour stays the default for everything else, BGRT
    included.

The sources would be tried in the order DT, BGRT, BMP firmware, and
then just the colour. A DT node is only there if someone put it there
for that board, so it seemed right to let it win.

Does that match what you had in mind? And how would you like to appear
in MAINTAINERS, as a maintainer next to me or as a reviewer?
Yes, please, either as a co-maintainer or as a reviewer, as you see fit.
If you are happy with it, I'll take you up on your offer.
Thank you for continuing the effort on this - I still believe it's
useful, but currently is not fitting inside my schedule.
Màxim
Regards,
Francesco


[1] https://sashiko.dev/#/patchset/20260510-drm_client_splash-v3-0-a9aee9f0b2fc%40valla.it
El vie, 25 sept 2026 a las 21:32, Francesco Valla
([off-list ref]) escribió:
quoted
Hi Màxim,

On Fri, Sep 25, 2026 at 10:48:31AM +0200, Màxim Pedraza Padilla wrote:
quoted
Hi Thomas,
quoted
the whole Linux logo on the console is somewhat gimmicky and IMHO should
not be further extended. Also fbdev as a whole has realistically run its
course. We fix bugs and occasionally clean up the code, but it is
questionable whether new feature make much sense. Even more so as the
drivers your system uses appear to be DRM ones.
They are, it is tilcdc. Understood, I will drop the fbdev side, which
also settles your comment on patch 1.
quoted
There is a proposal for a DRM splash screen at [1]. It retrieves the
device vendor's logo from the firmware and displays it at the given
coordinates. IMHO you should start with this series and add DT support
there.
Agreed. I have been following Francesco's series since Sam pointed me
at it, and it is where the DRM follow-up I mentioned in the cover letter
belongs, rather than in a client of my own.

A device tree source fits next to the BGRT one. The BGRT is the firmware
handing the kernel an image and where to put it, and a DT system has no
such table. The BMP loaded as firmware only helps if the file is built
into the kernel, or if a filesystem is already there when the display
comes up. With U-Boot's Falcon mode, the device tree is the only thing
that reaches the kernel.

So the plan would be a node under /chosen carrying a BMP, either in the
node itself or in a reserved memory region the bootloader loaded it
into, with the placement properties from this series. The region is the
same memremap() the BGRT source already does, only with the address
coming from the device tree.

Rotation too: the client skips a BGRT image with the orientation bits
set today, and it could turn it instead. I will ask Rob separately how
he wants the image described, since that is what the binding hinges on.

Francesco, is a v4 on the way? Would you take a DT source as patches on
top of your series, or would you rather I wait until it lands?
v4 is planned but has been preempted by other activities - I am not able
to give you an ETA at the moment. If you have capacity, feel free to
take over.
quoted
Max
Regards,
Francesco
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help