^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) config STM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) tristate "System Trace Module devices"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) select CONFIGFS_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) select SRCU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) A System Trace Module (STM) is a device exporting data in System
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Trace Protocol (STP) format as defined by MIPI STP standards.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) Examples of such devices are Intel(R) Trace Hub and Coresight STM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) Say Y here to enable System Trace Module device support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) if STM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) config STM_PROTO_BASIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) tristate "Basic STM framing protocol driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) default CONFIG_STM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) This is a simple framing protocol for sending data over STM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) devices. This was the protocol that the STM framework used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) exclusively until the MIPI SyS-T support was added. Use this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) driver for compatibility with your existing STM setup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) The receiving side only needs to be able to decode the MIPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) STP protocol in order to extract the data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) If you want to be able to use the basic protocol or want the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) backwards compatibility for your existing setup, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) config STM_PROTO_SYS_T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) tristate "MIPI SyS-T STM framing protocol driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) default CONFIG_STM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) This is an implementation of MIPI SyS-T protocol to be used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) over the STP transport. In addition to the data payload, it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) also carries additional metadata for time correlation, better
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) means of trace source identification, etc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) The receiving side must be able to decode this protocol in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) addition to the MIPI STP, in order to extract the data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) If you don't know what this is, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) config STM_DUMMY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) tristate "Dummy STM driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) This is a simple dummy device that pretends to be an stm device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) and discards your data. Use for stm class testing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) If you don't know what this is, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) config STM_SOURCE_CONSOLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) tristate "Kernel console over STM devices"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) This is a kernel space trace source that sends kernel log
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) messages to trace hosts over STM devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) If you want to send kernel console messages over STM devices,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) config STM_SOURCE_HEARTBEAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) tristate "Heartbeat over STM devices"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) This is a kernel space trace source that sends periodic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) heartbeat messages to trace hosts over STM devices. It is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) also useful for testing stm class drivers and the stm class
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) framework itself.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) If you want to send heartbeat messages over STM devices,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) config STM_SOURCE_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) tristate "Copy the output from kernel Ftrace to STM engine"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) depends on TRACING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) This option can be used to copy the output from kernel Ftrace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) to STM engine. Enabling this option will introduce a slight
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) timing effect.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) If you want to send kernel Ftrace messages over STM devices,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) endif