Build: Move Storage asset defs to build variables

Removes the MAX_ASSET_SIZE and NUM_ASSETS storage definitions from
flash_layout.h and adds replacement build variables for them. This
allows for greater customisation at build time and reduces duplication
between platforms.

Change-Id: If5d20ee0cb8dede28513c10572da594c02b4ee89
Signed-off-by: Jamie Fox <jamie.fox@arm.com>
diff --git a/config/config_default.cmake b/config/config_default.cmake
index 340eff5..5c2f189 100644
--- a/config/config_default.cmake
+++ b/config/config_default.cmake
@@ -71,17 +71,21 @@
 ############################ Partitions ########################################
 
 set(TFM_PARTITION_PROTECTED_STORAGE     ON          CACHE BOOL      "Enable Protected Storage partition")
-set(PS_CREATE_FLASH_LAYOUT              ON          CACHE BOOL      "Create flash fs if it doesn't exist for Protected Storage partition")
+set(PS_CREATE_FLASH_LAYOUT              ON          CACHE BOOL      "Create flash FS if it doesn't exist for Protected Storage partition")
 set(PS_ENCRYPTION                       ON          CACHE BOOL      "Enable encryption for Protected Storage partition")
 set(PS_RAM_FS                           OFF         CACHE BOOL      "Enable emulated RAM FS for platforms that don't have flash for Protected Storage partition")
 set(PS_ROLLBACK_PROTECTION              ON          CACHE BOOL      "Enable rollback protection for Protected Storage partition")
 set(PS_VALIDATE_METADATA_FROM_FLASH     ON          CACHE BOOL      "Validate filesystem metadata every time it is read from flash")
-set(PS_CRYPTO_AEAD_ALG                  PSA_ALG_GCM CACHE STRING    "The AEAD algorithm to use for authenticated encryption in protected storage")
+set(PS_MAX_ASSET_SIZE                   "2048"      CACHE STRING    "The maximum asset size to be stored in the Protected Storage area")
+set(PS_NUM_ASSETS                       "10"        CACHE STRING    "The maximum number of assets to be stored in the Protected Storage area")
+set(PS_CRYPTO_AEAD_ALG                  PSA_ALG_GCM CACHE STRING    "The AEAD algorithm to use for authenticated encryption in Protected Storage")
 
 set(TFM_PARTITION_INTERNAL_TRUSTED_STORAGE ON       CACHE BOOL      "Enable Internal Trusted Storage partition")
-set(ITS_CREATE_FLASH_LAYOUT             ON          CACHE BOOL      "Create flash fs if it doesn't exist for Interal Trusted Storage partition")
-set(ITS_RAM_FS                          OFF         CACHE BOOL      "Enable emulated RAM FS for platforms that don't have flash for Interal Trusted Storage partition")
+set(ITS_CREATE_FLASH_LAYOUT             ON          CACHE BOOL      "Create flash FS if it doesn't exist for Internal Trusted Storage partition")
+set(ITS_RAM_FS                          OFF         CACHE BOOL      "Enable emulated RAM FS for platforms that don't have flash for Internal Trusted Storage partition")
 set(ITS_VALIDATE_METADATA_FROM_FLASH    ON          CACHE BOOL      "Validate filesystem metadata every time it is read from flash")
+set(ITS_MAX_ASSET_SIZE                  "512"       CACHE STRING    "The maximum asset size to be stored in the Internal Trusted Storage area")
+set(ITS_NUM_ASSETS                      "10"        CACHE STRING    "The maximum number of assets to be stored in the Internal Trusted Storage area")
 set(ITS_BUF_SIZE                        ""          CACHE STRING    "Size of the ITS internal data transfer buffer (defaults to ITS_MAX_ASSET_SIZE if not set)")
 
 set(TFM_PARTITION_CRYPTO                ON          CACHE BOOL      "Enable Crypto partition")
diff --git a/config/tests/config_test_psa_api.cmake b/config/tests/config_test_psa_api.cmake
index 8171bbf..d67a626 100644
--- a/config/tests/config_test_psa_api.cmake
+++ b/config/tests/config_test_psa_api.cmake
@@ -11,3 +11,9 @@
 if(CRYPTO_ENGINE_BUF_SIZE LESS 0x5000)
     set(CRYPTO_ENGINE_BUF_SIZE              0x5000      CACHE STRING    "Heap size for the crypto backend" FORCE)
 endif()
