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	select UART_MCUMGR
17	help
18	  Enables handling of SMP commands received over UART.  This is a
19	  lightweight alternative to MCUMGR_TRANSPORT_SHELL.  It allows mcumgr
20	  commands to be received over UART without requiring an additional
21	  thread.
22
23if MCUMGR_TRANSPORT_UART
24
25if UART_ASYNC_API
26
27menuconfig MCUMGR_TRANSPORT_UART_ASYNC
28	bool "Use async UART API when available"
29	help
30	  The option enables use of UART async API when available for selected mcumgr uart port.
31
32if MCUMGR_TRANSPORT_UART_ASYNC
33
34config MCUMGR_TRANSPORT_UART_ASYNC_BUFS
35	int "Number of async RX UART buffers"
36	range 2 8
37	default 2
38	help
39	  The asynchronous UART API requires registering RX buffers for received data; when the RX
40	  reaches the end of a buffer, it will send event requesting next buffer, to be able to
41	  receive data without stopping due to running out of buffer space.  At least two buffers
42	  area required for smooth RX operation.
43
44config MCUMGR_TRANSPORT_UART_ASYNC_BUF_SIZE
45	int "Size of single async RX UART buffer"
46	default 64
47	help
48	  The size of single buffer for asynchronous RX.
49
50endif # MCUMGR_TRANSPORT_UART_ASYNC
51
52endif # UART_ASYNC_API
53
54config MCUMGR_TRANSPORT_UART_MTU
55	int "UART SMP MTU"
56	default 256
57	help
58	  Maximum size of SMP frames sent and received over UART, in bytes.
59	  This value must satisfy the following relation:
60	  MCUMGR_TRANSPORT_UART_MTU <= MCUMGR_TRANSPORT_NETBUF_SIZE + 2
61
62endif # MCUMGR_TRANSPORT_UART
63