Conveners
Devicetree MC
- Krzysztof Kozlowski (Linaro)
Description
The Devicetree Microconference focuses on discussing and solving problems present in the systems using Devicetree as firmware representation. This notably is Linux kernel and U-Boot, but also can cover topics relevant to Zephyr or System Devicetrees. Systems using Devicetree are majority of embedded boards, mobile devices and ARM64 laptops (and many other ARM/ARM64/RISC-V machines).
Current problems:
- Status of DTS validation against DT schema among vendors: are we getting to error-free dtbs_check anywhere?
- Using the Linux kernel DTS in U-Boot (aka OF_UPSTREAM): progress and what are the obstacles?
- DTB selection on EFI systems like arm64 laptops or embedded boards: How to store, update and choose the DTB to pass to the Linux kernel?
- Hot-pluggable hardware with Devicetree overlays - on-going efforts, discussed also on LPC 2024.
- Incorrect patterns of using OF API in the Linux kernel (e.g. using of_find_device_by_node() for phandles might return valid unbound platform_device which need to be checked if it is bound).
- Shall we migrate all of_property_read_xxx() calls in Linux drivers to device_property_read_xxx() to handle also ACPI?
- Fixing common pattern of unconditional device_init_wakeup() in drivers which makes it impossible to disable it via Devicetree, since wakeup-source is bool.
- Accepting DTS for other projects - Linux kernel is the source of DTS, so it might get DTS purely for other projects (e.g. OpenBSD).
- Using in-kernel Devicetree bindings and DTS for Zephyr - is it feasible?
- Style-checker (aka checkpatch) for DTS - tool automating all style related reviews.
Key attendees:
Abel Vesa, AngeloGioacchino Del Regno, Arnd Bergmann, Bartosz Golaszewski, Bjorn Andersson, Casey Connolly,ย Geert Uytterhoeven, Hervรฉ Codina, Luca Ceresoli, Michal Simek, Neil Armstrong, Nishanth Menon, Thierry Reding, Wolfram Sang
(Confirmed attendance: Abel Vesa, Bartosz Golaszewski, Bjorn Andersson, Casey Connolly, Neil Armstrong; most likely Arnd Bergmann as well)
The great benefit of Devicetree bindings in the current DT schema format is the ability to validate the correctness of DTS (Devicetree sources) against those bindings. However, once validation was introduced, we discovered that many in-kernel DTS files simply did not pass.
A few years and thousands of commits later, we can now ask:
1. What is the current status of in-kernel DTS...
The high-level idea behind the linux kernel GPIO consumer API is that lines are an exclusive resource - only one logical consumer can request and control a GPIO pin. This results naturally from the type of operations that a low-level user can perform on GPIO lines - after all: one user setting the line's direction to output while another sets it to input is an example of a very clear conflict...
On x86 / ACPI platforms, devices on enumerable busses can normally be seen directly by the OS. On DT platforms, these devices sometimes require extra power sequencing like toggling regulator supplies or GPIO lines. Over the years most of these cases have been solved, but there are still some gaps.
This talk will go through what already works, and attempts to identify:
- What's missing...
A large percentage of feedback when reviewing DTS changes ends up being style-related. This ends up hurting both the reviewer and submitter, as the former wants to maintain codebase coherence, while the latter wants their changes to get merged.
This session will be a discussion on where we currently stand, what functionality should be targeted and what are the obvious roadblocks.
On many device tree based devices, the device tree blobs are commonly shipped with the kernel or OS image, not the firmware. If the image is meant to be generic, it would include multiple DTBs and possibly many DTBO combinations. The bootloader selects a DTB and optionally applies overlays matching the hardware. Known image "standards" include:
- FIT image: maps a compatible string to a...