+
+# When building for the PSA Crypto API tests, ensure the ITS max asset size is
+# set to at least the size of the largest asset created by the tests
+if (("${TEST_PSA_API}" STREQUAL "CRYPTO") AND (ITS_MAX_ASSET_SIZE LESS 1229))
+    set(ITS_MAX_ASSET_SIZE                  "1229"      CACHE STRING    "The maximum asset size to be stored in the Internal Trusted Storage area" FORCE)
+endif()
diff --git a/docs/reference/services/tfm_its_integration_guide.rst b/docs/reference/services/tfm_its_integration_guide.rst
index 7c0ca5b..17cbfe2 100644
--- a/docs/reference/services/tfm_its_integration_guide.rst
+++ b/docs/reference/services/tfm_its_integration_guide.rst
@@ -193,8 +193,8 @@
 An asset is stored in a contiguous space in a block/sector. The maximum size of
 an asset can be up-to the size of the data block/sector.
 
-Internal Trusted Storage Service Definitions
-============================================
+Internal Trusted Storage Service Platform Definitions
+=====================================================
 The ITS service requires the following platform definitions:
 
 - ``ITS_SECTOR_SIZE`` - Defines the size of the flash sectors (the smallest
@@ -206,15 +206,6 @@
 - ``ITS_FLASH_PROGRAM_UNIT`` - Defines the smallest flash programmable unit in
   bytes. Valid values are powers of two between 1 and ``ITS_SECTOR_SIZE``
   inclusive.
-- ``ITS_MAX_ASSET_SIZE`` - Defines the maximum asset size to be stored in the
-  ITS area. This size is used to define the temporary buffers used by ITS to
-  read/write the asset content from/to flash. The memory used by the temporary
-  buffers is allocated statically as ITS does not use dynamic memory allocation.
-- ``ITS_NUM_ASSETS`` - Defines the maximum number of assets to be stored in the
-  ITS area. This number is used to dimension statically the filesystem metadata
-  tables in RAM (fast access) and flash (persistent storage). The memory used by
-  the filesystem metadata tables is allocated statically as ITS does not use
-  dynamic memory allocation.
 
 The sectors reserved to be used as internal trusted storage **must** be
 contiguous sectors starting at ``ITS_FLASH_AREA_ADDR``.
@@ -236,13 +227,6 @@
 - ``ITS_FLASH_AREA_SIZE`` - Defines the size of the dedicated flash area for
   internal trusted storage in bytes.
   If not defined, the platform must implement ``tfm_hal_its_fs_info()``.
-- ``ITS_BUF_SIZE``- Defines the size of the partition's internal data transfer
-  buffer. If not provided, then ``ITS_MAX_ASSET_SIZE`` is used to allow asset
-  data to be copied between the client and the filesystem in one iteration.
-  Reducing the buffer size will decrease the RAM usage of the partition at the
-  expense of latency, as data will be copied in multiple iterations. *Note:*
-  when data is copied in multiple iterations, the atomicity property of the
-  filesystem is lost in the case of an asynchronous power failure.
 - ``ITS_MAX_BLOCK_DATA_COPY`` - Defines the buffer size used when copying data
   between blocks, in bytes. If not provided, defaults to 256. Increasing this
   value will increase the memory footprint of the service.
@@ -258,13 +242,15 @@
 For API specification, please check:
 ``secure_fw/partitions/internal_trusted_storage/flash/its_flash.h``
 
-ITS Service Features Flags
-==========================
-ITS service defines a set of flags that can be used to compile in/out certain
-ITS service features. The ``CommonConfig.cmake`` file sets the default values
-of those flags. However, those flags values can be overwritten by setting them
-in ``platform/ext/<TARGET_NAME>.cmake`` based on the target capabilities or
-needs. The list of ITS services flags are:
+ITS Service Build Definitions
+=============================
+The ITS service uses a set of C definitions to compile in/out certain features,
+as well as to configure certain service parameters. When using the TF-M build
+system, these definitions are controlled by build flags of the same name. The
+``config/config_default.cmake`` file sets the default values of those flags, but
+they can be overwritten based on platform capabilities by setting them in
+``platform/ext/target/<TARGET_NAME>/config.cmake``. The list of ITS service
+build definitions is:
 
 - ``ITS_CREATE_FLASH_LAYOUT``- this flag indicates that it is required
   to create an ITS flash layout. If this flag is set, ITS service will
@@ -294,6 +280,23 @@
     storage area is platform specific (eFlash, MRAM, etc.) and it is described
     in corresponding flash_layout.h
 
+- ``ITS_MAX_ASSET_SIZE`` - Defines the maximum asset size to be stored in the
+  ITS area. This size is used to define the temporary buffers used by ITS to
+  read/write the asset content from/to flash. The memory used by the temporary
+  buffers is allocated statically as ITS does not use dynamic memory allocation.
+- ``ITS_NUM_ASSETS`` - Defines the maximum number of assets to be stored in the
+  ITS area. This number is used to dimension statically the filesystem metadata
+  tables in RAM (fast access) and flash (persistent storage). The memory used by
+  the filesystem metadata tables is allocated statically as ITS does not use
+  dynamic memory allocation.
+- ``ITS_BUF_SIZE``- Defines the size of the partition's internal data transfer
+  buffer. If not provided, then ``ITS_MAX_ASSET_SIZE`` is used to allow asset
+  data to be copied between the client and the filesystem in one iteration.
+  Reducing the buffer size will decrease the RAM usage of the partition at the
+  expense of latency, as data will be copied in multiple iterations. *Note:*
+  when data is copied in multiple iterations, the atomicity property of the
+  filesystem is lost in the case of an asynchronous power failure.
+
 --------------
 
 *Copyright (c) 2019-2020, Arm Limited. All rights reserved.*
diff --git a/docs/reference/services/tfm_ps_integration_guide.rst b/docs/reference/services/tfm_ps_integration_guide.rst
index 1bf35f5..0a414f4 100644
--- a/docs/reference/services/tfm_ps_integration_guide.rst
+++ b/docs/reference/services/tfm_ps_integration_guide.rst
@@ -207,8 +207,8 @@
 ``ps_object_defs.h``. The ``PS_OBJECT_HEADER_SIZE`` changes based on the
 ``PS_ENCRYPTION`` flag status.
 
-Protected Storage Service Definitions
-=====================================
+Protected Storage Service Platform Definitions
+==============================================
 The PS service requires the following platform definitions:
 
 - ``PS_SECTOR_SIZE`` - Defines the size of the flash sectors (the smallest
@@ -220,15 +220,6 @@
 - ``PS_FLASH_PROGRAM_UNIT`` - Defines the smallest flash programmable unit in
   bytes. Valid values are powers of two between 1 and ``PS_SECTOR_SIZE``
   inclusive.
-- ``PS_MAX_ASSET_SIZE`` - Defines the maximum asset size to be stored in the
-  PS area. This size is used to define the temporary buffers used by PS to
-  read/write the asset content from/to flash. The memory used by the temporary
-  buffers is allocated statically as PS does not use dynamic memory allocation.
-- ``PS_NUM_ASSETS`` - Defines the maximum number of assets to be stored in the
-  PS area. This number is used to dimension statically the object table size in
-  RAM (fast access) and flash (persistent storage). The memory used by the
-  object table is allocated statically as PS does not use dynamic memory
-  allocation.
 
 The sectors reserved to be used as protected storage **must** be contiguous
 sectors starting at ``PS_FLASH_AREA_ADDR``.
@@ -305,13 +296,15 @@
 ``secure_fw/partitions/protected_storage/crypto/ps_crypto_interface.c``, using
 calls to the TF-M Crypto service.
 
-PS Service Features Flags
-=========================
-PS service defines a set of flags that can be used to compile in/out certain
-PS service features. The ``CommonConfig.cmake`` file sets the default values
-of those flags. However, those flags values can be overwritten by setting them
-in ``platform/ext/<TARGET_NAME>.cmake`` based on the target capabilities or
-needs. The list of PS services flags are:
+PS Service Build Definitions
+============================
+The PS service uses a set of C definitions to compile in/out certain features,
+as well as to configure certain service parameters. When using the TF-M build
+system, these definitions are controlled by build flags of the same name. The
+``config/config_default.cmake`` file sets the default values of those flags, but
+they can be overwritten based on platform capabilities by setting them in
+``platform/ext/target/<TARGET_NAME>/config.cmake``. The list of PS service build
+definitions is:
 
 - ``PS_ENCRYPTION``- this flag allows to enable/disable encryption
   option to encrypt the protected storage data.
@@ -348,6 +341,15 @@
     storage area is platform specific (eFlash, MRAM, etc.) and it is described
     in corresponding flash_layout.h
 
+- ``PS_MAX_ASSET_SIZE`` - Defines the maximum asset size to be stored in the
+  PS area. This size is used to define the temporary buffers used by PS to
+  read/write the asset content from/to flash. The memory used by the temporary
+  buffers is allocated statically as PS does not use dynamic memory allocation.
+- ``PS_NUM_ASSETS`` - Defines the maximum number of assets to be stored in the
+  PS area. This number is used to dimension statically the object table size in
+  RAM (fast access) and flash (persistent storage). The memory used by the
+  object table is allocated statically as PS does not use dynamic memory
+  allocation.
 - ``PS_TEST_NV_COUNTERS``- this flag enables the virtual
   implementation of the PS NV counters interface in
   ``test/suites/ps/secure/nv_counters``, which emulates NV counters in
diff --git a/platform/ext/readme.rst b/platform/ext/readme.rst
index 59f7755..aeee1fa 100644
--- a/platform/ext/readme.rst
+++ b/platform/ext/readme.rst
@@ -218,10 +218,6 @@
   data.
 - ``PS_FLASH_PROGRAM_UNIT`` - Defines the smallest flash programmable unit in
   bytes.
-- ``PS_MAX_ASSET_SIZE`` - Defines the maximum asset size to be stored in the
-  PS area.
-- ``PS_NUM_ASSETS`` - Defines the maximum number of assets to be stored in the
-  PS area.
 
 .. Note::
 
@@ -245,10 +241,6 @@
   store the data.
 - ``ITS_FLASH_PROGRAM_UNIT`` - Defines the smallest flash programmable unit in
   bytes.
-- ``ITS_MAX_ASSET_SIZE`` - Defines the maximum asset size to be stored in the
-  ITS area.
-- ``ITS_NUM_ASSETS`` - Defines the maximum number of assets to be stored in the
-  ITS area.
 
 .. Note::
 
diff --git a/platform/ext/target/cypress/psoc64/partition/flash_layout.h b/platform/ext/target/cypress/psoc64/partition/flash_layout.h
index 1bf06a1..8eb501f 100644
--- a/platform/ext/target/cypress/psoc64/partition/flash_layout.h
+++ b/platform/ext/target/cypress/psoc64/partition/flash_layout.h
@@ -131,10 +131,6 @@
 #define PS_SECTORS_PER_BLOCK   0x8
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  0x1
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      2048
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          10
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -156,15 +152,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x8)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 /* Decrease flash wear slightly, at the cost of increased ITS service memory */
 #define ITS_MAX_BLOCK_DATA_COPY 512
 
diff --git a/platform/ext/target/mps2/an519/partition/flash_layout.h b/platform/ext/target/mps2/an519/partition/flash_layout.h
index ccbf5d8..8d026a3 100644
--- a/platform/ext/target/mps2/an519/partition/flash_layout.h
+++ b/platform/ext/target/mps2/an519/partition/flash_layout.h
@@ -185,10 +185,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (2048)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (10)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -210,15 +206,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/platform/ext/target/mps2/an521/partition/flash_layout.h b/platform/ext/target/mps2/an521/partition/flash_layout.h
index 393c97b..f64a681 100644
--- a/platform/ext/target/mps2/an521/partition/flash_layout.h
+++ b/platform/ext/target/mps2/an521/partition/flash_layout.h
@@ -185,10 +185,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (2048)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (10)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -210,15 +206,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/platform/ext/target/mps2/an539/partition/flash_layout.h b/platform/ext/target/mps2/an539/partition/flash_layout.h
index 45c028a..4ca51c7 100644
--- a/platform/ext/target/mps2/an539/partition/flash_layout.h
+++ b/platform/ext/target/mps2/an539/partition/flash_layout.h
@@ -184,10 +184,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (2048)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (10)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -209,15 +205,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR       FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/platform/ext/target/mps2/fvp_sse300/partition/flash_layout.h b/platform/ext/target/mps2/fvp_sse300/partition/flash_layout.h
index 07aa140..2e8538f 100644
--- a/platform/ext/target/mps2/fvp_sse300/partition/flash_layout.h
+++ b/platform/ext/target/mps2/fvp_sse300/partition/flash_layout.h
@@ -188,10 +188,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (2048)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (10)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -213,15 +209,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/platform/ext/target/mps2/sse-200_aws/partition/flash_layout.h b/platform/ext/target/mps2/sse-200_aws/partition/flash_layout.h
index 06e9bde..aca6c24 100644
--- a/platform/ext/target/mps2/sse-200_aws/partition/flash_layout.h
+++ b/platform/ext/target/mps2/sse-200_aws/partition/flash_layout.h
@@ -185,10 +185,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (2048)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (10)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -210,15 +206,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/platform/ext/target/mps3/an524/partition/flash_layout.h b/platform/ext/target/mps3/an524/partition/flash_layout.h
index c40e0c6..1c433a1 100644
--- a/platform/ext/target/mps3/an524/partition/flash_layout.h
+++ b/platform/ext/target/mps3/an524/partition/flash_layout.h
@@ -173,10 +173,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (2048)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (10)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -199,15 +195,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/platform/ext/target/musca_a/config.cmake b/platform/ext/target/musca_a/config.cmake
index 56392a6..5f831d7 100644
--- a/platform/ext/target/musca_a/config.cmake
+++ b/platform/ext/target/musca_a/config.cmake
@@ -7,3 +7,4 @@
 
 set(MCUBOOT_UPGRADE_STRATEGY            "RAM_LOAD" CACHE STRING   "Upgrade strategy when multiple boot images are loaded [OVERWRITE_ONLY, SWAP, DIRECT_XIP, RAM_LOAD]" FORCE)
 set(MCUBOOT_IMAGE_NUMBER                1          CACHE STRING   "Whether to combine S and NS into either 1 image, or sign each separately" FORCE)
+set(PS_MAX_ASSET_SIZE                   "512"      CACHE STRING   "The maximum asset size to be stored in the Protected Storage area" FORCE)
diff --git a/platform/ext/target/musca_a/partition/flash_layout.h b/platform/ext/target/musca_a/partition/flash_layout.h
index 1758259..1fb6af0 100644
--- a/platform/ext/target/musca_a/partition/flash_layout.h
+++ b/platform/ext/target/musca_a/partition/flash_layout.h
@@ -192,10 +192,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (512)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (10)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -217,15 +213,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/platform/ext/target/musca_b1/partition/flash_layout.h b/platform/ext/target/musca_b1/partition/flash_layout.h
index 66d573c..ce74de5 100644
--- a/platform/ext/target/musca_b1/partition/flash_layout.h
+++ b/platform/ext/target/musca_b1/partition/flash_layout.h
@@ -191,10 +191,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (2048)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (10)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -216,15 +212,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x4)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/platform/ext/target/musca_s1/partition/flash_layout.h b/platform/ext/target/musca_s1/partition/flash_layout.h
index 6534678..efff344 100644
--- a/platform/ext/target/musca_s1/partition/flash_layout.h
+++ b/platform/ext/target/musca_s1/partition/flash_layout.h
@@ -194,10 +194,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (2048)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (10)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -219,15 +215,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x1)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/platform/ext/target/nordic_nrf/common/nrf5340/config.cmake b/platform/ext/target/nordic_nrf/common/nrf5340/config.cmake
index 0b30eaa..c45baae 100644
--- a/platform/ext/target/nordic_nrf/common/nrf5340/config.cmake
+++ b/platform/ext/target/nordic_nrf/common/nrf5340/config.cmake
@@ -1,5 +1,6 @@
 #-------------------------------------------------------------------------------
 # Copyright (c) 2020, Nordic Semiconductor ASA.
