| # Copyright Runtime.io 2018. All rights reserved. |
| # Copyright Nordic Semiconductor ASA 2020-2022. All rights reserved. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| # The Kconfig file is dedicated to Application Image management group of |
| # of MCUmgr subsystem and provides Kconfig options to configure |
| # group commands behaviour and other aspects. |
| # |
| # Options defined in this file should be prefixed: |
| # MCUMGR_GRP_IMG_ -- general group options; |
| # |
| # When adding Kconfig options, that control the same feature, |
| # try to group them together by the same stem after prefix. |
| |
| menuconfig MCUMGR_GRP_IMG |
| bool "Mcumgr handlers for image management" |
| depends on FLASH |
| depends on IMG_MANAGER |
| depends on !MCUBOOT_BOOTLOADER_MODE_SINGLE_APP |
| select MPU_ALLOW_FLASH_WRITE if ARM_MPU |
| select MCUMGR_SMP_CBOR_MIN_DECODING_LEVEL_2 |
| help |
| Enables MCUmgr handlers for image management |
| |
| if MCUMGR_GRP_IMG |
| |
| if HEAP_MEM_POOL_SIZE > 0 |
| config MCUMGR_GRP_IMG_USE_HEAP_FOR_FLASH_IMG_CONTEXT |
| bool "Use heap mem pool for flash image DFU context" |
| help |
| Use heap to allocate flash image upload context, otherwise a static variable will |
| be used. The context object is used by MCUMGR_GRP_IMG_MANAGER to buffer image writes |
| and has significant size, mainly affected by image write buffer of |
| the CONFIG_IMG_BLOCK_BUF_SIZE size and additional fields that hold the state information |
| (struct flash_img_context). |
| When the option is not enabled it increases static RAM use. |
| Make sure with testing, when enabling the option, that the heap has enough size |
| to allocate this context or it will not be possible to perform DFU; it may also not be |
| possible to allocate such context when heap is under pressure, due to application |
| operation, an issue that should also be addressed within application. |
| endif |
| |
| config MCUMGR_GRP_IMG_UPDATABLE_IMAGE_NUMBER |
| int "Number of supported images" |
| default UPDATEABLE_IMAGE_NUMBER |
| range 1 2 |
| help |
| Sets how many application images are supported (pairs of secondary and primary slots). |
| Setting this to 2 requires MCUMGR_TRANSPORT_NETBUF_SIZE to be at least 512b. |
| NOTE: The UPDATEABLE_IMAGE_NUMBER of MCUBOOT configuration, even for Zephyr build, |
| needs to be set to the same value; this is due to the fact that the MCUmgr uses |
| boot_util and the UPDATEABLE_IMAGE_NUMBER controls number of images supported |
| by that library. |
| |
| config MCUMGR_GRP_IMG_VERBOSE_ERR |
| bool "Verbose error responses when uploading application image" |
| select MCUMGR_SMP_VERBOSE_ERR_RESPONSE |
| help |
| Add additional "rsn" key to SMP responses, where provided, explaining |
| non-0 "rc" codes. |
| |
| config MCUMGR_GRP_IMG_DIRECT_UPLOAD |
| bool "Allow direct image upload" |
| help |
| Enables directly uploading image to selected image partition. |
| This changes how "image" is understood by MCUmgr: normally MCUmgr allows uploading to |
| the first slot of the only image it knows, where image is understood as two slots |
| (two DTS images for Zephyr); this allows to treat every DTS defined image as direct |
| target for upload, and more than two may be used (4 at this time). |
| NOTE: When direct upload is used the image numbers are shifted by + 1, and the default |
| behaviour is, when image is not selected, to upload to image that represents secondary |
| slot in normal operation. |
| |
| config MCUMGR_GRP_IMG_REJECT_DIRECT_XIP_MISMATCHED_SLOT |
| bool "Reject Direct-XIP applications with mismatched address" |
| help |
| When enabled, the MCUmgr will compare base address of application, |
| encoded into .bin file header with use of imgtool, on upload and will |
| reject binaries that would not be able to start from available |
| Direct-XIP address. |
| The base address can be set, to an image binary header, with imgtool, |
| using the --rom-fixed command line option. |
| |
| config MCUMGR_GRP_IMG_FRUGAL_LIST |
| bool "Omit zero, empty or false values from status list" |
| help |
| The status list send back from the device will only be filled with data that is non-zero, |
| non-empty or true. This option slightly reduces number of bytes transferred back from |
| a device but requires support in client software, which has to default omitted values. |
| Works correctly with the go mcumgr-cli application. |
| |
| config MCUMGR_GRP_IMG_VERSION_CMP_USE_BUILD_NUMBER |
| bool "Use build number while comparing image version" |
| help |
| By default, the image version comparison relies only on version major, |
| minor and revision. Enable this option to take into account the build |
| number as well. |
| |
| config MCUMGR_GRP_IMG_UPLOAD_CHECK_HOOK |
| bool "Upload check hook" |
| depends on MCUMGR_MGMT_NOTIFICATION_HOOKS |
| help |
| This will enable the upload check hook which will send image upload requests to |
| registered callbacks to check with the user application if an upload should be accepted |
| or rejected. |
| |
| config MCUMGR_GRP_IMG_STATUS_HOOKS |
| bool "Status hooks" |
| depends on MCUMGR_MGMT_NOTIFICATION_HOOKS |
| help |
| This will enable DFU status hooks which can be checked by the application to monitor DFU |
| uploads. Note that these are status checking only, to allow inspecting of a file upload |
| or prevent it, CONFIG_MCUMGR_GRP_IMG_UPLOAD_CHECK_HOOK must be used. |
| |
| module = MCUMGR_GRP_IMG |
| module-str = mcumgr_grp_img |
| source "subsys/logging/Kconfig.template.log_config" |
| |
| endif |