New embedded products are being developed by the industry having add-on boards that can be hot-plugged to the main board to extend features, and do so using busses not natively hot-pluggable and discoverable such as USB or PCI. Instead they use busses that are traditionally not removable such as I2C, SPI, and even more complex ones such as MIPI DSI. Currently Linux is unable to handle such situations. This session aims at discussing how to solve the main blocker issues. ---------- What needs to be supported for such products is add-ons that: * can be plugged and removed at runtime at any moment without notice * add devices on non discoverable busses, where fixed devices can be already present on the main board * use a non-standard (product-specific) connector * provide a way to detect which add-on model gets attached among several available The most suitable tool to handle this use case appears to be device tree overlays, which already provide most of the required functionality. However using overlays exposes a number of problems. This topic has been discussed informally during an unconference session at [ELC 2024][1] and a series with a proposed implementation [[Ceresoli 2024]][2]. Other related but different use cases include: * Non-discoverable devices in PCI devices: - discussed at LPC 2023 [[Herring LPC 2023]][3] - patches sent for Microchip LAN966x [[Codina 2024]][4] * BeaglePlay MikroBus support: - proposed patch series: [[Singh 2024]][5] **Topics to discuss**: * Any other new similar use cases from the audience? * How to describe in the device tree the hotplug connector and the relationship between the components on the removable add-on and the busses on the main board they attach to * Runtime dependency between devices: add-on devices have to be removed in the correct order, and devlink is there to ensure this; however currently devlink does not work correctly when DT overlays are loaded Other topics that might be discussed: * fixing issues with various subsystems and drivers that don't react well on device removal * fixing memory leaks on overlay removal [1]: https://lore.kernel.org/all/20240426115141.201f257a@booty/ [2]: https://lore.kernel.org/all/20240510-hotplug-drm-bridge-v2-0-ec32f2c66d56@bootlin.com/ [3]: https://lpc.events/event/17/contributions/1421/ [4]: https://lore.kernel.org/all/20240527161450.326615-1-herve.codina@bootlin.com [5]: https://lore.kernel.org/all/20240317193714.403132-2-ayushdevel1325@gmail.com/