+# Copyright (c) 2020, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -8,3 +9,4 @@
 set(SECURE_UART1                        ON         CACHE BOOL      "Enable secure UART1" FORCE)
 set(PSA_API_TEST_TARGET                 "nrf"      CACHE STRING    "PSA API test target" FORCE)
 set(TFM_EXTRA_GENERATED_FILE_LIST_PATH  ${CMAKE_CURRENT_SOURCE_DIR}/${NRF_PATH}/common/core/generated_file_list.yaml          CACHE PATH      "Path to extra generated file list. Appended to stardard TFM generated file list." FORCE)
+set(ITS_NUM_ASSETS                      "5"        CACHE STRING    "The maximum number of assets to be stored in the Internal Trusted Storage area" FORCE)
diff --git a/platform/ext/target/nordic_nrf/common/nrf5340/partition/flash_layout.h b/platform/ext/target/nordic_nrf/common/nrf5340/partition/flash_layout.h
index 51bbfba..c2802e5 100644
--- a/platform/ext/target/nordic_nrf/common/nrf5340/partition/flash_layout.h
+++ b/platform/ext/target/nordic_nrf/common/nrf5340/partition/flash_layout.h
@@ -178,10 +178,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x4)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (2048)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (10)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -203,11 +199,6 @@
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x4)
 
