# Copyright (c) 2022 Nordic Semiconductor ASA # SPDX-License-Identifier: Apache-2.0 menu "Frontends" config LOG_FRONTEND_DICT_UART bool "UART dictionary frontend" select LOG_DICTIONARY_SUPPORT select MPSC_PBUF depends on UART_ASYNC_API || UART_INTERRUPT_DRIVEN imply LOG_FMT_SECTION imply LOG_FMT_SECTION_STRIP if !LOG_ALWAYS_RUNTIME help Frontend sends data in binary dictionary mode. if LOG_FRONTEND_DICT_UART config LOG_FRONTEND_DICT_UART_BUFFER_SIZE int "Buffer size" default 1024 help Number of bytes dedicated for buffering data config LOG_FRONTEND_DICT_UART_DROPPED_NOTIFY_PERIOD int "Dropped notification period" default 500 help Determines how often a report about dropped messages is printed. Given in milliseconds. endif config LOG_FRONTEND_STMESP bool "Coresight STM frontend" imply ARM_ON_ENTER_CPU_IDLE_HOOK if LOG_FRONTEND_STMESP_FLUSH_COUNT > 0 if LOG_FRONTEND_STMESP config LOG_FRONTEND_STMESP_DICT bool default y if !LOG_FRONTEND_STMESP_FSC select LOG_FRONTEND_OPT_API select LOG_DICTIONARY_DB imply LOG_FMT_SECTION imply LOG_FMT_SECTION_STRIP config LOG_FRONTEND_STMESP_FSC bool "Send fully self-contained messages" select LOG_MSG_APPEND_RO_STRING_LOC if !(NRF_ETR || \ SOC_NRF54H20_CPUPPR || SOC_NRF54H20_CPUFLPR) config LOG_FRONTEND_STMESP_FLUSH_COUNT int "Number of flushing words" default 4 help Before going to sleep CPU shall write to STM some dummy data to ensure that any buffered data goes to TPIU/ETR. config LOG_FRONTEND_STMESP_EARLY_BUF_SIZE int "Buffer size to store early messages" default 0 help Frontend cannot write to STM if it is used with ETR buffer unless ETR is initialized and memory is properly configured (privileges). Data is stored in the buffer and flushed to the STMESP once the pipeline is ready. config LOG_FRONTEND_STMESP_DICT_VER def_int 0 config LOG_FRONTEND_STMESP_TURBO_LOG bool "Optimize short_logs" select LOG_CUSTOM_HEADER default y if (NRF_ETR || SOC_NRF54H20_CPUPPR || SOC_NRF54H20_CPUFLPR) \ && LOG_FRONTEND_STMESP_FSC help When enabled, then logging messages with 0 and 1 numeric argument are optimized and handled much faster than others. config LOG_FRONTEND_STMESP_TURBO_DROP_OTHERS bool "Drop all logs except turbo logs" help Option can be enabled for memory constraint cases to remove all logging related code except turbo logs. config LOG_FRONTEND_STMESP_TURBO_LOG_BASE def_int 32768 config LOG_FRONTEND_STPESP_TURBO_SOURCE_PORT_ID def_int 65535 depends on LOG_FRONTEND_STMESP_TURBO_LOG config LOG_FRONTEND_STMESP_GUARANTEED_ACCESS bool "Use STMESP guaranteed access" help When enabled, accessing STMESP registers will stall if write cannot be performed (e.g. ETR buffer is full). config LOG_FRONTEND_STMESP_MSG_END_TIMESTAMP bool "Generate timestamp and marker at message end" help Generate a zero data byte with timestamp and marker at message end, instead of generating a timestamp and marker at message start and a flag at end. This can be used to maintain compatibility with certain decoders. endif # LOG_FRONTEND_STMESP config LOG_FRONTEND_STMESP_DEMUX bool "Demultiplexer of logging packets from STM stream" select MPSC_PBUF help Module demultiplexes messages encoded in STPv2 stream. Messages may be interleaved because they may come from multiple cores (majors). There are 3 types of messages: logging, tracepoints and HW events. if LOG_FRONTEND_STMESP_DEMUX config LOG_FRONTEND_STMESP_DEMUX_ACTIVE_PACKETS int "Active packets" default 12 config LOG_FRONTEND_STMESP_DEMUX_BUFFER_SIZE int "Buffer size" default 1024 config LOG_FRONTEND_STMESP_DEMUX_MAX_UTILIZATION bool "Track maximum utilization" config LOG_FRONTEND_STMESP_DEMUX_GC_TIMEOUT int "Message timeout (in milliseconds)" default 100 help If log message is not completed within that time frame it is discarded. endif # LOG_FRONTEND_STMESP_DEMUX config LOG_FRONTEND_STMESP_FLUSH_PORT_ID def_int 0 depends on LOG_FRONTEND_STMESP_DEMUX || LOG_FRONTEND_STMESP config LOG_FRONTEND_STMESP_TP_CHAN_BASE def_int 255 depends on LOG_FRONTEND_STMESP_DEMUX || LOG_FRONTEND_STMESP help Do not change this value as it is aligned with host decoder (nrfutil trace). endmenu