|
3 | 3 |
|
4 | 4 | config OPENTHREAD
|
5 | 5 | bool "OpenThread Support"
|
| 6 | + imply FLASH |
| 7 | + imply FLASH_MAP |
| 8 | + imply MPU_ALLOW_FLASH_WRITE |
| 9 | + |
| 10 | + select SETTINGS if FLASH |
| 11 | + select OPENTHREAD_SETTINGS_RAM if !FLASH |
| 12 | + select CPP |
| 13 | + select REBOOT |
| 14 | + select ENTROPY_GENERATOR |
6 | 15 | help
|
7 | 16 | This option enables the OpenThread library
|
8 | 17 |
|
9 | 18 | if OPENTHREAD
|
10 | 19 |
|
| 20 | +choice OPENTHREAD_IMPLEMENTATION |
| 21 | + prompt "OpenThread origin selection" |
| 22 | + help |
| 23 | + Select OpenThread stack to use for build. Custom OpenThread implementations |
| 24 | + can be added to the application Kconfig. |
| 25 | + |
| 26 | +config OPENTHREAD_SOURCES |
| 27 | + bool "OpenThread from sources" |
| 28 | + help |
| 29 | + Build Zephyr's OpenThread port from sources. |
| 30 | + |
| 31 | +endchoice |
| 32 | + |
| 33 | +config OPENTHREAD_MANUAL_START |
| 34 | + bool "Start OpenThread stack manually" |
| 35 | + help |
| 36 | + If enabled, OpenThread stack will have to be configured and |
| 37 | + started manually, with respective API calls or CLI/NCP commands. |
| 38 | + Otherwise, OpenThread will configure the network parameters and try to |
| 39 | + join the Thread network automatically during initialization (using |
| 40 | + credentials stored in persistent storage, obtained during |
| 41 | + commissioning or pre-commissioned with other Kconfig options, |
| 42 | + depending on configuration used). |
| 43 | + |
| 44 | +menu "Logging" |
| 45 | + |
| 46 | +menuconfig OPENTHREAD_DEBUG |
| 47 | + bool "OpenThread stack logging support" |
| 48 | + help |
| 49 | + This option enables logging support for OpenThread. |
| 50 | + |
| 51 | +choice OPENTHREAD_LOG_LEVEL_CHOICE |
| 52 | + prompt "OpenThread stack log level" |
| 53 | + depends on OPENTHREAD_DEBUG |
| 54 | + help |
| 55 | + This option selects log level for OpenThread stack. |
| 56 | + |
| 57 | +config OPENTHREAD_LOG_LEVEL_CRIT |
| 58 | + bool "Critical" |
| 59 | +config OPENTHREAD_LOG_LEVEL_WARN |
| 60 | + bool "Warning" |
| 61 | +config OPENTHREAD_LOG_LEVEL_NOTE |
| 62 | + bool "Notice" |
| 63 | +config OPENTHREAD_LOG_LEVEL_INFO |
| 64 | + bool "Informational" |
| 65 | +config OPENTHREAD_LOG_LEVEL_DEBG |
| 66 | + bool "Debug" |
| 67 | +endchoice # OPENTHREAD_LOG_LEVEL_CHOICE |
| 68 | + |
| 69 | +config OPENTHREAD_LOG_LEVEL |
| 70 | + int |
| 71 | + default 1 if OPENTHREAD_LOG_LEVEL_CRIT |
| 72 | + default 2 if OPENTHREAD_LOG_LEVEL_WARN |
| 73 | + default 3 if OPENTHREAD_LOG_LEVEL_NOTE |
| 74 | + default 4 if OPENTHREAD_LOG_LEVEL_INFO |
| 75 | + default 5 if OPENTHREAD_LOG_LEVEL_DEBG |
| 76 | + default 0 |
| 77 | + help |
| 78 | + Log level for OpenThread stack. |
| 79 | + |
| 80 | +config OPENTHREAD_PLATFORM_LOG_LEVEL |
| 81 | + int |
| 82 | + default 1 if OPENTHREAD_LOG_LEVEL_CRIT |
| 83 | + default 2 if OPENTHREAD_LOG_LEVEL_WARN |
| 84 | + default 3 if OPENTHREAD_LOG_LEVEL_NOTE || OPENTHREAD_LOG_LEVEL_INFO |
| 85 | + default 4 if OPENTHREAD_LOG_LEVEL_DEBG |
| 86 | + default 0 |
| 87 | + help |
| 88 | + Log level for OpenThread Zephyr platform. |
| 89 | + |
| 90 | +endmenu # "Logging" |
| 91 | + |
| 92 | +menu "Zephyr optimizations" |
| 93 | + |
| 94 | +config OPENTHREAD_THREAD_PREEMPTIVE |
| 95 | + bool "Set Openthread thread to be preemptive" |
| 96 | + |
| 97 | +config OPENTHREAD_THREAD_PRIORITY |
| 98 | + int "OpenThread thread priority" |
| 99 | + default 0 if OPENTHREAD_THREAD_PREEMPTIVE |
| 100 | + default 8 |
| 101 | + |
| 102 | +config OPENTHREAD_THREAD_STACK_SIZE |
| 103 | + int "OpenThread thread stack size" |
| 104 | + default 6144 if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| 105 | + default 6240 if (OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER) && MPU_STACK_GUARD && FPU_SHARING && CPU_CORTEX_M |
| 106 | + default 3168 if MPU_STACK_GUARD && FPU_SHARING && CPU_CORTEX_M |
| 107 | + default 3072 |
| 108 | + |
| 109 | + |
| 110 | +config OPENTHREAD_PKT_LIST_SIZE |
| 111 | + int "List size for IPv6 packet buffering" |
| 112 | + default 10 |
| 113 | + |
| 114 | +config OPENTHREAD_RADIO_WORKQUEUE_STACK_SIZE |
| 115 | + int "OpenThread radio transmit workqueue stack size" |
| 116 | + default 608 if MPU_STACK_GUARD && FPU_SHARING && CPU_CORTEX_M |
| 117 | + default 512 |
| 118 | + |
| 119 | +endmenu # "Zephyr optimizations" |
| 120 | + |
| 121 | + |
| 122 | +config OPENTHREAD_SHELL |
| 123 | + bool "OpenThread shell" |
| 124 | + depends on SHELL |
| 125 | + |
| 126 | +config MBEDTLS_PROMPTLESS |
| 127 | + bool |
| 128 | + default y if !CUSTOM_OPENTHREAD_SECURITY |
| 129 | + |
| 130 | +choice OPENTHREAD_SECURITY |
| 131 | + prompt "OpenThread security" |
| 132 | + default OPENTHREAD_MBEDTLS_CHOICE |
| 133 | + |
| 134 | +config CUSTOM_OPENTHREAD_SECURITY |
| 135 | + bool "Custom" |
| 136 | + help |
| 137 | + Security settings will be controlled directly by the user. |
| 138 | + Enabling this setting will give access to full control of mbed TLS |
| 139 | + configuration. |
| 140 | + |
| 141 | +config OPENTHREAD_MBEDTLS_CHOICE |
| 142 | + bool "mbed TLS built-in" |
| 143 | + select OPENTHREAD_MBEDTLS |
| 144 | + help |
| 145 | + Use the OpenThread mbed TLS configuration pre-defined security scheme. |
| 146 | + |
| 147 | +endchoice |
| 148 | + |
| 149 | +config OPENTHREAD_MBEDTLS |
| 150 | + bool |
| 151 | + select MBEDTLS |
| 152 | + select MBEDTLS_ENABLE_HEAP |
| 153 | + select MBEDTLS_CIPHER_AES_ENABLED |
| 154 | + select MBEDTLS_CIPHER_CCM_ENABLED |
| 155 | + select MBEDTLS_SHA256 |
| 156 | + select MBEDTLS_ENTROPY_C |
| 157 | + select MBEDTLS_CMAC |
| 158 | + select MBEDTLS_CIPHER |
| 159 | + select MBEDTLS_MD |
| 160 | + select MBEDTLS_TLS_VERSION_1_2 if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| 161 | + select MBEDTLS_DTLS if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| 162 | + select MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| 163 | + select MBEDTLS_ECJPAKE_C if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| 164 | + select MBEDTLS_ECP_DP_SECP256R1_ENABLED if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER || \ |
| 165 | + OPENTHREAD_SRP_CLIENT || OPENTHREAD_SRP_SERVER |
| 166 | + select MBEDTLS_ECP_NIST_OPTIM if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| 167 | + select MBEDTLS_CTR_DRBG_ENABLED if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| 168 | + select MBEDTLS_HMAC_DRBG_ENABLED if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER || \ |
| 169 | + OPENTHREAD_SRP_CLIENT || OPENTHREAD_SRP_SERVER |
| 170 | + select MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED if OPENTHREAD_ECDSA |
| 171 | + select MBEDTLS_ECDH_C if OPENTHREAD_ECDSA |
| 172 | + select MBEDTLS_ECDSA_C if OPENTHREAD_ECDSA |
| 173 | + select MBEDTLS_ECDSA_DETERMINISTIC if OPENTHREAD_ECDSA |
| 174 | + select MBEDTLS_PK_WRITE_C if OPENTHREAD_ECDSA |
| 175 | + select MBEDTLS_ECP_C if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER || OPENTHREAD_ECDSA |
| 176 | + |
| 177 | + |
| 178 | +config OPENTHREAD_MBEDTLS_LIB_NAME |
| 179 | + string "mbedtls lib name" |
| 180 | + default "mbedTLS" |
| 181 | + help |
| 182 | + This option allows to specify one or more mbedtls library files to be |
| 183 | + linked with OpenThread. Separate multiple values with space " ". |
| 184 | + |
| 185 | +config OPENTHREAD_COPROCESSOR |
| 186 | + bool "OpenThread Co-Processor" |
| 187 | + select OPENTHREAD_MANUAL_START |
| 188 | + select RING_BUFFER |
| 189 | + select UART_INTERRUPT_DRIVEN |
| 190 | + help |
| 191 | + Enable Co-Processor in OpenThread stack. |
| 192 | + |
| 193 | +if OPENTHREAD_COPROCESSOR |
| 194 | + |
| 195 | +choice OPENTHREAD_COPROCESSOR_CHOICE |
| 196 | + prompt "OpenThread Co-Processor type" |
| 197 | + help |
| 198 | + This option selects Thread network co-processor type |
| 199 | + |
| 200 | +config OPENTHREAD_COPROCESSOR_NCP |
| 201 | + bool "NCP - Network Co-Processor" |
| 202 | +config OPENTHREAD_COPROCESSOR_RCP |
| 203 | + bool "RCP - Radio Co-Processor" |
| 204 | +endchoice # OPENTHREAD_COPROCESSOR_CHOICE |
| 205 | + |
| 206 | +config OPENTHREAD_COPROCESSOR_UART_RING_BUFFER_SIZE |
| 207 | + int "Set Co-Processor UART ring buffer size" |
| 208 | + default 4096 |
| 209 | + help |
| 210 | + TX buffer size for the OpenThread Co-Processor UART. |
| 211 | + |
| 212 | +config OPENTHREAD_COPROCESSOR_VENDOR_HOOK_SOURCE |
| 213 | + string "Path to vendor hook source file" |
| 214 | + help |
| 215 | + Provides path to compile vendor hook file. |
| 216 | + |
| 217 | +endif # OPENTHREAD_COPROCESSOR |
| 218 | + |
| 219 | +config OPENTHREAD_PLATFORM_INFO |
| 220 | + string "Platform information for OpenThread" |
| 221 | + default "ZEPHYR" |
| 222 | + help |
| 223 | + Platform information for OpenThread |
| 224 | + |
| 225 | +config OPENTHREAD_CUSTOM_PARAMETERS |
| 226 | + string "Custom Parameters to pass to OpenThread build system" |
| 227 | + default "" |
| 228 | + help |
| 229 | + This option is intended for advanced users only. |
| 230 | + Pass additional parameters that do not have corresponding Kconfig |
| 231 | + options to the OpenThread build system. Separate multiple values with |
| 232 | + space " ", for example: |
| 233 | + "OPENTHREAD_CONFIG_JOINER_ENABLE=1 OPENTHREAD_CONFIG_JOINER_MAX_CANDIDATES=3" |
| 234 | + |
| 235 | +config OPENTHREAD_NUM_MESSAGE_BUFFERS |
| 236 | + int "The number of message buffers in the buffer pool" |
| 237 | + default 128 |
| 238 | + help |
| 239 | + "The number of message buffers in the buffer pool." |
| 240 | + |
| 241 | +config OPENTHREAD_MESSAGE_BUFFER_SIZE |
| 242 | + int "The size of a message buffer in bytes" |
| 243 | + default 128 |
| 244 | + help |
| 245 | + "The size of a message buffer in bytes" |
| 246 | + |
| 247 | +config OPENTHREAD_PLATFORM_MESSAGE_MANAGEMENT |
| 248 | + bool "Use platform message management" |
| 249 | + help |
| 250 | + The message pool is managed by platform defined logic. |
| 251 | + |
| 252 | +config OPENTHREAD_MAX_STATECHANGE_HANDLERS |
| 253 | + int "The maximum number of state-changed callback handlers" |
| 254 | + default 2 |
| 255 | + help |
| 256 | + The maximum number of state-changed callback handlers |
| 257 | + set using otSetStateChangedCallback. |
| 258 | + |
| 259 | +config OPENTHREAD_TMF_ADDRESS_CACHE_ENTRIES |
| 260 | + int "The number of EID-to-RLOC cache entries" |
| 261 | + default 20 |
| 262 | + help |
| 263 | + The number of EID-to-RLOC cache entries. |
| 264 | + |
| 265 | +config OPENTHREAD_TMF_ADDRESS_CACHE_MAX_SNOOP_ENTRIES |
| 266 | + int "The maximum number of EID-to-RLOC cache entries" |
| 267 | + default 2 |
| 268 | + help |
| 269 | + The maximum number of EID-to-RLOC cache entries that can be used for |
| 270 | + "snoop optimization" where an entry is created by inspecting a received |
| 271 | + message. |
| 272 | + |
| 273 | +config OPENTHREAD_LOG_PREPEND_LEVEL_ENABLE |
| 274 | + bool "Prepending the log level to all OpenThread log messages" |
| 275 | + help |
| 276 | + When enabled the OpenThread logs will be prepended with the appropriate |
| 277 | + log level prefix i.e. [CRIT], [WARN], [NOTE], [INFO], [DEBG]. |
| 278 | + |
| 279 | +config OPENTHREAD_MAC_SOFTWARE_ACK_TIMEOUT_ENABLE |
| 280 | + bool "Software ACK timeout logic" |
| 281 | + default y |
| 282 | + help |
| 283 | + Set y if the radio supports AckTime event |
| 284 | + |
| 285 | +config OPENTHREAD_MAC_SOFTWARE_RETRANSMIT_ENABLE |
| 286 | + bool "Software retransmission logic" |
| 287 | + default y |
| 288 | + help |
| 289 | + Set y if the radio supports tx retry logic with collision avoidance (CSMA) |
| 290 | + |
| 291 | +config OPENTHREAD_MAC_SOFTWARE_CSMA_BACKOFF_ENABLE |
| 292 | + bool "Software CSMA backoff logic" |
| 293 | + default y |
| 294 | + help |
| 295 | + Set y to enable software CSMA backoff. The option can be disabled if |
| 296 | + the radio has hardware support for this feature (IEEE802154_HW_CSMA). |
| 297 | + |
| 298 | +config OPENTHREAD_CRYPTO_PSA |
| 299 | + bool "ARM PSA crypto API" |
| 300 | + depends on MBEDTLS_PSA_CRYPTO_CLIENT |
| 301 | + select OPENTHREAD_PLATFORM_KEY_REF if !OPENTHREAD_COPROCESSOR_RCP |
| 302 | + imply OPENTHREAD_PLATFORM_KEYS_EXPORTABLE_ENABLE |
| 303 | + help |
| 304 | + Enable crypto backend library implementation based on ARM PSA crypto |
| 305 | + API instead of the default, using mbedTLS. |
| 306 | + |
| 307 | +config OPENTHREAD_PLATFORM_KEYS_EXPORTABLE_ENABLE |
| 308 | + bool "Make MAC keys exportable" |
| 309 | + depends on OPENTHREAD_PLATFORM_KEY_REF |
| 310 | + help |
| 311 | + Enable the creation of exportable MAC keys in the OpenThread Key Manager. |
| 312 | + |
| 313 | +config OPENTHREAD_INTERFACE_EARLY_UP |
| 314 | + bool "Make OpenThread interface ready as soon as Thread is enabled" |
| 315 | + help |
| 316 | + When enabled, OpenThread interface will be marked ready (operational |
| 317 | + UP) as soon as Thread has been enabled. This means the interface will |
| 318 | + be ready to transmit application packets during the Mesh Link |
| 319 | + Establishment phase. |
| 320 | + Otherwise, OpenThread interface will be marked operational UP only |
| 321 | + after the device joins a Thread network. |
| 322 | + |
11 | 323 | menu "OpenThread stack features"
|
12 | 324 | rsource "Kconfig.features"
|
13 | 325 | endmenu
|
|
0 commit comments