-/* The maximum asset size to be stored in the ITS area */
-#define ITS_MAX_ASSET_SIZE      (512)
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (5)
-
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
 #define TFM_NV_COUNTERS_AREA_SIZE    (0x18) /* 24 Bytes */
diff --git a/platform/ext/target/nordic_nrf/common/nrf9160/config.cmake b/platform/ext/target/nordic_nrf/common/nrf9160/config.cmake
index 0b30eaa..c45baae 100644
--- a/platform/ext/target/nordic_nrf/common/nrf9160/config.cmake
+++ b/platform/ext/target/nordic_nrf/common/nrf9160/config.cmake
@@ -1,5 +1,6 @@
 #-------------------------------------------------------------------------------
 # Copyright (c) 2020, Nordic Semiconductor ASA.
+# Copyright (c) 2020, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -8,3 +9,4 @@
 set(SECURE_UART1                        ON         CACHE BOOL      "Enable secure UART1" FORCE)
 set(PSA_API_TEST_TARGET                 "nrf"      CACHE STRING    "PSA API test target" FORCE)
 set(TFM_EXTRA_GENERATED_FILE_LIST_PATH  ${CMAKE_CURRENT_SOURCE_DIR}/${NRF_PATH}/common/core/generated_file_list.yaml          CACHE PATH      "Path to extra generated file list. Appended to stardard TFM generated file list." FORCE)
