1# Copyright Runtime.io 2018. All rights reserved.
2# Copyright Nordic Semiconductor ASA 2020-2022. All rights reserved.
3# SPDX-License-Identifier: Apache-2.0
4
5# The Kconfig file is dedicated to UART transport of MCUmgr
6# subsystem and provides Kconfig options to control aspects of
7# the transport.
8#
9# Options defined in this file should be prefixed:
10#  MCUMGR_TRANSPORT_UART_
11
12menuconfig MCUMGR_TRANSPORT_UART
13	bool "UART mcumgr SMP transport"
14	depends on CONSOLE
15	depends on BASE64
16	depends on CRC
17	select UART_MCUMGR
18	help
19	  Enables handling of SMP commands received over UART.  This is a
20	  lightweight alternative to MCUMGR_TRANSPORT_SHELL.  It allows mcumgr
21	  commands to be received over UART without requiring an additional
22	  thread.
23
24if MCUMGR_TRANSPORT_UART
25
26if UART_ASYNC_API
27
28menuconfig MCUMGR_TRANSPORT_UART_ASYNC
29	bool "Use async UART API when available"
30	help
31	  The option enables use of UART async API when available for selected mcumgr uart port.
32
33if MCUMGR_TRANSPORT_UART_ASYNC
34
35config MCUMGR_TRANSPORT_UART_ASYNC_BUFS
36	int "Number of async RX UART buffers"
37	range 2 8
38	default 2
39	help
40	  The asynchronous UART API requires registering RX buffers for received data; when the RX
41	  reaches the end of a buffer, it will send event requesting next buffer, to be able to
42	  receive data without stopping due to running out of buffer space.  At least two buffers
43	  area required for smooth RX operation.
44
45config MCUMGR_TRANSPORT_UART_ASYNC_BUF_SIZE
46	int "Size of single async RX UART buffer"
47	default 64
48	help
49	  The size of single buffer for asynchronous RX.
50
51endif # MCUMGR_TRANSPORT_UART_ASYNC
52
53endif # UART_ASYNC_API
54
55config MCUMGR_TRANSPORT_UART_MTU
56	int "UART SMP MTU"
57	default 256
58	help
59	  Maximum size of SMP frames sent and received over UART, in bytes.
60	  This value must satisfy the following relation:
61	  MCUMGR_TRANSPORT_UART_MTU <= MCUMGR_TRANSPORT_NETBUF_SIZE + 2
62
63endif # MCUMGR_TRANSPORT_UART
64