zephyr/drivers/misc/devmux/Kconfig
Christopher Friedt 37e19451ec drivers: misc: devmux: a device multiplexer pseudo-device
The Device Multiplexer (devmux) is a pseudo-device that can
be used to select between multiple included sub-devices.

It is experimental, but its current use is in system
remediation. Take for example, the scenario where the
system console and log subsystem both have the uart backend
enabled. The case may arise, where the chosen backing uart
could be an abstraction of another very high-bandwidth bus
- such as a PCIe BAR, a UDP socket, or even even just memory.

If the "service" (for lack of a better term) that backs this
abstract "uart" experiences an error, it is of critical
importance to be able to switch the system console, uart log
backend, or whatever to another uart (semi-transparently) in
order to bring up a shell, continue to view system logs, or
even just support user console I/O.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2023-11-28 15:35:39 +01:00

23 lines
596 B
Text

# Copyright (c) 2023, Meta
# SPDX-License-Identifier: Apache-2.0
config DEVMUX
bool "Device Multiplexer (devmux) [EXPERIMENTAL]"
depends on DT_HAS_ZEPHYR_DEVMUX_ENABLED
depends on DEVICE_MUTABLE
select EXPERIMENTAL
help
Devmux is a pseudo-device that operates as a device switch. It allows
software to select the data, config, and api from a number of linked
devices.
if DEVMUX
config DEVMUX_INIT_PRIORITY
int "Devmux init priority"
default 51
help
Init priority for the devmux driver. It must be
greater than the priority of the initially selected muxed device.
endif