+set(ITS_NUM_ASSETS                      "5"        CACHE STRING    "The maximum number of assets to be stored in the Internal Trusted Storage area" FORCE)
diff --git a/platform/ext/target/nordic_nrf/common/nrf9160/partition/flash_layout.h b/platform/ext/target/nordic_nrf/common/nrf9160/partition/flash_layout.h
index 59a747a..4bbfb26 100644
--- a/platform/ext/target/nordic_nrf/common/nrf9160/partition/flash_layout.h
+++ b/platform/ext/target/nordic_nrf/common/nrf9160/partition/flash_layout.h
@@ -179,10 +179,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x4)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (2048)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (10)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -204,11 +200,6 @@
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x4)
 
-/* The maximum asset size to be stored in the ITS area */
-#define ITS_MAX_ASSET_SIZE      (512)
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (5)
-
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
 #define TFM_NV_COUNTERS_AREA_SIZE    (0x18) /* 24 Bytes */
diff --git a/platform/ext/target/nuvoton/m2351/config.cmake b/platform/ext/target/nuvoton/m2351/config.cmake
new file mode 100644
index 0000000..68cfbf1
--- /dev/null
+++ b/platform/ext/target/nuvoton/m2351/config.cmake
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2020, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+set(PS_MAX_ASSET_SIZE                   "512"       CACHE STRING    "The maximum asset size to be stored in the Protected Storage area" FORCE)
+set(PS_NUM_ASSETS                       "12"        CACHE STRING    "The maximum number of assets to be stored in the Protected Storage area" FORCE)
+set(ITS_NUM_ASSETS                      "12"        CACHE STRING    "The maximum number of assets to be stored in the Internal Trusted Storage area" FORCE)
diff --git a/platform/ext/target/nuvoton/m2351/partition/flash_layout.h b/platform/ext/target/nuvoton/m2351/partition/flash_layout.h
index 926edd9..85d506f 100644
--- a/platform/ext/target/nuvoton/m2351/partition/flash_layout.h
+++ b/platform/ext/target/nuvoton/m2351/partition/flash_layout.h
@@ -136,10 +136,6 @@
 #define PS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  (0x4)
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      (512)
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          (12)
 
 /* Internal Trusted Storage (ITS) Service definitions
  * Note: Further documentation of these definitions can be found in the
@@ -160,10 +156,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x4)
-/* The maximum asset size to be stored in the ITS area */
-#define ITS_MAX_ASSET_SIZE      (512)
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (12)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/platform/ext/target/nxp/lpcxpresso55s69/config.cmake b/platform/ext/target/nxp/lpcxpresso55s69/config.cmake
index a81c8a1..683c61f 100644
--- a/platform/ext/target/nxp/lpcxpresso55s69/config.cmake
+++ b/platform/ext/target/nxp/lpcxpresso55s69/config.cmake
@@ -4,3 +4,6 @@
 # SPDX-License-Identifier: BSD-3-Clause
 #
 #-------------------------------------------------------------------------------
