112 lines
2.8 KiB
Plaintext
112 lines
2.8 KiB
Plaintext
#
|
|
# 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
|