Core: Use the stack region in the linker file

Using array to store stack will consume lots of memory. To let all
platforms have enough RAM space, change to use every partition's own
stack from linker script.
 - Use tfm_spm_partition_memory_data_t to store memory information
   instead of unified stack size in level 1.
 - Initialize partition thread stack range with its own size.
 - Remove the unified stack size member from the spm_partition_desc_t
   structure for level 1.
 - Make tfm_spm_partition_get_stack_bottom() and
   tfm_spm_partition_get_stack_top() functions available for all levels.
 - Remove tfm_spm_partition_get_stack_base_ext() and
   tfm_spm_partition_get_stack_limit_ext() functions.

Change-Id: I2025a49957d60df47e693049fc04146a7ed97b62
Signed-off-by: Summer Qin <summer.qin@arm.com>
diff --git a/platform/include/tfm_spm_hal.h b/platform/include/tfm_spm_hal.h
index 509f153..f1a82a0 100644
--- a/platform/include/tfm_spm_hal.h
+++ b/platform/include/tfm_spm_hal.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -28,7 +28,6 @@
  */
 struct tfm_spm_partition_platform_data_t;
 
-#if TFM_LVL != 1
 /**
  * \brief Holds SPM db fields that define the memory regions used by a
  *        partition.
@@ -58,7 +57,6 @@
     uint32_t stack_bottom; /*!< The bottom of the stack for the partition. */
     uint32_t stack_top;    /*!< The top of the stack for the partition. */
 };
-#endif
 
 /**
  * \brief This function initialises the HW used for isolation, and sets the