+
+set(ITS_NUM_ASSETS                      "5"         CACHE STRING    "The maximum number of assets to be stored in the Internal Trusted Storage area" FORCE)
+set(PS_NUM_ASSETS                       "5"         CACHE STRING    "The maximum number of assets to be stored in the Protected Storage area" FORCE)
diff --git a/platform/ext/target/nxp/lpcxpresso55s69/partition/flash_layout.h b/platform/ext/target/nxp/lpcxpresso55s69/partition/flash_layout.h
index 18c37c1..2124725 100755
--- a/platform/ext/target/nxp/lpcxpresso55s69/partition/flash_layout.h
+++ b/platform/ext/target/nxp/lpcxpresso55s69/partition/flash_layout.h
@@ -211,11 +211,6 @@
 /* Specifies the smallest flash programmable unit in bytes */

 #define PS_FLASH_PROGRAM_UNIT  FLASH_AREA_IMAGE_SECTOR_SIZE

 

-/* The maximum asset size to be stored in the PS area */

-#define PS_MAX_ASSET_SIZE      (2048)

-/* The maximum number of assets to be stored in the PS area */

-#define PS_NUM_ASSETS          (5)

-

 /* Internal Trusted Storage (ITS) Service definitions

  * Note: Further documentation of these definitions can be found in the

  * TF-M ITS Integration Guide. The ITS should be in the internal flash, but is

@@ -237,16 +232,6 @@
 /* Specifies the smallest flash programmable unit in bytes */

 #define ITS_FLASH_PROGRAM_UNIT  FLASH_AREA_IMAGE_SECTOR_SIZE

 

