# # For a description of the syntax of this configuration file, # see the file kconfig-language.txt in the NuttX tools repository. # config ARCH_HAVE_SERIAL_TERMIOS bool default n menuconfig SERIAL bool "Serial Driver Support" default y ---help--- Front-end character drivers for chip-specific UARTs. This provide some TTY-like functionality and are commonly used (but not required for) the NuttX system console. See also include/nuttx/serial/serial.h if SERIAL config SERIAL_PM_ACTIVITY_DOMAIN int "PM activity domain" default 0 depends on PM ---help--- When characters are received on a console device, pm_activity() will be called with this PM domain. config SERIAL_PM_ACTIVITY_PRIORITY int "PM activity priority when receive character" default 6 depends on PM ---help--- When characters are received on a console device, pm_activity() will be called with this PM priority. config SERIAL_REMOVABLE bool default n config SERIAL_CONSOLE bool default n menuconfig 16550_UART bool "16550 UART Chip support" select ARCH_HAVE_SERIAL_TERMIOS default n if 16550_UART source drivers/serial/Kconfig-16550 endif # # MCU serial peripheral driver? # config OTHER_UART_SERIALDRIVER bool default n select MCU_SERIAL config MCU_SERIAL bool default n config RPMSG_UART bool "UART rpmsg support" default n depends on OPENAMP select ARCH_HAVE_SERIAL_TERMIOS select SERIAL_RXDMA select SERIAL_TXDMA select SERIAL_REMOVABLE select SERIAL_IFLOWCONTROL config RPMSG_SERIALINIT bool "Add dummy up_serialinit for UART rpmsg" default y if !16550_UART && !MCU_SERIAL depends on RPMSG_UART # # Standard serial driver configuration # config STANDARD_SERIAL bool "Enable standard \"upper-half\" serial driver" default y if MCU_SERIAL default n if !MCU_SERIAL ---help--- Enable the standard, upper-half serial driver used by most MCU serial peripherals. config SERIAL_NPOLLWAITERS int "Number of poll threads" default 2 depends on STANDARD_SERIAL ---help--- Maximum number of threads than can be waiting for POLL events. Default: 2 config SERIAL_IFLOWCONTROL bool default n config SERIAL_RS485CONTROL bool default n ---help--- Use RTS pin to control RS485 direction (Asserted while transmitting). config SERIAL_OFLOWCONTROL bool default n config SERIAL_TXDMA bool default n config SERIAL_RXDMA bool default n config SERIAL_IFLOWCONTROL_WATERMARKS bool "RX flow control watermarks" default n depends on SERIAL_IFLOWCONTROL ---help--- Call the "lower half" rxflowcontrol method whenever the number of characters in the serial RX buffer falls above an upper water mark level or below a lower watermark level. The default behavior is to call the rxflowcontrol method only when the RX buffer is empty or full. if SERIAL_IFLOWCONTROL_WATERMARKS config SERIAL_IFLOWCONTROL_LOWER_WATERMARK int "RX lower Watermark (percent)" default 10 range 1 99 ---help--- Call the rxflowcontrol method then there are this amount (or or less) data buffered in the serial drivers RX buffer. This is expressed as a percentage of the total size of the RX buffer which may vary from instance-to-instance. config SERIAL_IFLOWCONTROL_UPPER_WATERMARK int "RX upper Watermark (percent)" default 90 range 1 99 ---help--- Call the rxflowcontrol method then there are this amount (or more) data buffered in the serial drivers RX buffer. This is expressed as a percentage of the total size of the RX buffer which may vary from instance-to-instance. endif # SERIAL_IFLOWCONTROL_WATERMARKS config SERIAL_TIOCSERGSTRUCT bool "Support TIOCSERGSTRUCT" default n depends on DEBUG_FEATURES && (MCU_SERIAL || 16550_UART) ---help--- As a debug option, many serial bottom half drivers support the TIOCSERGSTRUCT that allows you to get the internal driver data structure. By default, this IOCTL is not supported in order to reduce footprint. But if (1) the driver supports the TIOCSERGSTRUCT ioctl, and (2) this option is selected, then support for the TIOCSERGSTRUCT will be enabled. config SERIAL_TERMIOS bool "Serial TERMIOS support" depends on ARCH_HAVE_SERIAL_TERMIOS default n ---help--- Serial driver supports termios.h interfaces (tcsetattr, tcflush, etc.). If this is not defined, then the terminal settings (baud, parity, etc). are not configurable at runtime; serial streams cannot be flushed, etc.. config TTY_SIGINT bool "Support SIGINT" default n depends on SERIAL_TERMIOS ---help--- Whether support Ctrl-c/x event. Enabled automatically for console devices. May be enabled for other serial devices using the ISIG bit in the Termios c_lflag. REVISIT: This implementation is compliant but incomplete. The c_lflag ISIG bit normally enables/disables INTR, QUIT, SUSP, and DSUSP character processing. The relationship between these names, standard signals, and typical key presses are as follows: INTR SIGINT Ctrl-C ETX(0x03) Interrupt KILL SIGKILL Ctrl-U NAK(0x15) Kill QUIT SIGQUIT Ctrl-\ FS (0x1c) Quit SUSP SIGTSTP Ctrl-Z SUB(0x1a) Suspend DSUSP SIGTSTP Ctrl-Y EM (0x19) Delayed suspend Additional requirements: - SIGKILL cannot be caught or ignored. Compared to SIGTERM which is like SIGKILL but can be caught or ignored. - SIGQUIT is like SIGINT but causes generation of a core dump - SIGSTOP cannot be caught or ignored. SIGTSTP is like SIGSTOP but can be caught or ignored. - The delayed suspend (DSUSD) is like suspend (SUPD), except that the suspension is delayed until the next read operation Ctrl-D (EOT 0x04) normally should not generate a signal but, instead, should cause an immediate End-of-File result. config TTY_SIGINT_CHAR hex "Serial parse SIGINT characters" default 0x03 if SERIAL_CONSOLE default 0x04 if !SERIAL_CONSOLE depends on TTY_SIGINT ---help--- Use ASCII 0x03 (Ctrl-c) or 0x04 (ctrl-d) inputs to determine whether to send a SIGINT event. Other characters may also be selected. REVISIT: Traditionally Ctrl-C would generate SIGINT. Ctrl-D is the End-of-File character that should close the stream. config TTY_SIGTSTP bool "Support SIGTSTP" default n depends on SERIAL_TERMIOS ---help--- Whether support Ctrl-z event. Enabled automatically for console devices. May be enabled for other serial devices using the ISIG bit in the Termios c_lflag. REVISIT: This implementation is compliant but incomplete. The c_lflag ISIG bit normally enables/disables INTR, QUIT, SUSP, and DSUSP character processing. The relationship between these names, standard signals, and typical key presses are as follows: INTR SIGINT Ctrl-C ETX(0x03) Interrupt KILL SIGKILL Ctrl-U NAK(0x15) Kill QUIT SIGQUIT Ctrl-\ FS (0x1c) Quit SUSP SIGTSTP Ctrl-Z SUB(0x1a) Suspend DSUSP SIGTSTP Ctrl-Y EM (0x19) Delayed suspend Additional requirements: - SIGKILL cannot be caught or ignored. Compared to SIGTERM which is like SIGKILL but can be caught or ignored. - SIGQUIT is like SIGINT but causes generation of a core dump - SIGSTOP cannot be caught or ignored. SIGTSTP is like SIGSTOP but can be caught or ignored. - The delayed suspend (DSUSD) is like suspend (SUPD), except that the suspension is delayed until the next read operation config TTY_SIGTSTP_CHAR hex "Serial parse SIGTSTP characters" default 0x1a depends on TTY_SIGTSTP ---help--- Use ASCII 0x1a (Ctrl-z) input to determine whether to send a SIGTSTP event. Other characters may also be selected. # # Serial console selection # choice prompt "Serial console" default NO_SERIAL_CONSOLE if !OTHER_UART_SERIALDRIVER default OTHER_SERIAL_CONSOLE if OTHER_UART_SERIALDRIVER depends on MCU_SERIAL #depends on DEV_CONSOLE - We may have serial console with no file system at all config UART_SERIAL_CONSOLE bool "UART" depends on UART_SERIALDRIVER select SERIAL_CONSOLE config UART0_SERIAL_CONSOLE bool "UART0" depends on UART0_SERIALDRIVER select SERIAL_CONSOLE config USART0_SERIAL_CONSOLE bool "USART0" depends on USART0_SERIALDRIVER select SERIAL_CONSOLE config UART1_SERIAL_CONSOLE bool "UART1" depends on UART1_SERIALDRIVER select SERIAL_CONSOLE config USART1_SERIAL_CONSOLE bool "USART1" depends on USART1_SERIALDRIVER select SERIAL_CONSOLE config UART2_SERIAL_CONSOLE bool "UART2" depends on UART2_SERIALDRIVER select SERIAL_CONSOLE config USART2_SERIAL_CONSOLE bool "USART2" depends on USART2_SERIALDRIVER select SERIAL_CONSOLE config UART3_SERIAL_CONSOLE bool "UART3" depends on UART3_SERIALDRIVER select SERIAL_CONSOLE config USART3_SERIAL_CONSOLE bool "USART3" depends on USART3_SERIALDRIVER select SERIAL_CONSOLE config UART4_SERIAL_CONSOLE bool "UART4" depends on UART4_SERIALDRIVER select SERIAL_CONSOLE config USART4_SERIAL_CONSOLE bool "USART4" depends on USART4_SERIALDRIVER select SERIAL_CONSOLE config UART5_SERIAL_CONSOLE bool "UART5" depends on UART5_SERIALDRIVER select SERIAL_CONSOLE config USART5_SERIAL_CONSOLE bool "USART5" depends on USART5_SERIALDRIVER select SERIAL_CONSOLE config UART6_SERIAL_CONSOLE bool "UART6" depends on UART6_SERIALDRIVER select SERIAL_CONSOLE config USART6_SERIAL_CONSOLE bool "USART6" depends on USART6_SERIALDRIVER select SERIAL_CONSOLE config UART7_SERIAL_CONSOLE bool "UART7" depends on UART7_SERIALDRIVER select SERIAL_CONSOLE config USART7_SERIAL_CONSOLE bool "USART7" depends on USART7_SERIALDRIVER select SERIAL_CONSOLE config UART8_SERIAL_CONSOLE bool "UART8" depends on UART8_SERIALDRIVER select SERIAL_CONSOLE config USART8_SERIAL_CONSOLE bool "USART8" depends on USART8_SERIALDRIVER select SERIAL_CONSOLE config USART9_SERIAL_CONSOLE bool "USART8" depends on USART9_SERIALDRIVER select SERIAL_CONSOLE config LPUART0_SERIAL_CONSOLE bool "LPUART0" depends on LPUART0_SERIALDRIVER select SERIAL_CONSOLE config LPUART1_SERIAL_CONSOLE bool "LPUART1" depends on LPUART1_SERIALDRIVER select SERIAL_CONSOLE config LPUART2_SERIAL_CONSOLE bool "LPUART2" depends on LPUART2_SERIALDRIVER select SERIAL_CONSOLE config LPUART3_SERIAL_CONSOLE bool "LPUART3" depends on LPUART3_SERIALDRIVER select SERIAL_CONSOLE config LPUART4_SERIAL_CONSOLE bool "LPUART4" depends on LPUART4_SERIALDRIVER select SERIAL_CONSOLE config LPUART5_SERIAL_CONSOLE bool "LPUART5" depends on LPUART5_SERIALDRIVER select SERIAL_CONSOLE config LPUART6_SERIAL_CONSOLE bool "LPUART6" depends on LPUART6_SERIALDRIVER select SERIAL_CONSOLE config LPUART7_SERIAL_CONSOLE bool "LPUART7" depends on LPUART7_SERIALDRIVER select SERIAL_CONSOLE config LPUART8_SERIAL_CONSOLE bool "LPUART8" depends on LPUART8_SERIALDRIVER select SERIAL_CONSOLE config SCI0_SERIAL_CONSOLE bool "SCI0" depends on SCI0_SERIALDRIVER select SERIAL_CONSOLE config SCI1_SERIAL_CONSOLE bool "SCI1" depends on SCI1_SERIALDRIVER select SERIAL_CONSOLE config SCI2_SERIAL_CONSOLE bool "SCI2" depends on SCI2_SERIALDRIVER select SERIAL_CONSOLE config SCI3_SERIAL_CONSOLE bool "SCI3" depends on SCI3_SERIALDRIVER select SERIAL_CONSOLE config SCI4_SERIAL_CONSOLE bool "SCI4" depends on SCI4_SERIALDRIVER select SERIAL_CONSOLE config SCI5_SERIAL_CONSOLE bool "SCI5" depends on SCI5_SERIALDRIVER select SERIAL_CONSOLE config SCI6_SERIAL_CONSOLE bool "SCI6" depends on SCI6_SERIALDRIVER select SERIAL_CONSOLE config SCI7_SERIAL_CONSOLE bool "SCI7" depends on SCI7_SERIALDRIVER select SERIAL_CONSOLE config SCI8_SERIAL_CONSOLE bool "SCI8" depends on SCI8_SERIALDRIVER select SERIAL_CONSOLE config SCI9_SERIAL_CONSOLE bool "SCI9" depends on SCI9_SERIALDRIVER select SERIAL_CONSOLE config SCI10_SERIAL_CONSOLE bool "SCI10" depends on SCI10_SERIALDRIVER select SERIAL_CONSOLE config SCI11_SERIAL_CONSOLE bool "SCI11" depends on SCI11_SERIALDRIVER select SERIAL_CONSOLE config SCI12_SERIAL_CONSOLE bool "SCI12" depends on SCI12_SERIALDRIVER select SERIAL_CONSOLE config OTHER_SERIAL_CONSOLE bool "Other serial console" select SERIAL_CONSOLE config NO_SERIAL_CONSOLE bool "No serial console" endchoice # # U[S]ARTn_XYZ settings for MCU serial drivers # menu "UART Configuration" depends on UART_SERIALDRIVER config UART_RXBUFSIZE int "Receive buffer size" default 256 ---help--- Characters are buffered as they are received. This specifies the size of the receive buffer. config UART_TXBUFSIZE int "Transmit buffer size" default 256 ---help--- Characters are buffered before being sent. This specifies the size of the transmit buffer. config UART_BAUD int "BAUD rate" default 115200 ---help--- The configured BAUD of the UART. config UART_BITS int "Character size" default 8 ---help--- The number of bits. Must be either 7 or 8. config UART_PARITY int "Parity setting" default 0 range 0 2 ---help--- 0=no parity, 1=odd parity, 2=even parity config UART_2STOP int "use 2 stop bits" default 0 ---help--- 1=Two stop bits config UART_IFLOWCONTROL bool "UART RTS flow control" default n select SERIAL_IFLOWCONTROL ---help--- Enable UART RTS flow control config UART_OFLOWCONTROL bool "UART CTS flow control" default n select SERIAL_OFLOWCONTROL ---help--- Enable UART CTS flow control config UART_TXDMA bool "UART Tx DMA support" default n select SERIAL_TXDMA ---help--- Enable Tx DMA transfers on UART config UART_RXDMA bool "UART Rx DMA support" default n select SERIAL_RXDMA ---help--- Enable Rx DMA transfers on UART endmenu source drivers/serial/Kconfig-uart source drivers/serial/Kconfig-lpuart source drivers/serial/Kconfig-usart source drivers/serial/Kconfig-sci menuconfig PSEUDOTERM bool "Pseudo-Terminal (PTY) support" default n select PIPES select ARCH_HAVE_SERIAL_TERMIOS ---help--- Enable support support for master and slave pseudo-terminal devices. if PSEUDOTERM choice prompt "PTY model" default PSEUDOTERM_BSD if DISABLE_PSEUDOFS_OPERATIONS default PSEUDOTERM_SUSV1 if !DISABLE_PSEUDOFS_OPERATIONS config PSEUDOTERM_BSD bool "BSD style" ---help--- Deprecated BSD style PTYs. Master: /dev/ptyN Slave: /dev/ttypN Where N is the minor number config PSEUDOTERM_SUSV1 bool "SUSv1 style" depends on !DISABLE_PSEUDOFS_OPERATIONS ---help--- PTYs as specified in the Single Unix Specification (SUSv1). Master: /dev/ptmx (multiplexor) Slave: /dev/pts/N Where N is the minor number endchoice # PTY model config PSEUDOTERM_RXBUFSIZE int "Pseudo-Terminal Rx buffer size" default 256 ---help--- Master-to-slave pipe buffer size. Default: 256 config PSEUDOTERM_TXBUFSIZE int "Pseudo-Terminal Tx buffer size" default 256 ---help--- Slave-to-master pipe buffer size. Default: 256 endif # PSEUDOTERM endif # SERIAL