Re: Hotplug hardware with (un)loadable DT overlays - unconference meeting notes

From: Luca Ceresoli
Date: Fri May 10 2024 - 03:32:14 EST


Hello,

On Fri, 26 Apr 2024 11:51:41 +0200
Luca Ceresoli <luca.ceresoli@xxxxxxxxxxx> wrote:

[...]

> We described 2 use cases we are working on at Bootlin.
>
> One use case is for the LAN966x, a classic SoC that can be however be
> started in "endpoint mode", i.e. with the CPU cores deactivated and a
> PCI endpoint that allows an external CPU to access all the peripherals
> over PCIe. In practice the whole SoC would be used as a peripheral chip
> providing lots of devices for another SoC where the OS runs. This use
> case has been described by Rob Herring and Lizhi Hou at LPC 2023 [4][5].
>
> The other use case, which was discussed in more detail, is for an
> industrial product under development by a Bootlin customer, which is a
> regular, self-standing embedded Linux system with a connector allowing
> to connect an add-on with additional peripherals. The add-on
> peripherals are on I2C, MIPI DSI and potentially other non-discoverable
> busses (there are also peripherals on natively hot-pluggable busses
> such as USB and Ethernet, but by their nature they don't need special
> work).
>
> For both use cases (and perhaps others we are unaware of) runtime
> loading/unloading DT overlays appears as the most fitting technique.
> Except it is not yet ready for real usage.
>
> For it to work, we highlighted 3 main areas in need of work in the
> Linux kernel:
>
> 1. how to describe the connector and the add-ons in device tree
> (bindings etc) -- only relevant for the 2nd use case
> 2. implementation of DT overlays for adding/removing the add-on
> peripherals
> 3. fixing issues with various subsystems and drivers that don't react
> well on device removal

Quick update: I just sent a series with a proposal covering items 1 and
2:

https://lore.kernel.org/all/20240510-hotplug-drm-bridge-v2-0-ec32f2c66d56@xxxxxxxxxxx/

Luca

--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com