-/* The maximum asset size to be stored in the ITS area */

-#ifdef PSA_API_TEST_CRYPTO

-/* Need larger asset size for PSA API Crypto compliance suite */

-#define ITS_MAX_ASSET_SIZE      (1229)

-#else

-#define ITS_MAX_ASSET_SIZE      (512)

-#endif

-/* The maximum number of assets to be stored in the ITS area */

-#define ITS_NUM_ASSETS          (5)

-

 /* NV Counters definitions */

 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET

 #define TFM_NV_COUNTERS_AREA_SIZE    FLASH_AREA_IMAGE_SECTOR_SIZE

diff --git a/platform/ext/target/stm/nucleo_l552ze_q/include/flash_layout.h b/platform/ext/target/stm/nucleo_l552ze_q/include/flash_layout.h
index 857e9f6..39579fc 100644
--- a/platform/ext/target/stm/nucleo_l552ze_q/include/flash_layout.h
+++ b/platform/ext/target/stm/nucleo_l552ze_q/include/flash_layout.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2020 Arm Limited. All rights reserved.
  * Copyright (c) 2020 Cypress Semiconductor Corporation. All rights reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -179,10 +179,6 @@
 #define PS_NBR_OF_SECTORS  (FLASH_PS_AREA_SIZE / PS_SECTOR_SIZE)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  0x8
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      2048
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          10
 
 #define ITS_FLASH_DEV_NAME TFM_Driver_FLASH0
 
@@ -198,15 +194,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x8)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/platform/ext/target/stm/stm32l562e_dk/include/flash_layout.h b/platform/ext/target/stm/stm32l562e_dk/include/flash_layout.h
index f9937b1..153e1cc 100644
--- a/platform/ext/target/stm/stm32l562e_dk/include/flash_layout.h
+++ b/platform/ext/target/stm/stm32l562e_dk/include/flash_layout.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2020 Arm Limited. All rights reserved.
  * Copyright (c) 2020 Cypress Semiconductor Corporation. All rights reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -179,10 +179,6 @@
 #define PS_NBR_OF_SECTORS  (FLASH_PS_AREA_SIZE / PS_SECTOR_SIZE)
 /* Specifies the smallest flash programmable unit in bytes */
 #define PS_FLASH_PROGRAM_UNIT  0x8
-/* The maximum asset size to be stored in the PS area */
-#define PS_MAX_ASSET_SIZE      2048
-/* The maximum number of assets to be stored in the PS area */
-#define PS_NUM_ASSETS          10
 
 #define ITS_FLASH_DEV_NAME TFM_Driver_FLASH0
 
@@ -198,15 +194,6 @@
 #define ITS_SECTORS_PER_BLOCK   (0x1)
 /* Specifies the smallest flash programmable unit in bytes */
 #define ITS_FLASH_PROGRAM_UNIT  (0x8)
-/* The maximum asset size to be stored in the ITS area */
-#ifdef PSA_API_TEST_CRYPTO
-/* Need larger asset size for PSA API Crypto compliance suite */
-#define ITS_MAX_ASSET_SIZE      (1229)
-#else
-#define ITS_MAX_ASSET_SIZE      (512)
-#endif
-/* The maximum number of assets to be stored in the ITS area */
-#define ITS_NUM_ASSETS          (10)
 
 /* NV Counters definitions */
 #define TFM_NV_COUNTERS_AREA_ADDR    FLASH_NV_COUNTERS_AREA_OFFSET
