zephyr/subsys/usb/device/class/Kconfig.cdc
Tomasz Moń 0127d000a2 usb: device: cdc_acm: Use ZLP to detect initial host read
Prevent ECHO on Linux by arming IN endpoint with ZLP when interface is
configured and making sure that actual payload is only sent after
initialization timeout. The ZLP is not visible to host side applications
because the applications are really accessing tty buffer and received
ZLP does not modify tty buffer in any way.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2023-11-13 09:43:46 +01:00

71 lines
1.7 KiB
Plaintext

# Copyright (c) 2016 Wind River Systems, Inc.
# SPDX-License-Identifier: Apache-2.0
menu "USB CDC ACM Class support"
config USB_CDC_ACM
bool "USB CDC ACM Class support"
default y
select USB_COMPOSITE_DEVICE
depends on SERIAL
depends on DT_HAS_ZEPHYR_CDC_ACM_UART_ENABLED
select SERIAL_HAS_DRIVER
select SERIAL_SUPPORT_INTERRUPT
select RING_BUFFER
select UART_INTERRUPT_DRIVEN
help
USB CDC ACM class support.
if USB_CDC_ACM
config USB_CDC_ACM_RINGBUF_SIZE
int "USB CDC ACM ring buffer size"
default 1024
help
USB CDC ACM ring buffer size
config CDC_ACM_INTERRUPT_EP_MPS
int
default 16
help
CDC ACM class interrupt IN endpoint size
config CDC_ACM_BULK_EP_MPS
int
default 512 if USB_DC_HAS_HS_SUPPORT
default 64
help
CDC ACM class bulk endpoints size
config CDC_ACM_TX_DELAY_MS
int
default 100
help
Time in milliseconds to wait before sending actual payload to host.
This is needed to prevent tty ECHO on Linux.
config CDC_ACM_IAD
bool "Force using Interface Association Descriptor"
default y
help
IAD should not be required for non-composite CDC ACM device,
but Windows 7 fails to properly enumerate without it.
Enable if you want CDC ACM to work with Windows 7.
config CDC_ACM_DTE_RATE_CALLBACK_SUPPORT
bool "Support callbacks when the USB host changes the virtual baud rate"
default BOOTLOADER_BOSSA
help
If set, enables support for a callback that is invoked when the
remote host changes the virtual baud rate. This is used
by Arduino style programmers to reset the device into the
bootloader.
module = USB_CDC_ACM
module-str = usb cdc acm
source "subsys/logging/Kconfig.template.log_config"
endif # USB_CDC_ACM
endmenu