# 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
	select MCUMGR_SMP_CBOR_MIN_ENCODING_LEVEL_3 if ZCBOR_CANONICAL
	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 3
	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_ALLOW_CONFIRM_NON_ACTIVE_IMAGE_SECONDARY
	bool "Allow to confirm secondary slot of non-active image"
	default y
	help
	  Allows to confirm secondary (non-active) slot of non-active image.
	  Normally it should not be allowed to confirm any slots of non-active
	  image, via MCUmgr commands, to prevent confirming something that is
	  broken and may not boot in other slot; instead application should
	  have means to test and confirm the image.

config MCUMGR_GRP_IMG_ALLOW_CONFIRM_NON_ACTIVE_IMAGE_ANY
	bool "Allow to confirm slots of non-active image"
	select MCUMGR_GRP_IMG_ALLOW_CONFIRM_NON_ACTIVE_IMAGE_SECONDARY
	help
	  Allows to confirm any slot of non-active image.
	  Normally it should not be allowed to confirm any slots of non-active
	  image, via MCUmgr commands, to prevent confirming something that is
	  broken and may not boot in other slot; instead application should
	  have means to test and confirm the image.

if !MCUBOOT_BOOTLOADER_MODE_DIRECT_XIP
config MCUMGR_GRP_IMG_ALLOW_ERASE_PENDING
	bool "Allow to erase pending slot"
	help
	  Allows erasing secondary slot which is marked for test or confirmed; this allows
	  erasing slots that have been set for next boot but the device has not
	  reset yet, so has not yet been swapped.
endif

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.

config MCUMGR_GRP_IMG_MUTEX
	bool "Mutex locking"
	help
	  This will enable use of a mutex to lock the image group object access, preventing issues
	  of concurrent thread (i.e. multiple transport) access. This option also makes the
	  ``img_mgmt_reset_upload()`` function visible in the image management group header, which
	  can be used by applications to reset the image management state (useful if there are
	  multiple ways that firmware updates can be loaded).

choice MCUMGR_GRP_IMG_TOO_LARGE_CHECK
	prompt "Image size check overhead"
	default MCUMGR_GRP_IMG_TOO_LARGE_DISABLED
	help
	  MCUboot images should be limited to the maximum size that the bootloader can swap, in
	  order to know this size, additional information is needed from the MCUboot
	  configuration, otherwise an image can be uploaded that is too large for the bootloader
	  to swap, this selects which method to use.

	  Note: setting this to a non-disabled option will prevent uploading of padded and
	  confirmed images, if support for that is required then this feature should be left as
	  disabled.

config MCUMGR_GRP_IMG_TOO_LARGE_DISABLED
	bool "Disabled"
	help
	  Will not take MCUboot configuration into account when checking for maximum file size.

config MCUMGR_GRP_IMG_TOO_LARGE_SYSBUILD
	bool "Via Sysbuild from MCUboot configuration"
	depends on ROM_END_OFFSET > 0 || MCUBOOT_UPDATE_FOOTER_SIZE > 0
	help
	  Will use the image overhead size calculated during Sysbuild image configuration.

config MCUMGR_GRP_IMG_TOO_LARGE_BOOTLOADER_INFO
	bool "Via retention bootloader info"
	depends on RETENTION_BOOTLOADER_INFO_OUTPUT_FUNCTION
	help
	  Will fetch the maximum image size from the bootloader info retention subsystem module.

endchoice

module = MCUMGR_GRP_IMG
module-str = mcumgr_grp_img
source "subsys/logging/Kconfig.template.log_config"

endif
