| # Copyright Runtime.io 2018. All rights reserved. |
| # Copyright Nordic Semiconductor ASA 2020-2022. All rights reserved. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| menuconfig MCUMGR_CMD_FS_MGMT |
| bool "Mcumgr handlers for file management (insecure)" |
| depends on FILE_SYSTEM |
| select MGMT_MIN_DECODING_LEVEL_2 |
| help |
| Enables mcumgr handlers for file management |
| |
| This option allows mcumgr clients to access anything in the |
| file system, including application-stored secrets like |
| private keys. Use of this feature in production is strongly |
| discouraged. |
| |
| if MCUMGR_CMD_FS_MGMT |
| |
| choice FS_MGMT_MAX_FILE_SIZE |
| prompt "Maximum file size that could be uploaded/downloaded" |
| default FS_MGMT_MAX_FILE_SIZE_64KB |
| help |
| Maximum file size that will be allowed to be downloaded from |
| device. |
| This option decides on number of bytes that are reserved in |
| CBOR frame for storage of offset/size of file downloaded. |
| |
| config FS_MGMT_MAX_FILE_SIZE_64KB |
| bool "<= 64KB" |
| help |
| Files that have size up to 64KB require 1 to 3 bytes to encode |
| size/offset within CBOR frame with file chunk. |
| |
| config FS_MGMT_MAX_FILE_SIZE_4GB |
| bool "<= 4GB" |
| help |
| Files that have size up to 4GB require 1 to 5 bytes to encode |
| size/offset within CBOR frame with file chunk. |
| |
| endchoice |
| |
| config FS_MGMT_MAX_OFFSET_LEN |
| int |
| default 3 if FS_MGMT_MAX_FILE_SIZE_64KB |
| default 5 if FS_MGMT_MAX_FILE_SIZE_4GB |
| help |
| Maximal byte length of encoded offset/size, within transferred |
| CBOR frame containing chunk of downloaded file. |
| This value affects how much of data will fit into download buffer, |
| as it selects sizes of fields within headers. |
| NOTE: This option is hidden intentionally as it is intended |
| to be assigned from limited set of allowed values, depending on |
| the selection made in FS_MGMT_MAX_FILE_SIZE menu. |
| |
| config FS_MGMT_UL_CHUNK_SIZE |
| int "Maximum chunk size for file uploads (DEPRECATED)" |
| default 512 |
| help |
| DEPRECATED: The chunk is now directly read from received frame buffer |
| and is no longer copied first into intermediate buffer so the actual |
| file chunk is as much as MCUMGR_BUF_SIZE can take, less the other |
| SMP fields. |
| Limits the maximum chunk size for file uploads, in bytes. A buffer of |
| this size gets allocated on the stack during handling of a file upload command. |
| |
| config FS_MGMT_DL_CHUNK_SIZE_LIMIT |
| bool "Setting custom size of download file chunk" |
| help |
| By default file chunk, that will be read off storage and fit into |
| mcumgr frame, is automatically calculated to fit into buffer |
| of size MCUGMR_BUF_SIZE with all headers. |
| Enabling this option allows to set MAXIMUM value that will be |
| allowed for such chunk. |
| Look inside fs_mgmt_config.h for details. |
| |
| if FS_MGMT_DL_CHUNK_SIZE_LIMIT |
| |
| config FS_MGMT_DL_CHUNK_SIZE |
| int "Maximum chunk size for file downloads" |
| range 65 MCUMGR_BUF_SIZE |
| default MCUMGR_BUF_SIZE |
| help |
| Sets the MAXIMUM size of chunk which will be rounded down to |
| number of bytes that, with all the required headers, will fit |
| into MCUMGR_BUF_SIZE. This means that actual value might be lower |
| then selected, in which case compiler warning will be issued. |
| Look inside fs_mgmt_config.h for details. |
| Note that header sizes are affected by FS_MGMT_MAX_OFFSET_LEN. |
| |
| endif |
| |
| config FS_MGMT_FILE_STATUS |
| bool "File status command" |
| default y |
| help |
| This command allows a remote device to retrieve the status of a file, |
| at present only the size of the file is returned (if it exists). |
| |
| config FS_MGMT_CHECKSUM_HASH |
| bool "Checksum/hash mcumgr functions" |
| help |
| Enable this to support the hash/checksum mcumgr functionality, |
| individual checksum and hash types need to be enabled below. |
| Note that this requires enough stack space to buffer data |
| from the file being read and generate the output hash/checksum. |
| |
| if FS_MGMT_CHECKSUM_HASH |
| |
| config FS_MGMT_CHECKSUM_HASH_CHUNK_SIZE |
| int "Checksum calculation buffer size" |
| range 32 16384 |
| default 128 |
| help |
| Chunk size of buffer to use when calculating file checksum or hash |
| (uses stack). |
| |
| config FS_MGMT_CHECKSUM_IEEE_CRC32 |
| bool "IEEE CRC32 checksum support" |
| default y |
| help |
| Enable IEEE CRC32 checksum support for mcumgr. |
| |
| config FS_MGMT_HASH_SHA256 |
| bool "SHA256 hash support" |
| depends on TINYCRYPT_SHA256 || MBEDTLS_MAC_SHA256_ENABLED |
| help |
| Enable SHA256 hash support for mcumgr. |
| |
| endif |
| |
| config FS_MGMT_PATH_SIZE |
| int "Maximum file path length" |
| default 64 |
| help |
| Limits the maximum path length for file operations, in bytes. A buffer |
| of this size gets allocated on the stack during handling of file upload |
| and download commands. |
| |
| endif |