#-------------------------------------------------------------------------------
# Copyright (c) 2023, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
#-------------------------------------------------------------------------------

config TFM_CODE_SHARING
    bool "Enable code sharing between MCUboot and secure firmware"
    #FIXME: Shall check IAR
    default n
    depends on !CRYPTO_HW_ACCELERATOR
    help
      This feature is only officially tested on AN521 and Musca-B1 platforms.

################################# NS ###########################################

menu "NS support"
config NS
    bool "NS app"
    default y

config TFM_NS_MANAGE_NSID
    bool "Support NSPE OS providing NSPE client_id"
    depends on !TFM_MULTI_CORE_TOPOLOGY
    help
      An NSPE client_id is provided by the NSPE OS via the SPM or directly
      by the SPM. When `TFM_NS_MANAGE_NSID` is `ON`, TF-M supports NSPE OS
      providing NSPE client_id.

config NS_EVALUATION_APP_PATH
    string "Path to TFM NS Evaluation Application"
    default ""
endmenu

################################# Mbedcrypto ###################################

menu "Mbedcrypto profile"

config MBEDCRYPTO_BUILD_TYPE
    string "Mbedcrypto build type"
    default "$(CMAKE_BUILD_TYPE)"

config TFM_MBEDCRYPTO_CONFIG_PATH
    string "Mbedtls config path"
    default "$(TFM_SOURCE_DIR)/lib/ext/mbedcrypto/mbedcrypto_config/tfm_mbedcrypto_config_default.h"
    help
      Config to use for Mbed Crypto. For increased flexibility when
      pointing to a file, set the type of this setting to 'STRING' by
      passing the :<type> portion when specifying the setting value in
      the command line. E.g.
      '-DTFM_MBEDCRYPTO_CONFIG_PATH:STRING=some_file_which_is_generated.h'
      This can be useful if the config file is generated and placed
      inside a directory already added to the include path of mbedtls.

config TFM_MBEDCRYPTO_PSA_CRYPTO_CONFIG_PATH
    string "Mbedtls psa crypto config path"
    default "$(TFM_SOURCE_DIR)/lib/ext/mbedcrypto/mbedcrypto_config/crypto_config_default.h"
    help
      Config to use psa crypto setting for Mbed Crypto

config TFM_MBEDCRYPTO_PLATFORM_EXTRA_CONFIG_PATH
    string "Mbedtls platform crypto config path"
    default ""
    help
      Config to append to standard Mbed Crypto config, used by platforms
      to configure feature support

endmenu

################################# Manifest #####################################

config TFM_MANIFEST_LIST
    string "TF-M native Secure Partition manifests list file"
    default "$(TFM_SOURCE_DIR)/tools/tfm_manifest_list.yaml"
    help
      TF-M native Secure Partition manifests list file