diff --git a/secure_fw/partitions/internal_trusted_storage/CMakeLists.txt b/secure_fw/partitions/internal_trusted_storage/CMakeLists.txt
index 8eb84bc..b527c51 100644
--- a/secure_fw/partitions/internal_trusted_storage/CMakeLists.txt
+++ b/secure_fw/partitions/internal_trusted_storage/CMakeLists.txt
@@ -53,14 +53,44 @@
         $<$<BOOL:${PS_RAM_FS}>:PS_RAM_FS>
         $<$<BOOL:${PS_ROLLBACK_PROTECTION}>:PS_ROLLBACK_PROTECTION>
         $<$<BOOL:${PS_VALIDATE_METADATA_FROM_FLASH}>:PS_VALIDATE_METADATA_FROM_FLASH>
-        $<$<BOOL:${PS_CRYPTO_AEAD_ALG}>:PS_CRYPTO_AEAD_ALG=${PS_CRYPTO_AEAD_ALG}>
+        PS_MAX_ASSET_SIZE=${PS_MAX_ASSET_SIZE}
+        PS_NUM_ASSETS=${PS_NUM_ASSETS}
+        PS_CRYPTO_AEAD_ALG=${PS_CRYPTO_AEAD_ALG}
     PRIVATE
         $<$<BOOL:${ITS_CREATE_FLASH_LAYOUT}>:ITS_CREATE_FLASH_LAYOUT>
         $<$<BOOL:${ITS_RAM_FS}>:ITS_RAM_FS>
         $<$<OR:$<BOOL:${ITS_VALIDATE_METADATA_FROM_FLASH}>,$<BOOL:PS_VALIDATE_METADATA_FROM_FLASH>>:ITS_VALIDATE_METADATA_FROM_FLASH>
-        $<$<BOOL:${ITS_BUF_SIZE}>:ITS_BUF_SIZE>
+        ITS_MAX_ASSET_SIZE=${ITS_MAX_ASSET_SIZE}
+        ITS_NUM_ASSETS=${ITS_NUM_ASSETS}
+        $<$<BOOL:${ITS_BUF_SIZE}>:ITS_BUF_SIZE=${ITS_BUF_SIZE}>
 )
 
+################ Display the configuration being applied #######################
+
+message(STATUS "----------- Display storage configuration - start ------------")
+
+message(STATUS "PS_CREATE_FLASH_LAYOUT is set to ${PS_CREATE_FLASH_LAYOUT}")
+message(STATUS "PS_ENCRYPTION is set to ${PS_ENCRYPTION}")
+message(STATUS "PS_RAM_FS is set to ${PS_RAM_FS}")
+message(STATUS "PS_ROLLBACK_PROTECTION is set to ${PS_ROLLBACK_PROTECTION}")
+message(STATUS "PS_VALIDATE_METADATA_FROM_FLASH is set to ${PS_VALIDATE_METADATA_FROM_FLASH}")
+message(STATUS "PS_MAX_ASSET_SIZE is set to ${PS_MAX_ASSET_SIZE}")
+message(STATUS "PS_NUM_ASSETS is set to ${PS_NUM_ASSETS}")
+message(STATUS "PS_CRYPTO_AEAD_ALG is set to ${PS_CRYPTO_AEAD_ALG}")
+
+message(STATUS "ITS_CREATE_FLASH_LAYOUT is set to ${ITS_CREATE_FLASH_LAYOUT}")
+message(STATUS "ITS_RAM_FS is set to ${ITS_RAM_FS}")
+message(STATUS "ITS_VALIDATE_METADATA_FROM_FLASH is set to ${ITS_VALIDATE_METADATA_FROM_FLASH}")
+message(STATUS "ITS_MAX_ASSET_SIZE is set to ${ITS_MAX_ASSET_SIZE}")
+message(STATUS "ITS_NUM_ASSETS is set to ${ITS_NUM_ASSETS}")
+if (${ITS_BUF_SIZE})
+    message(STATUS "ITS_BUF_SIZE is set to ${ITS_BUF_SIZE}")
+else()
+    message(STATUS "ITS_BUF_SIZE is not set (defaults to ITS_MAX_ASSET_SIZE)")
+endif()
+
+message(STATUS "----------- Display storage configuration - stop -------------")
+
 ############################ Secure API ########################################
 
 target_sources(tfm_secure_api