Re: [RFC PATCH 0/6] Boot logo supplied by the device tree
MÃ xim Pedraza Padilla <[email protected]> Sun, 2 Aug 2026 00:01:58 +0200
| Newsgroups | org.kernel.vger.linux-fbdev,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAEUXW=GUY+x1A72n99i1Cpgy03jTYv3FPAX5nY3DCHqmeq9YVg@mail.gmail.com> |
Uwe Kleine-K=C3=B6nig wrote: > My 0.02=E2=82=AC: Usually you want to use the display using drm and not f= b once > the machine is fully booted. If you're using fb during boot to display a > logo, it's hardly possible to switch to drm later in the boot process > without flicker. > > So my recommendation for your usecase is to not use the kernel boot logo > stuff, but something like https://github.com/pengutronix/platsch. Thanks for the pointer, I did not know platsch and it looks like a good fit for the problem it solves. It does not solve mine, though, and I think the reason is worth spelling out, because it is not about how the image gets drawn but about when. These are industrial units, and the requirement is time to first pixel after power is applied. If the panel stays dark for more than a moment the unit reads as dead, and that is a support call. Anything running in userspace is by construction later than the kernel: it needs the kernel booted, the rootfs mounted and init far enough along to exec it. I can measure the exact difference on our hardware if that is useful for the discussion. We do already paint a BMP from U-Boot, which is as early as we can possibly be. The problem is the gap that follows: once the display driver probes, the panel is cleared, and nothing puts anything back until userspace is running. Moving the logo further out into userspace widens that gap rather than closing it. The kernel boot logo is what fills it, and that is the whole reason this series exists. For completeness, since it is the usual answer to the U-Boot handover problem: a simple-framebuffer node plus simpledrm does keep the bootloader image on screen. It moves the gap rather than removing it, though, because the real driver still has to take over at some point, and it makes the logo a property of the bootloader instead of the board description. The two are complementary rather than alternatives: simpledrm covers up to the driver handover, the boot logo covers from there. > If you're using fb during boot to display a logo, it's hardly possible > to switch to drm later in the boot process without flicker. You are right in the general case, but I should be precise about what happens here, because there is no fbdev to DRM switch on this hardware. The display driver is tilcdc, which is a DRM driver; the logo ends up in the fbdev emulation that drm_fb_helper provides, so DRM is scanning out from the first pixel. Userspace then takes DRM over directly. The transition that remains is the same one any solution has when the application starts. > Max, is this a viable option for your usecase? Not for the reason above, no. Let me also be explicit about something the cover letter only mentions in passing, because it is directly relevant to Uwe's point and I would rather raise it myself. This series does not draw anything anywhere new. It only teaches the existing fbdev logo code where the image may come from: a device tree node instead of a built-in PPM. With CONFIG_FRAMEBUFFER_CONSOLE the drawing is still done by fbcon, exactly as it is today. The piece that matters for a product with no text console is a separate two patch series I have deliberately not posted yet. It exports a fb_draw_logo() helper from fbdev and calls it from drm_fb_helper when fbcon is not built in. I am aware that is pushing against the direction fbdev dependencies are being removed from DRM, which is precisely why I kept it out of this series: I did not want that discussion to decide the fate of the binding. So the honest summary of where I stand: if the device tree part is acceptable I will post the drawing part separately to dri-devel and let it be judged on its own merits. If the conclusion there is that DRM should grow its own way to put an image on screen before userspace exists, rather than reaching into fbdev, I would rather help build that than carry a hook downstream forever. What I cannot do is wait for userspace. Thanks both for looking at this, Max