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/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.*