| # |
| # Copyright (c) 2020 Siddharth Chandrasekaran <siddharth@embedjournal.com> |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| # |
| |
| menuconfig OSDP |
| bool "Open Supervised Device Protocol (OSDP) driver" |
| select RING_BUFFER |
| imply SERIAL_SUPPORT_INTERRUPT |
| imply UART_INTERRUPT_DRIVEN |
| imply UART_USE_RUNTIME_CONFIGURE |
| select CRC |
| help |
| Add support for Open Supervised Device Protocol (OSDP) |
| |
| if OSDP |
| |
| choice |
| prompt "OSDP Mode of Operation" |
| config OSDP_MODE_PD |
| bool "Configure OSDP in Peripheral Device mode" |
| help |
| Configure this device to operate as a PD (Peripheral Device) |
| config OSDP_MODE_CP |
| bool "Configure OSDP in Control Panel mode" |
| help |
| Configure this device to operate as a CP (Control Panel) |
| endchoice |
| |
| config OSDP_UART_BAUD_RATE |
| int "OSDP UART baud rate" |
| default 115200 |
| help |
| OSDP defines that baud rate can be either 9600 or 38400 or |
| 115200. |
| |
| config OSDP_LOG_LEVEL |
| int "OSDP Logging Level" |
| default 1 |
| help |
| Set the logging level for the OSDP driver |
| |
| config OSDP_UART_BUFFER_LENGTH |
| int "OSDP UART buffer length" |
| default 256 |
| help |
| OSDP RX and TX buffer FIFO length. |
| |
| config OSDP_THREAD_STACK_SIZE |
| int "OSDP Thread stack size" |
| default 1024 |
| help |
| Thread stack size for osdp refresh thread |
| |
| config OSDP_PACKET_TRACE |
| bool "Print bytes sent/received over OSDP to console" |
| help |
| Prints bytes sent/received over OSDP to console for debugging. |
| LOG_HEXDUMP_DBG() is used to achieve this and can be very verbose. |
| |
| config OSDP_SKIP_MARK_BYTE |
| bool "Skip sending the initial marking byte (0xFF)" |
| help |
| As per the OSDP specification, the first byte in the channel has |
| to be a MARK byte which is 0xFF. Since this is not stated in the |
| packet structure definition, some commercial CPs and PDs do not |
| handle the initial mark byte correctly. This option can be used to |
| completely disable sending/expecting a mark byte to work with |
| such non-conforming devices. |
| |
| config OSDP_SC_ENABLED |
| bool "OSDP Secure Channel" |
| depends on CSPRNG_ENABLED |
| default y |
| select CRYPTO |
| select CRYPTO_MBEDTLS_SHIM |
| select MBEDTLS |
| select MBEDTLS_CIPHER_AES_ENABLED |
| select MBEDTLS_CIPHER_CCM_ENABLED |
| help |
| Secure the OSDP communication channel with encryption and mutual |
| authentication. |
| |
| if OSDP_SC_ENABLED |
| |
| config OSDP_SC_RETRY_WAIT_SEC |
| int "Retry wait time in seconds after a Secure Channel error" |
| default 600 |
| help |
| Time in seconds to wait after a secure channel failure, and before |
| retrying to establish it. |
| |
| config OSDP_CRYPTO_DRV_NAME |
| string "Crypto driver to use with OSDP" |
| default "CRYPTO_MTLS" |
| help |
| OSDP Secure Channel uses AES-128 to secure communication between |
| CP and PD. Provide an available crypto driver name here. |
| |
| endif # OSDP_SC_ENABLED |
| |
| if OSDP_MODE_PD |
| source "subsys/mgmt/osdp/Kconfig.pd" |
| endif |
| |
| if OSDP_MODE_CP |
| source "subsys/mgmt/osdp/Kconfig.cp" |
| endif |
| |
| endif # OSDP |