Re: [PATCH v3 2/7] dt-bindings: display: add a device tree supplied boot logo
flat view
From: Màxim Pedraza Padilla <hidden>
Date: 2026-09-25 08:58:21
Also in:
dri-devel, linux-devicetree, lkml
Hi Rob,
Documentation/devicetree/bindings/display/boot-logo-clut224.example.dtb: chosen: 'logo' does not match any of the regexes: '^framebuffer', '^pinctrl-[0-9]+$' from schema $id: http://devicetree.org/schemas/chosen.yaml
Expected: chosen.yaml only allows framebuffer nodes under /chosen. You closed pull request 204 until the binding settles, so I will send a new one for the node as it ends up.
The base for the series is generally the latest rc1.
Noted.
The binding is going to change, though. Thomas asked for the logo to go
through the DRM splash client [1] rather than fbdev [2], and that client
takes BMP images. Before reworking it, would a BMP in a property be
acceptable to you:
chosen {
logo {
compatible = "boot-logo";
image = /incbin/("logo.bmp");
logo-position = <(-1) (-1)>;
};
};
with memory-region as the alternative to image, exactly one of the two,
or would you rather have the pixels described the way simple-framebuffer
does, with width, height, stride and format? The BMP keeps the kernel
side small, since the client already parses BMP headers, and the header
gives it a size to check against the property length. The raw form is
closer to what DT already describes, at the cost of a second drawing
path in the client.
[1] https://lore.kernel.org/dri-devel/20260510-drm_client_splash-v3-0-a9aee9f0b2fc@valla.it/ (local)
[2] https://lore.kernel.org/all/64e273d4-2660-437d-8871-e2bfa3c377c9@suse.de/ (local)
Max
El jue, 24 sept 2026 a las 13:49, Rob Herring (Arm)
([off-list ref]) escribió:On Wed, 23 Sep 2026 22:10:30 +0200, Max Pedraza wrote:quoted
Embedded products frequently need a product specific boot logo. Today that means pointing CONFIG_LOGO_LINUX_CLUT224_FILE at a different image, which bakes it into the kernel image: a change of branding, or a second product sharing the same board support package, requires a separate kernel build, and requalifying that kernel for what is a cosmetic change. Add a binding for a "boot-logo-clut224" node, which carries the logo in the same paletted format the built-in CLUT224 logos already use, plus a few optional properties describing where on the screen it is drawn. The node lives under /chosen because a logo is configuration handed over by firmware rather than a description of the hardware. Open Firmware, which the device tree descends from, carried a boot logo in the same spirit as the oem-logo variable under /options, and simple-framebuffer nodes live under /chosen today for the same reason. The palette size is derived from the length of the "clut" property rather than spelled out separately, and "data" holds plain palette indices; the 32 entry offset the frame buffer layer reserves for the console is an implementation detail and is applied by the kernel, not by the binding. "logo-position" takes -1 on an axis to mean centre on that axis rather than carrying a separate boolean for it. A boolean can only centre both axes or neither, and next to explicit coordinates it would have to override them silently when a device tree gave both. A rotation turns the logo, not the screen. "logo-position" and "logo-offset" are screen pixels whatever "logo-rotation" says, and a quarter turn only changes how much room the logo takes up. Placing the logo in a frame that turns with it would make the same pair of coordinates mean different places on the same panel, decided by a property that is meant to describe the image. Every coordinate is bounded. The kernel clamps them anyway, since it cannot trust a device tree, but a value that cannot possibly be meant is worth catching in dtbs_check rather than on the panel. Signed-off-by: Max Pedraza <redacted> --- .../bindings/display/boot-logo-clut224.yaml | 135 ++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 136 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/boot-logo-clut224.yamlMy bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/display/boot-logo-clut224.example.dtb: chosen: 'logo' does not match any of the regexes: '^framebuffer', '^pinctrl-[0-9]+$' from schema $id: http://devicetree.org/schemas/chosen.yaml doc reference errors (make refcheckdocs): See https://patchwork.kernel.org/project/devicetree/patch/20260923201035.51007-3-maximpedraza@gmail.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.