Platform: Corstone310 directory reorg

Signed-off-by: Dávid Házi <david.hazi@arm.com>
Change-Id: I38e27c6d9b4dc68a9b15cbf3f0fe8d99b9608efc
diff --git a/docs/platform/arm/index.rst b/docs/platform/arm/index.rst
index 436518c..46fe123 100755
--- a/docs/platform/arm/index.rst
+++ b/docs/platform/arm/index.rst
@@ -8,7 +8,7 @@
     Corstone-1000 <corstone1000/readme.rst>
     Corstone-300 FPGA (AN547) <mps3/an547/README.rst>
     Corstone-300 FPGA and FVP (AN552) <mps3/an552/README.rst>
-    Corstone-310 FVP <mps3/corstone310_fvp/README.rst>
+    Corstone-310 FVP <mps3/corstone310/README.rst>
     Musca-B1 <musca_b1/readme.rst>
     Musca-S1 <musca_s1/readme.rst>
     Runtime Security Subsystem <rss/readme.rst>
diff --git a/docs/platform/arm/mps3/corstone310_fvp/README.rst b/docs/platform/arm/mps3/corstone310/README.rst
similarity index 97%
rename from docs/platform/arm/mps3/corstone310_fvp/README.rst
rename to docs/platform/arm/mps3/corstone310/README.rst
index 7b9f268..3ed9a52 100644
--- a/docs/platform/arm/mps3/corstone310_fvp/README.rst
+++ b/docs/platform/arm/mps3/corstone310/README.rst
@@ -16,14 +16,9 @@
 -------------
 
 Follow the instructions in :doc:`Building instructions </building/tfm_build_instruction>`.
-Build instructions with platform name: arm/mps3/corstone310_fvp
+Build instructions with platform name: arm/mps3/corstone310/fvp
 
-``-DTFM_PLATFORM=arm/mps3/corstone310_fvp``
-
-.. note::
-
-   This platform support does not provide software for Ethos-U55 IP, only
-   contains base address and interrupt number for it.
+``-DTFM_PLATFORM=arm/mps3/corstone310/fvp``
 
 .. note::
 
@@ -32,6 +27,11 @@
 
 .. note::
 
+   This platform support does not provide software for Ethos-U55 IP, only
+   contains base address and interrupt number for it.
+
+.. note::
+
    For Armclang compiler v6.18 or later version is required.
 
 To run the example code on Corstone-310 Ethos-U55 Arm Virtual Hardware
@@ -97,6 +97,6 @@
    Some of the messages above are only visible when ``CMAKE_BUILD_TYPE`` is set
    to ``Debug``.
 
--------------
+--------------
 
 *Copyright (c) 2021-2022, Arm Limited. All rights reserved.*
diff --git a/docs/releases/1.5.0.rst b/docs/releases/1.5.0.rst
index 06580b9..062bac9 100644
--- a/docs/releases/1.5.0.rst
+++ b/docs/releases/1.5.0.rst
@@ -43,7 +43,7 @@
 
   - :doc:`Corstone-1000 </platform/arm/corstone1000/readme>`
 
-  - :doc:`Corstone-Polaris </platform/arm/mps3/corstone310_fvp/README>`
+  - :doc:`Corstone-Polaris </platform/arm/mps3/corstone310/README>`
 
   - :doc:`B-U585I-IOT02A </platform/stm/b_u585i_iot02a/readme>`
 
@@ -122,4 +122,4 @@
 
 --------------
 
-*Copyright (c) 2021, Arm Limited. All rights reserved.*
+*Copyright (c) 2021-2022, Arm Limited. All rights reserved.*
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/check_config.cmake b/platform/ext/target/arm/mps3/corstone310/common/check_config.cmake
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/check_config.cmake
rename to platform/ext/target/arm/mps3/corstone310/common/check_config.cmake
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_Flash.c b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_Flash.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_Flash.c
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_Flash.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_MPC.c b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_MPC.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_MPC.c
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_MPC.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_MPC_Common.h b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_MPC_Common.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_MPC_Common.h
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_MPC_Common.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_PPC.c b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_PPC.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_PPC.c
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_PPC.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_PPC.h b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_PPC.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_PPC.h
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_PPC.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_PPC_Common.h b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_PPC_Common.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_PPC_Common.h
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_PPC_Common.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_TGU.c b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_TGU.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_TGU.c
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_TGU.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_TGU_Common.h b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_TGU_Common.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_TGU_Common.h
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_TGU_Common.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_USART.c b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_USART.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/Driver_USART.c
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/Driver_USART.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/config/non_secure/RTE_Device.h b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/config/non_secure/RTE_Device.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/config/non_secure/RTE_Device.h
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/config/non_secure/RTE_Device.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/config/non_secure/cmsis_driver_config.h b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/config/non_secure/cmsis_driver_config.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/config/non_secure/cmsis_driver_config.h
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/config/non_secure/cmsis_driver_config.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/config/secure/RTE_Device.h b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/config/secure/RTE_Device.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/config/secure/RTE_Device.h
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/config/secure/RTE_Device.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/config/secure/cmsis_driver_config.h b/platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/config/secure/cmsis_driver_config.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/cmsis_drivers/config/secure/cmsis_driver_config.h
rename to platform/ext/target/arm/mps3/corstone310/common/cmsis_drivers/config/secure/cmsis_driver_config.h
diff --git a/platform/ext/target/arm/mps3/corstone310/common/common.cmake b/platform/ext/target/arm/mps3/corstone310/common/common.cmake
new file mode 100644
index 0000000..10bbad0
--- /dev/null
+++ b/platform/ext/target/arm/mps3/corstone310/common/common.cmake
@@ -0,0 +1,179 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+cmake_policy(SET CMP0076 NEW)
+
+#========================= Platform region defs ===============================#
+
+target_include_directories(platform_region_defs
+    INTERFACE
+        ${CORSTONE310_COMMON_DIR}/partition
+)
+
+#========================= Platform common defs ===============================#
+
+# Specify the location of platform specific build dependencies.
+target_sources(tfm_s
+    PRIVATE
+    ${CORSTONE310_COMMON_DIR}/device/source/startup_corstone310.c
+)
+target_add_scatter_file(tfm_s
+    $<$<C_COMPILER_ID:ARMClang>:${PLATFORM_DIR}/ext/common/armclang/tfm_common_s.sct>
+    $<$<C_COMPILER_ID:GNU>:${PLATFORM_DIR}/ext/common/gcc/tfm_common_s.ld>
+    $<$<C_COMPILER_ID:IAR>:${PLATFORM_DIR}/ext/common/iar/tfm_common_s.icf>
+)
+
+if(NS)
+    target_sources(tfm_ns
+        PRIVATE
+            ${CORSTONE310_COMMON_DIR}/device/source/startup_corstone310.c
+    )
+    if(DEFAULT_NS_SCATTER)
+        target_add_scatter_file(tfm_ns
+            $<$<C_COMPILER_ID:ARMClang>:${PLATFORM_DIR}/ext/common/armclang/tfm_common_ns.sct>
+            $<$<C_COMPILER_ID:GNU>:${PLATFORM_DIR}/ext/common/gcc/tfm_common_ns.ld>
+            $<$<C_COMPILER_ID:IAR>:${PLATFORM_DIR}/ext/common/iar/tfm_common_ns.icf>
+        )
+    endif()
+    target_link_libraries(CMSIS_5_tfm_ns
+        INTERFACE
+            $<$<C_COMPILER_ID:ARMClang>:CMSIS_5_RTX_V8MMN>
+            $<$<C_COMPILER_ID:GNU>:CMSIS_5_RTX_V8MMN>
+            $<$<C_COMPILER_ID:IAR>:CMSIS_5_RTX_V81MMN>
+    )
+endif()
+
+if(BL2)
+    target_sources(bl2
+        PRIVATE
+            ${CORSTONE310_COMMON_DIR}/device/source/startup_corstone310.c
+    )
+    target_add_scatter_file(bl2
+        $<$<C_COMPILER_ID:ARMClang>:${PLATFORM_DIR}/ext/common/armclang/tfm_common_bl2.sct>
+        $<$<C_COMPILER_ID:GNU>:${PLATFORM_DIR}/ext/common/gcc/tfm_common_bl2.ld>
+        $<$<C_COMPILER_ID:IAR>:${PLATFORM_DIR}/ext/common/iar/tfm_common_bl2.icf>
+    )
+endif()
+
+#========================= Platform Secure ====================================#
+
+target_include_directories(platform_s
+    PUBLIC
+        ${CORSTONE310_COMMON_DIR}
+        ../common
+        ${CORSTONE310_COMMON_DIR}/cmsis_drivers
+        ${CORSTONE310_COMMON_DIR}/cmsis_drivers/config/secure
+        ${CORSTONE310_COMMON_DIR}/device
+        ${CORSTONE310_COMMON_DIR}/device/config
+        ${CORSTONE310_COMMON_DIR}/device/include
+        ${CORSTONE310_COMMON_DIR}/device/source/armclang
+        ${CORSTONE310_COMMON_DIR}/native_drivers
+        ${CORSTONE310_COMMON_DIR}/partition
+        ${CORSTONE310_COMMON_DIR}/services/src
+        ${PLATFORM_DIR}/..
+        ${CMAKE_CURRENT_SOURCE_DIR}/device/config
+)
+
+target_sources(platform_s
+    PRIVATE
+        ${CORSTONE310_COMMON_DIR}/cmsis_drivers/Driver_Flash.c
+        ${CORSTONE310_COMMON_DIR}/cmsis_drivers/Driver_MPC.c
+        ${CORSTONE310_COMMON_DIR}/cmsis_drivers/Driver_TGU.c
+        ${CORSTONE310_COMMON_DIR}/cmsis_drivers/Driver_PPC.c
+        ${CORSTONE310_COMMON_DIR}/cmsis_drivers/Driver_USART.c
+        ${CORSTONE310_COMMON_DIR}/device/source/platform_s_device_definition.c
+        ${CORSTONE310_COMMON_DIR}/device/source/system_core_init.c
+        ${CORSTONE310_COMMON_DIR}/native_drivers/mpc_sie_drv.c
+        ${CORSTONE310_COMMON_DIR}/native_drivers/mpu_armv8m_drv.c
+        ${CORSTONE310_COMMON_DIR}/native_drivers/ppc_corstone310_drv.c
+        ${CORSTONE310_COMMON_DIR}/native_drivers/syscounter_armv8-m_cntrl_drv.c
+        ${CORSTONE310_COMMON_DIR}/native_drivers/uart_cmsdk_drv.c
+        $<$<OR:$<BOOL:${TEST_NS_SLIH_IRQ}>,$<BOOL:${TEST_NS_FLIH_IRQ}>>:${CORSTONE310_COMMON_DIR}/plat_test.c>
+        $<$<BOOL:${TFM_PARTITION_PLATFORM}>:${CORSTONE310_COMMON_DIR}/services/src/tfm_platform_system.c>
+)
+
+target_sources(tfm_sprt
+    PRIVATE
+        # SLIH test Partition and FLIH test Partition access the timer as ARoT Partitions.
+        # Put the driver to SPRT so that both SLIH and FLIH tests can access it.
+        $<$<OR:$<BOOL:${TEST_NS_SLIH_IRQ}>,$<BOOL:${TEST_NS_FLIH_IRQ}>>:${CORSTONE310_COMMON_DIR}/native_drivers/systimer_armv8-m_drv.c>
+)
+
+target_compile_options(platform_s
+    PUBLIC
+        ${COMPILER_CMSE_FLAG}
+)
+
+#========================= Platform Non-Secure ================================#
+
+target_sources(platform_ns
+    PRIVATE
+        ${CORSTONE310_COMMON_DIR}/cmsis_drivers/Driver_Flash.c
+        ${CORSTONE310_COMMON_DIR}/cmsis_drivers/Driver_USART.c
+        ${CORSTONE310_COMMON_DIR}/device/source/platform_ns_device_definition.c
+        ${CORSTONE310_COMMON_DIR}/device/source/system_core_init.c
+        ${CORSTONE310_COMMON_DIR}/native_drivers/uart_cmsdk_drv.c
+)
+
+target_include_directories(platform_ns
+    PUBLIC
+        ${CORSTONE310_COMMON_DIR}
+        ../common
+        ${PLATFORM_DIR}/..
+        ${CORSTONE310_COMMON_DIR}/cmsis_drivers
+        ${CORSTONE310_COMMON_DIR}/cmsis_drivers/config/non_secure
+        ${CORSTONE310_COMMON_DIR}/device
+        ${CORSTONE310_COMMON_DIR}/device/config
+        ${CORSTONE310_COMMON_DIR}/device/include
+        ${CORSTONE310_COMMON_DIR}/device/source/armclang
+        ${CORSTONE310_COMMON_DIR}/native_drivers
+        ${CORSTONE310_COMMON_DIR}/partition
+        ${CMAKE_CURRENT_SOURCE_DIR}/device/config
+)
+
+#========================= Platform BL2 =======================================#
+
+if(BL2)
+    target_sources(platform_bl2
+        PRIVATE
+            ${CORSTONE310_COMMON_DIR}/cmsis_drivers/Driver_Flash.c
+            ${CORSTONE310_COMMON_DIR}/cmsis_drivers/Driver_USART.c
+            ${CORSTONE310_COMMON_DIR}/device/source/platform_s_device_definition.c
+            ${CORSTONE310_COMMON_DIR}/device/source/system_core_init.c
+            ${CORSTONE310_COMMON_DIR}/native_drivers/uart_cmsdk_drv.c
+    )
+
+    target_include_directories(platform_bl2
+        PUBLIC
+            ${CORSTONE310_COMMON_DIR}/cmsis_drivers
+            ${CORSTONE310_COMMON_DIR}/cmsis_drivers/config/secure
+            ${CORSTONE310_COMMON_DIR}/device
+            ${CORSTONE310_COMMON_DIR}/device/config
+            ${CORSTONE310_COMMON_DIR}/device/include
+            ${CORSTONE310_COMMON_DIR}/device/source/armclang
+            ${CORSTONE310_COMMON_DIR}/native_drivers
+            ${CORSTONE310_COMMON_DIR}/partition
+            ${CORSTONE310_COMMON_DIR}/services/src
+            ${CMAKE_CURRENT_SOURCE_DIR}/device/config
+
+        PRIVATE
+            ${CORSTONE310_COMMON_DIR}
+            ${PLATFORM_DIR}/..
+            ${CORSTONE310_COMMON_DIR}/native_drivers
+    )
+endif()
+
+#========================= tfm_spm ============================================#
+
+target_sources(tfm_spm
+    PRIVATE
+        ${CORSTONE310_COMMON_DIR}/target_cfg.c
+        ${CORSTONE310_COMMON_DIR}/tfm_hal_isolation.c
+        ${CORSTONE310_COMMON_DIR}/tfm_hal_platform.c
+        ${CMAKE_CURRENT_SOURCE_DIR}/dma_init.c
+        $<$<OR:$<BOOL:${CONFIG_TFM_FLIH_API}>,$<BOOL:${CONFIG_TFM_SLIH_API}>>:${CORSTONE310_COMMON_DIR}/tfm_interrupts.c>
+)
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/config.cmake b/platform/ext/target/arm/mps3/corstone310/common/config.cmake
similarity index 93%
rename from platform/ext/target/arm/mps3/corstone310_fvp/config.cmake
rename to platform/ext/target/arm/mps3/corstone310/common/config.cmake
index 111e002..6e04c45 100644
--- a/platform/ext/target/arm/mps3/corstone310_fvp/config.cmake
+++ b/platform/ext/target/arm/mps3/corstone310/common/config.cmake
@@ -12,7 +12,6 @@
 
 set(PLATFORM_SLIH_IRQ_TEST_SUPPORT    ON    CACHE BOOL    "Platform supports SLIH IRQ tests")
 set(PLATFORM_FLIH_IRQ_TEST_SUPPORT    ON    CACHE BOOL    "Platform supports FLIH IRQ tests")
-set(PLATFORM_SVC_HANDLERS             ON    CACHE BOOL    "Platform specific SVC handlers")
 set(DEFAULT_NS_SCATTER                ON    CACHE BOOL    "Use default NS scatter files for target")
 
 # Make FLIH IRQ test as the default IRQ test on Corstone-310
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/config/device_cfg.h b/platform/ext/target/arm/mps3/corstone310/common/device/config/device_cfg.h
similarity index 97%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/config/device_cfg.h
rename to platform/ext/target/arm/mps3/corstone310/common/device/config/device_cfg.h
index 9cbd274..ea31a05 100644
--- a/platform/ext/target/arm/mps3/corstone310_fvp/device/config/device_cfg.h
+++ b/platform/ext/target/arm/mps3/corstone310/common/device/config/device_cfg.h
@@ -17,6 +17,8 @@
 #ifndef __DEVICE_CFG_H__
 #define __DEVICE_CFG_H__
 
+#include "device_cfg_platform.h"
+
 /**
  * \file device_cfg.h
  * \brief Configurations for peripherals defined in
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/include/cmsis.h b/platform/ext/target/arm/mps3/corstone310/common/device/include/cmsis.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/include/cmsis.h
rename to platform/ext/target/arm/mps3/corstone310/common/device/include/cmsis.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/include/corstone310.h b/platform/ext/target/arm/mps3/corstone310/common/device/include/corstone310.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/include/corstone310.h
rename to platform/ext/target/arm/mps3/corstone310/common/device/include/corstone310.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_description.h b/platform/ext/target/arm/mps3/corstone310/common/device/include/platform_description.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_description.h
rename to platform/ext/target/arm/mps3/corstone310/common/device/include/platform_description.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_irq.h b/platform/ext/target/arm/mps3/corstone310/common/device/include/platform_irq.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_irq.h
rename to platform/ext/target/arm/mps3/corstone310/common/device/include/platform_irq.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_ns_device_definition.h b/platform/ext/target/arm/mps3/corstone310/common/device/include/platform_ns_device_definition.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_ns_device_definition.h
rename to platform/ext/target/arm/mps3/corstone310/common/device/include/platform_ns_device_definition.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_pins.h b/platform/ext/target/arm/mps3/corstone310/common/device/include/platform_pins.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_pins.h
rename to platform/ext/target/arm/mps3/corstone310/common/device/include/platform_pins.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_regs.h b/platform/ext/target/arm/mps3/corstone310/common/device/include/platform_regs.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_regs.h
rename to platform/ext/target/arm/mps3/corstone310/common/device/include/platform_regs.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_s_device_definition.h b/platform/ext/target/arm/mps3/corstone310/common/device/include/platform_s_device_definition.h
similarity index 98%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_s_device_definition.h
rename to platform/ext/target/arm/mps3/corstone310/common/device/include/platform_s_device_definition.h
index b4f4078..b35bc48 100644
--- a/platform/ext/target/arm/mps3/corstone310_fvp/device/include/platform_s_device_definition.h
+++ b/platform/ext/target/arm/mps3/corstone310/common/device/include/platform_s_device_definition.h
@@ -67,6 +67,7 @@
 extern struct mpc_sie_dev_t MPC_ISRAM0_DEV_S;
 extern struct mpc_sie_dev_t MPC_ISRAM1_DEV_S;
 
+#ifdef CORSTONE310_FVP
 /* DMA350 driver structures */
 #include "dma350_drv.h"
 extern struct dma350_dev_t DMA350_DMA0_DEV_S;
@@ -84,6 +85,7 @@
 #include "dma350_lib.h"
 extern const struct dma350_remap_list_t dma350_address_remap;
 #endif /* PLATFORM_SVC_HANDLERS */
+#endif /* CORSTONE310_FVP */
 
 /* TGU driver structure */
 #include "tgu_armv8_m_drv.h"
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/include/power_control.h b/platform/ext/target/arm/mps3/corstone310/common/device/include/power_control.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/include/power_control.h
rename to platform/ext/target/arm/mps3/corstone310/common/device/include/power_control.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/include/system_core_init.h b/platform/ext/target/arm/mps3/corstone310/common/device/include/system_core_init.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/include/system_core_init.h
rename to platform/ext/target/arm/mps3/corstone310/common/device/include/system_core_init.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/source/platform_ns_device_definition.c b/platform/ext/target/arm/mps3/corstone310/common/device/source/platform_ns_device_definition.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/source/platform_ns_device_definition.c
rename to platform/ext/target/arm/mps3/corstone310/common/device/source/platform_ns_device_definition.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/source/platform_s_device_definition.c b/platform/ext/target/arm/mps3/corstone310/common/device/source/platform_s_device_definition.c
similarity index 99%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/source/platform_s_device_definition.c
rename to platform/ext/target/arm/mps3/corstone310/common/device/source/platform_s_device_definition.c
index 3d8ed53..7db4a0f 100644
--- a/platform/ext/target/arm/mps3/corstone310_fvp/device/source/platform_s_device_definition.c
+++ b/platform/ext/target/arm/mps3/corstone310/common/device/source/platform_s_device_definition.c
@@ -390,6 +390,7 @@
     &(MPC_ISRAM1_DEV_CFG_S),
     &(MPC_ISRAM1_DEV_DATA_S)};
 
+#ifdef CORSTONE310_FVP
 /* DMA350 driver structures */
 static const struct dma350_dev_cfg_t DMA350_DMA0_DEV_CFG_S = {
     .dma_sec_cfg =   (DMASECCFG_TypeDef*)   (DMA_350_BASE_S + 0x0UL),
@@ -416,6 +417,7 @@
             .channel = 1},
     .data = {0}};
 #endif /* PLATFORM_SVC_HANDLERS */
+#endif /* CORSTONE310_FVP */
 
 /* TGU driver structures */
 static const struct tgu_armv8_m_mem_range_t TGU_ITCM_RANGE_S = {
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/source/startup_corstone310.c b/platform/ext/target/arm/mps3/corstone310/common/device/source/startup_corstone310.c
similarity index 98%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/source/startup_corstone310.c
rename to platform/ext/target/arm/mps3/corstone310/common/device/source/startup_corstone310.c
index 8bd2ac1..29d29bd 100644
--- a/platform/ext/target/arm/mps3/corstone310_fvp/device/source/startup_corstone310.c
+++ b/platform/ext/target/arm/mps3/corstone310/common/device/source/startup_corstone310.c
@@ -100,8 +100,10 @@
 DEFAULT_IRQ_HANDLER(SPI_ADC_Handler)
 DEFAULT_IRQ_HANDLER(SPI_SHIELD0_Handler)
 DEFAULT_IRQ_HANDLER(SPI_SHIELD1_Handler)
+#ifdef CORSTONE310_FVP
 DEFAULT_IRQ_HANDLER(DMA_Channel_0_Handler)
 DEFAULT_IRQ_HANDLER(DMA_Channel_1_Handler)
+#endif
 DEFAULT_IRQ_HANDLER(ETHOS_U55_Handler)
 DEFAULT_IRQ_HANDLER(GPIO0_Combined_Handler)
 DEFAULT_IRQ_HANDLER(GPIO1_Combined_Handler)
@@ -250,8 +252,13 @@
   SPI_SHIELD0_Handler,               /*  54: SPI (Shield 0) Handler */
   SPI_SHIELD1_Handler,               /*  55: SPI (Shield 0) Handler */
   0,                                 /*  56: Reserved */
+#ifdef CORSTONE310_FVP
   DMA_Channel_0_Handler,             /*  57: DMA (DMA350) Channel 0 Handler */
   DMA_Channel_1_Handler,             /*  58: DMA (DMA350) Channel 1 Handler */
+#else
+  0,                                 /*  57: Reserved */
+  0,                                 /*  58: Reserved */
+#endif
   0,                                 /*  59: Reserved */
   0,                                 /*  60: Reserved */
   0,                                 /*  61: Reserved */
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/source/system_core_init.c b/platform/ext/target/arm/mps3/corstone310/common/device/source/system_core_init.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/source/system_core_init.c
rename to platform/ext/target/arm/mps3/corstone310/common/device/source/system_core_init.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/faults.c b/platform/ext/target/arm/mps3/corstone310/common/faults.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/faults.c
rename to platform/ext/target/arm/mps3/corstone310/common/faults.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/mmio_defs.h b/platform/ext/target/arm/mps3/corstone310/common/mmio_defs.h
similarity index 96%
rename from platform/ext/target/arm/mps3/corstone310_fvp/mmio_defs.h
rename to platform/ext/target/arm/mps3/corstone310/common/mmio_defs.h
index 46219e9..f217cf9 100644
--- a/platform/ext/target/arm/mps3/corstone310_fvp/mmio_defs.h
+++ b/platform/ext/target/arm/mps3/corstone310/common/mmio_defs.h
@@ -25,8 +25,10 @@
 const uintptr_t partition_named_mmio_list[] = {
     (uintptr_t)TFM_PERIPHERAL_TIMER0,
     (uintptr_t)TFM_PERIPHERAL_STD_UART,
+#if defined(CORSTONE310_FVP)
     (uintptr_t)TFM_PERIPHERAL_DMA0_CH0,
     (uintptr_t)TFM_PERIPHERAL_DMA0_CH1
+#endif
 };
 
 /*
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/mpc_sie_drv.c b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/mpc_sie_drv.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/mpc_sie_drv.c
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/mpc_sie_drv.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/mpc_sie_drv.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/mpc_sie_drv.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/mpc_sie_drv.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/mpc_sie_drv.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/mpc_sie_reg_map.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/mpc_sie_reg_map.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/mpc_sie_reg_map.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/mpc_sie_reg_map.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/mpu_armv8m_drv.c b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/mpu_armv8m_drv.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/mpu_armv8m_drv.c
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/mpu_armv8m_drv.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/mpu_armv8m_drv.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/mpu_armv8m_drv.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/mpu_armv8m_drv.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/mpu_armv8m_drv.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/ppc_corstone310_drv.c b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/ppc_corstone310_drv.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/ppc_corstone310_drv.c
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/ppc_corstone310_drv.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/ppc_corstone310_drv.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/ppc_corstone310_drv.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/ppc_corstone310_drv.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/ppc_corstone310_drv.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/ppc_corstone310_reg_map.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/ppc_corstone310_reg_map.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/ppc_corstone310_reg_map.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/ppc_corstone310_reg_map.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/syscounter_armv8-m_cntrl_drv.c b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/syscounter_armv8-m_cntrl_drv.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/syscounter_armv8-m_cntrl_drv.c
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/syscounter_armv8-m_cntrl_drv.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/syscounter_armv8-m_cntrl_drv.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/syscounter_armv8-m_cntrl_drv.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/syscounter_armv8-m_cntrl_drv.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/syscounter_armv8-m_cntrl_drv.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/syscounter_armv8-m_cntrl_reg_map.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/syscounter_armv8-m_cntrl_reg_map.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/syscounter_armv8-m_cntrl_reg_map.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/syscounter_armv8-m_cntrl_reg_map.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/systimer_armv8-m_drv.c b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/systimer_armv8-m_drv.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/systimer_armv8-m_drv.c
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/systimer_armv8-m_drv.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/systimer_armv8-m_drv.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/systimer_armv8-m_drv.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/systimer_armv8-m_drv.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/systimer_armv8-m_drv.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/systimer_armv8-m_reg_map.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/systimer_armv8-m_reg_map.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/systimer_armv8-m_reg_map.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/systimer_armv8-m_reg_map.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/tgu_armv8_m_drv.c b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/tgu_armv8_m_drv.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/tgu_armv8_m_drv.c
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/tgu_armv8_m_drv.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/tgu_armv8_m_drv.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/tgu_armv8_m_drv.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/tgu_armv8_m_drv.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/tgu_armv8_m_drv.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/uart_cmsdk_drv.c b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/uart_cmsdk_drv.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/uart_cmsdk_drv.c
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/uart_cmsdk_drv.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/uart_cmsdk_drv.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/uart_cmsdk_drv.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/uart_cmsdk_drv.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/uart_cmsdk_drv.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/uart_cmsdk_reg_map.h b/platform/ext/target/arm/mps3/corstone310/common/native_drivers/uart_cmsdk_reg_map.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/uart_cmsdk_reg_map.h
rename to platform/ext/target/arm/mps3/corstone310/common/native_drivers/uart_cmsdk_reg_map.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/partition/flash_layout.h b/platform/ext/target/arm/mps3/corstone310/common/partition/flash_layout.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/partition/flash_layout.h
rename to platform/ext/target/arm/mps3/corstone310/common/partition/flash_layout.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/partition/platform_base_address.h b/platform/ext/target/arm/mps3/corstone310/common/partition/platform_base_address.h
similarity index 99%
rename from platform/ext/target/arm/mps3/corstone310_fvp/partition/platform_base_address.h
rename to platform/ext/target/arm/mps3/corstone310/common/partition/platform_base_address.h
index c2c9116..6575454 100644
--- a/platform/ext/target/arm/mps3/corstone310_fvp/partition/platform_base_address.h
+++ b/platform/ext/target/arm/mps3/corstone310/common/partition/platform_base_address.h
@@ -34,7 +34,9 @@
 #define ISRAM1_BASE_NS                   0x21200000 /* Internal SRAM Area Non-Secure base address */
 #define QSPI_SRAM_BASE_NS                0x28000000 /* QSPI SRAM Non-Secure base address */
 /* Non-Secure Subsystem peripheral region */
+#ifdef CORSTONE310_FVP
 #define DMA_350_BASE_NS                  0x40002000 /* DMA350 register block Non-Secure base address */
+#endif
 #define ETHOS_U55_APB_BASE_NS            0x40004000 /* Ethos-U55 APB Non-Secure base address */
 #define CPU0_PWRCTRL_BASE_NS             0x40012000 /* CPU 0 Power Control Block Non-Secure base address */
 #define CPU0_IDENTITY_BASE_NS            0x4001F000 /* CPU 0 Identity Block Non-Secure base address */
@@ -105,7 +107,9 @@
 #define ISRAM1_BASE_S                    0x31200000 /* Internal SRAM Area Secure base address */
 #define QSPI_SRAM_BASE_S                 0x38000000 /* QSPI SRAM Secure base address */
 /* Secure Subsystem peripheral region */
+#ifdef CORSTONE310_FVP
 #define DMA_350_BASE_S                   0x50002000 /* DMA350 register block Secure base address */
+#endif
 #define ETHOS_U55_APB_BASE_S             0x50004000 /* Ethos-U55 APB Secure base address */
 #define CPU0_SECCTRL_BASE_S              0x50011000 /* CPU 0 Local Security Control Block Secure base address */
 #define CPU0_PWRCTRL_BASE_S              0x50012000 /* CPU 0 Power Control Block Secure base address */
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/partition/region_defs.h b/platform/ext/target/arm/mps3/corstone310/common/partition/region_defs.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/partition/region_defs.h
rename to platform/ext/target/arm/mps3/corstone310/common/partition/region_defs.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/plat_test.c b/platform/ext/target/arm/mps3/corstone310/common/plat_test.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/plat_test.c
rename to platform/ext/target/arm/mps3/corstone310/common/plat_test.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/preload.cmake b/platform/ext/target/arm/mps3/corstone310/common/preload.cmake
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/preload.cmake
rename to platform/ext/target/arm/mps3/corstone310/common/preload.cmake
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/services/src/tfm_platform_system.c b/platform/ext/target/arm/mps3/corstone310/common/services/src/tfm_platform_system.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/services/src/tfm_platform_system.c
rename to platform/ext/target/arm/mps3/corstone310/common/services/src/tfm_platform_system.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/target_cfg.c b/platform/ext/target/arm/mps3/corstone310/common/target_cfg.c
similarity index 90%
rename from platform/ext/target/arm/mps3/corstone310_fvp/target_cfg.c
rename to platform/ext/target/arm/mps3/corstone310/common/target_cfg.c
index 252dc2f..1b8d388 100644
--- a/platform/ext/target/arm/mps3/corstone310_fvp/target_cfg.c
+++ b/platform/ext/target/arm/mps3/corstone310/common/target_cfg.c
@@ -25,7 +25,6 @@
 #include "platform_s_device_definition.h"
 #include "syscounter_armv8-m_cntrl_drv.h"
 #include "uart_stdout.h"
-#include "dma350_ch_drv.h"
 
 /* Throw out bus error when an access causes security violation */
 #define CMSDK_SECRESPCFG_BUS_ERR_MASK   (1UL << 0)
@@ -114,20 +113,6 @@
         SYSTEM_TIMER0_PERIPH_PPC0_POS_MASK
 };
 
-struct platform_data_t tfm_peripheral_dma0_ch0 = {
-        DMA_350_BASE_S + 0x1000,
-        DMA_350_BASE_S + 0x10FF,
-        PPC_SP_DO_NOT_CONFIGURE,
-        0
-};
-
-struct platform_data_t tfm_peripheral_dma0_ch1 = {
-        DMA_350_BASE_S + 0x1100,
-        DMA_350_BASE_S + 0x11FF,
-        PPC_SP_DO_NOT_CONFIGURE,
-        0
-};
-
 static ARM_DRIVER_PPC_CORSTONE310 *const ppc_bank_drivers[] = {
         &Driver_MAIN0_PPC_CORSTONE310,
         &Driver_MAIN_EXP0_PPC_CORSTONE310,
@@ -553,57 +538,3 @@
         ppc_bank_drivers[i]->ClearInterrupt();
     }
 }
-
-/*------------------- DMA configuration functions -------------------------*/
-enum tfm_plat_err_t dma_init_cfg(void)
-{
-    uint32_t i = 0;
-    enum dma350_error_t dma_err;
-
-    dma_err = dma350_init(&DMA350_DMA0_DEV_S);
-    if(dma_err != DMA350_ERR_NONE) {
-        ERROR_MSG("DMA350_DMA0_DEV_S init failed!");
-        return TFM_PLAT_ERR_SYSTEM_ERR;
-    }
-
-    /* Configure Channel 0 */
-    dma_err = dma350_set_ch_secure(&DMA350_DMA0_DEV_S, 0);
-    if(dma_err != DMA350_ERR_NONE)
-    {
-        ERROR_MSG("Failed to set DMA350_DMA0_DEV_S, channel 0 secure!");
-        return TFM_PLAT_ERR_SYSTEM_ERR;
-    }
-    dma_err = dma350_set_ch_privileged(&DMA350_DMA0_DEV_S, 0);
-    if(dma_err != DMA350_ERR_NONE)
-    {
-        ERROR_MSG("Failed to set DMA350_DMA0_DEV_S, channel 0 privileged!");
-        return TFM_PLAT_ERR_SYSTEM_ERR;
-    }
-
-    /* Configure Channel 1 */
-    dma_err = dma350_set_ch_nonsecure(&DMA350_DMA0_DEV_S, 1);
-    if(dma_err != DMA350_ERR_NONE)
-    {
-        ERROR_MSG("Failed to set DMA350_DMA0_DEV_S, channel 1 nonsecure!");
-        return TFM_PLAT_ERR_SYSTEM_ERR;
-    }
-    dma_err = dma350_set_ch_privileged(&DMA350_DMA0_DEV_S, 1);
-    if(dma_err != DMA350_ERR_NONE)
-    {
-        ERROR_MSG("Failed to set DMA350_DMA0_DEV_S, channel 1 privileged!");
-        return TFM_PLAT_ERR_SYSTEM_ERR;
-    }
-
-    /* Configure every Trigger input to NS by default */
-    for(i = 0; i < DMA350_TRIGIN_NUMBER; i++)
-    {
-        dma_err = dma350_set_trigin_nonsecure(&DMA350_DMA0_DEV_S, i);
-        if(dma_err != DMA350_ERR_NONE)
-        {
-            SPMLOG_ERRMSGVAL("Failed to set the following Trigger input of DMA350_DMA0_DEV_S to NS: ", i);
-            return TFM_PLAT_ERR_SYSTEM_ERR;
-        }
-    }
-
-    return TFM_PLAT_ERR_SUCCESS;
-}
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/target_cfg.h b/platform/ext/target/arm/mps3/corstone310/common/target_cfg.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/target_cfg.h
rename to platform/ext/target/arm/mps3/corstone310/common/target_cfg.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/tfm_hal_isolation.c b/platform/ext/target/arm/mps3/corstone310/common/tfm_hal_isolation.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/tfm_hal_isolation.c
rename to platform/ext/target/arm/mps3/corstone310/common/tfm_hal_isolation.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/tfm_hal_platform.c b/platform/ext/target/arm/mps3/corstone310/common/tfm_hal_platform.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/tfm_hal_platform.c
rename to platform/ext/target/arm/mps3/corstone310/common/tfm_hal_platform.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/tfm_interrupts.c b/platform/ext/target/arm/mps3/corstone310/common/tfm_interrupts.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/tfm_interrupts.c
rename to platform/ext/target/arm/mps3/corstone310/common/tfm_interrupts.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/tfm_peripherals_def.h b/platform/ext/target/arm/mps3/corstone310/common/tfm_peripherals_def.h
similarity index 96%
rename from platform/ext/target/arm/mps3/corstone310_fvp/tfm_peripherals_def.h
rename to platform/ext/target/arm/mps3/corstone310/common/tfm_peripherals_def.h
index 0f2557d..1084eb3 100644
--- a/platform/ext/target/arm/mps3/corstone310_fvp/tfm_peripherals_def.h
+++ b/platform/ext/target/arm/mps3/corstone310/common/tfm_peripherals_def.h
@@ -28,13 +28,17 @@
 
 extern struct platform_data_t tfm_peripheral_std_uart;
 extern struct platform_data_t tfm_peripheral_timer0;
-extern struct platform_data_t tfm_peripheral_dma0_ch0;
-extern struct platform_data_t tfm_peripheral_dma0_ch1;
 
 #define TFM_PERIPHERAL_STD_UART  (&tfm_peripheral_std_uart)
 #define TFM_PERIPHERAL_TIMER0    (&tfm_peripheral_timer0)
+
+#if defined(CORSTONE310_FVP)
+extern struct platform_data_t tfm_peripheral_dma0_ch0;
+extern struct platform_data_t tfm_peripheral_dma0_ch1;
+
 #define TFM_PERIPHERAL_DMA0_CH0  (&tfm_peripheral_dma0_ch0)
 #define TFM_PERIPHERAL_DMA0_CH1  (&tfm_peripheral_dma0_ch1)
+#endif
 
 #ifdef __cplusplus
 }
diff --git a/platform/ext/target/arm/mps3/corstone310/fvp/CMakeLists.txt b/platform/ext/target/arm/mps3/corstone310/fvp/CMakeLists.txt
new file mode 100644
index 0000000..dd8a0bc
--- /dev/null
+++ b/platform/ext/target/arm/mps3/corstone310/fvp/CMakeLists.txt
@@ -0,0 +1,63 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2022, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+cmake_policy(SET CMP0076 NEW)
+
+include(${CORSTONE310_COMMON_DIR}/common.cmake)
+
+add_library(platform_fvp)
+
+target_sources(platform_fvp
+    PRIVATE
+    native_drivers/dma350_ch_drv.c
+    native_drivers/dma350_drv.c
+    libraries/dma350_lib.c
+    $<$<BOOL:${PLATFORM_SVC_HANDLERS}>:${CMAKE_CURRENT_SOURCE_DIR}/libraries/dma350_checker_layer.c>
+    $<$<BOOL:${PLATFORM_SVC_HANDLERS}>:${CMAKE_CURRENT_SOURCE_DIR}/device/source/dma350_checker_device_defs.c>
+    $<$<BOOL:${PLATFORM_SVC_HANDLERS}>:${CMAKE_CURRENT_SOURCE_DIR}/device/source/dma350_address_remap.c>
+)
+
+target_compile_definitions(platform_fvp
+    PRIVATE
+        # Needed for DMA-350 library
+        CMSIS_device_header=<corstone310.h>
+        $<$<BOOL:${PLATFORM_SVC_HANDLERS}>:PLATFORM_SVC_HANDLERS>
+)
+
+target_include_directories(platform_fvp
+    PUBLIC
+        ${CMAKE_SOURCE_DIR}
+        native_drivers
+        libraries
+        device/config
+        ${PLATFORM_DIR}/ext/cmsis
+        ${PLATFORM_DIR}/ext/driver
+        ${CORSTONE310_COMMON_DIR}/device/include
+        ${CORSTONE310_COMMON_DIR}/partition
+        ${CORSTONE310_COMMON_DIR}/device/config
+        ${CORSTONE310_COMMON_DIR}/native_drivers
+)
+
+target_link_libraries(platform_bl2
+    PUBLIC
+        platform_fvp
+)
+
+target_link_libraries(platform_s
+    PUBLIC
+        platform_fvp
+)
+
+target_sources(platform_s
+    PRIVATE
+        $<$<BOOL:${PLATFORM_SVC_HANDLERS}>:${CMAKE_CURRENT_SOURCE_DIR}/platform_svc_handler.c>
+)
+
+target_compile_definitions(platform_s
+    PRIVATE
+        $<$<BOOL:${PLATFORM_SVC_HANDLERS}>:PLATFORM_SVC_HANDLERS>
+)
diff --git a/platform/ext/target/arm/mps3/corstone310/fvp/check_config.cmake b/platform/ext/target/arm/mps3/corstone310/fvp/check_config.cmake
new file mode 100644
index 0000000..f497046
--- /dev/null
+++ b/platform/ext/target/arm/mps3/corstone310/fvp/check_config.cmake
@@ -0,0 +1,8 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2022, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+include(${CORSTONE310_COMMON_DIR}/check_config.cmake)
diff --git a/platform/ext/target/arm/mps3/corstone310/fvp/config.cmake b/platform/ext/target/arm/mps3/corstone310/fvp/config.cmake
new file mode 100644
index 0000000..686ac09
--- /dev/null
+++ b/platform/ext/target/arm/mps3/corstone310/fvp/config.cmake
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2022, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+include(${CORSTONE310_COMMON_DIR}/config.cmake)
+
+set(PLATFORM_SVC_HANDLERS             ON    CACHE BOOL    "Platform specific SVC handlers")
diff --git a/platform/ext/target/arm/mps3/corstone310/fvp/device/config/device_cfg_platform.h b/platform/ext/target/arm/mps3/corstone310/fvp/device/config/device_cfg_platform.h
new file mode 100644
index 0000000..806ab67
--- /dev/null
+++ b/platform/ext/target/arm/mps3/corstone310/fvp/device/config/device_cfg_platform.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2022 Arm Limited. All rights reserved.
+ *
+ * Licensed under the Apache License Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing software
+ * distributed under the License is distributed on an "AS IS" BASIS
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEVICE_CFG_PLATFORM_H__
+#define __DEVICE_CFG_PLATFORM_H__
+
+/* DMA350 */
+#define DMA350_DMA0_S
+#define DMA350_DMA0_DEV             DMA350_DMA0_DEV_S
+
+#define DMA350_DMA0_CH0_S
+
+#ifdef PLATFORM_SVC_HANDLERS
+/* Required for DMA350 checker layer even if some channels are configured NS by
+ * default
+ */
+#define DMA350_DMA0_CH1_S
+#endif  /* PLATFORM_SVC_HANDLERS */
+
+#endif  /* __DEVICE_CFG_PLATFORM_H__ */
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/source/dma350_address_remap.c b/platform/ext/target/arm/mps3/corstone310/fvp/device/source/dma350_address_remap.c
similarity index 95%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/source/dma350_address_remap.c
rename to platform/ext/target/arm/mps3/corstone310/fvp/device/source/dma350_address_remap.c
index a91defa..205b1d5 100644
--- a/platform/ext/target/arm/mps3/corstone310_fvp/device/source/dma350_address_remap.c
+++ b/platform/ext/target/arm/mps3/corstone310/fvp/device/source/dma350_address_remap.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019-2022 Arm Limited. All rights reserved.
+ * Copyright (c) 2022 Arm Limited. All rights reserved.
  *
  * Licensed under the Apache License Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/device/source/dma350_checker_device_defs.c b/platform/ext/target/arm/mps3/corstone310/fvp/device/source/dma350_checker_device_defs.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/device/source/dma350_checker_device_defs.c
rename to platform/ext/target/arm/mps3/corstone310/fvp/device/source/dma350_checker_device_defs.c
diff --git a/platform/ext/target/arm/mps3/corstone310/fvp/dma_init.c b/platform/ext/target/arm/mps3/corstone310/fvp/dma_init.c
new file mode 100644
index 0000000..31e4554
--- /dev/null
+++ b/platform/ext/target/arm/mps3/corstone310/fvp/dma_init.c
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2022 Arm Limited. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utilities.h"
+#include "platform_s_device_definition.h"
+#include "platform_base_address.h"
+#include "dma350_drv.h"
+#include "target_cfg.h"
+
+struct platform_data_t tfm_peripheral_dma0_ch0 = {
+        DMA_350_BASE_S + 0x1000,
+        DMA_350_BASE_S + 0x10FF,
+        PPC_SP_DO_NOT_CONFIGURE,
+        0
+};
+
+struct platform_data_t tfm_peripheral_dma0_ch1 = {
+        DMA_350_BASE_S + 0x1100,
+        DMA_350_BASE_S + 0x11FF,
+        PPC_SP_DO_NOT_CONFIGURE,
+        0
+};
+
+/*------------------- DMA configuration functions -------------------------*/
+enum tfm_plat_err_t dma_init_cfg(void)
+{
+    enum dma350_error_t dma_err;
+
+    dma_err = dma350_init(&DMA350_DMA0_DEV_S);
+    if(dma_err != DMA350_ERR_NONE) {
+        ERROR_MSG("DMA350_DMA0_DEV_S init failed!");
+        return TFM_PLAT_ERR_SYSTEM_ERR;
+    }
+
+    /* Configure Channel 0 */
+    dma_err = dma350_set_ch_secure(&DMA350_DMA0_DEV_S, 0);
+    if(dma_err != DMA350_ERR_NONE)
+    {
+        ERROR_MSG("Failed to set DMA350_DMA0_DEV_S, channel 0 secure!");
+        return TFM_PLAT_ERR_SYSTEM_ERR;
+    }
+    dma_err = dma350_set_ch_privileged(&DMA350_DMA0_DEV_S, 0);
+    if(dma_err != DMA350_ERR_NONE)
+    {
+        ERROR_MSG("Failed to set DMA350_DMA0_DEV_S, channel 0 privileged!");
+        return TFM_PLAT_ERR_SYSTEM_ERR;
+    }
+
+    /* Configure Channel 1 */
+    dma_err = dma350_set_ch_nonsecure(&DMA350_DMA0_DEV_S, 1);
+    if(dma_err != DMA350_ERR_NONE)
+    {
+        ERROR_MSG("Failed to set DMA350_DMA0_DEV_S, channel 1 nonsecure!");
+        return TFM_PLAT_ERR_SYSTEM_ERR;
+    }
+    dma_err = dma350_set_ch_privileged(&DMA350_DMA0_DEV_S, 1);
+    if(dma_err != DMA350_ERR_NONE)
+    {
+        ERROR_MSG("Failed to set DMA350_DMA0_DEV_S, channel 1 privileged!");
+        return TFM_PLAT_ERR_SYSTEM_ERR;
+    }
+
+    return TFM_PLAT_ERR_SUCCESS;
+}
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/libraries/dma350_checker_layer.c b/platform/ext/target/arm/mps3/corstone310/fvp/libraries/dma350_checker_layer.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/libraries/dma350_checker_layer.c
rename to platform/ext/target/arm/mps3/corstone310/fvp/libraries/dma350_checker_layer.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/libraries/dma350_checker_layer.h b/platform/ext/target/arm/mps3/corstone310/fvp/libraries/dma350_checker_layer.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/libraries/dma350_checker_layer.h
rename to platform/ext/target/arm/mps3/corstone310/fvp/libraries/dma350_checker_layer.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/libraries/dma350_lib.c b/platform/ext/target/arm/mps3/corstone310/fvp/libraries/dma350_lib.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/libraries/dma350_lib.c
rename to platform/ext/target/arm/mps3/corstone310/fvp/libraries/dma350_lib.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/libraries/dma350_lib.h b/platform/ext/target/arm/mps3/corstone310/fvp/libraries/dma350_lib.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/libraries/dma350_lib.h
rename to platform/ext/target/arm/mps3/corstone310/fvp/libraries/dma350_lib.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/libraries/dma350_privileged_config.h b/platform/ext/target/arm/mps3/corstone310/fvp/libraries/dma350_privileged_config.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/libraries/dma350_privileged_config.h
rename to platform/ext/target/arm/mps3/corstone310/fvp/libraries/dma350_privileged_config.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/dma350_ch_drv.c b/platform/ext/target/arm/mps3/corstone310/fvp/native_drivers/dma350_ch_drv.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/dma350_ch_drv.c
rename to platform/ext/target/arm/mps3/corstone310/fvp/native_drivers/dma350_ch_drv.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/dma350_ch_drv.h b/platform/ext/target/arm/mps3/corstone310/fvp/native_drivers/dma350_ch_drv.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/dma350_ch_drv.h
rename to platform/ext/target/arm/mps3/corstone310/fvp/native_drivers/dma350_ch_drv.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/dma350_drv.c b/platform/ext/target/arm/mps3/corstone310/fvp/native_drivers/dma350_drv.c
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/dma350_drv.c
rename to platform/ext/target/arm/mps3/corstone310/fvp/native_drivers/dma350_drv.c
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/dma350_drv.h b/platform/ext/target/arm/mps3/corstone310/fvp/native_drivers/dma350_drv.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/dma350_drv.h
rename to platform/ext/target/arm/mps3/corstone310/fvp/native_drivers/dma350_drv.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/dma350_regdef.h b/platform/ext/target/arm/mps3/corstone310/fvp/native_drivers/dma350_regdef.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/native_drivers/dma350_regdef.h
rename to platform/ext/target/arm/mps3/corstone310/fvp/native_drivers/dma350_regdef.h
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/platform_svc_handler.c b/platform/ext/target/arm/mps3/corstone310/fvp/platform_svc_handler.c
similarity index 99%
rename from platform/ext/target/arm/mps3/corstone310_fvp/platform_svc_handler.c
rename to platform/ext/target/arm/mps3/corstone310/fvp/platform_svc_handler.c
index 4f4a344..da55fd7 100644
--- a/platform/ext/target/arm/mps3/corstone310_fvp/platform_svc_handler.c
+++ b/platform/ext/target/arm/mps3/corstone310/fvp/platform_svc_handler.c
@@ -25,7 +25,6 @@
                     (enum dma350_config_type_t)svc_args[0], (uint8_t)svc_args[1],
                     (void *)svc_args[2]);
             break;
-
         default:
             retval = PSA_ERROR_GENERIC_ERROR;
             break;
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/platform_svc_numbers.h b/platform/ext/target/arm/mps3/corstone310/fvp/platform_svc_numbers.h
similarity index 100%
rename from platform/ext/target/arm/mps3/corstone310_fvp/platform_svc_numbers.h
rename to platform/ext/target/arm/mps3/corstone310/fvp/platform_svc_numbers.h
diff --git a/platform/ext/target/arm/mps3/corstone310/fvp/preload.cmake b/platform/ext/target/arm/mps3/corstone310/fvp/preload.cmake
new file mode 100644
index 0000000..df76a39
--- /dev/null
+++ b/platform/ext/target/arm/mps3/corstone310/fvp/preload.cmake
@@ -0,0 +1,14 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2022, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+add_definitions(
+    -DCORSTONE310_FVP
+)
+
+set(CORSTONE310_COMMON_DIR "${CMAKE_CURRENT_LIST_DIR}/../common")
+
+include(${CORSTONE310_COMMON_DIR}/preload.cmake)
diff --git a/platform/ext/target/arm/mps3/corstone310_fvp/CMakeLists.txt b/platform/ext/target/arm/mps3/corstone310_fvp/CMakeLists.txt
deleted file mode 100644
index e8653cf..0000000
--- a/platform/ext/target/arm/mps3/corstone310_fvp/CMakeLists.txt
+++ /dev/null
@@ -1,200 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-cmake_policy(SET CMP0076 NEW)
-set(CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR})
-
-#========================= Platform region defs ===============================#
-
-target_include_directories(platform_region_defs
-    INTERFACE
-        partition
-)
-
-#========================= Platform common defs ===============================#
-if (${CMAKE_C_COMPILER_ID} STREQUAL ARMClang)
-    if (${CMAKE_C_COMPILER_VERSION} VERSION_LESS "6.14")
-        message(FATAL_ERROR "Architecture (Armv8.1-M) is only supported in ARMCLANG version 6.14 or newer.")
-    endif()
-endif()
-
-# Specify the location of platform specific build dependencies.
-target_sources(tfm_s
-    PRIVATE
-    ${CMAKE_CURRENT_SOURCE_DIR}/device/source/startup_corstone310.c
-)
-target_add_scatter_file(tfm_s
-    $<$<C_COMPILER_ID:ARMClang>:${CMAKE_SOURCE_DIR}/platform/ext/common/armclang/tfm_common_s.sct>
-    $<$<C_COMPILER_ID:GNU>:${CMAKE_SOURCE_DIR}/platform/ext/common/gcc/tfm_common_s.ld>
-    $<$<C_COMPILER_ID:IAR>:${CMAKE_SOURCE_DIR}/platform/ext/common/iar/tfm_common_s.icf>
-)
-
-if(NS)
-    target_sources(tfm_ns
-        PRIVATE
-            ${CMAKE_CURRENT_SOURCE_DIR}/device/source/startup_corstone310.c
-    )
-    if(DEFAULT_NS_SCATTER)
-        target_add_scatter_file(tfm_ns
-        $<$<C_COMPILER_ID:ARMClang>:${CMAKE_SOURCE_DIR}/platform/ext/common/armclang/tfm_common_ns.sct>
-        $<$<C_COMPILER_ID:GNU>:${CMAKE_SOURCE_DIR}/platform/ext/common/gcc/tfm_common_ns.ld>
-        $<$<C_COMPILER_ID:IAR>:${CMAKE_SOURCE_DIR}/platform/ext/common/iar/tfm_common_ns.icf>
-        )
-    endif()
-    target_link_libraries(CMSIS_5_tfm_ns
-        INTERFACE
-            $<$<C_COMPILER_ID:ARMClang>:CMSIS_5_RTX_V8MMN>
-            $<$<C_COMPILER_ID:GNU>:CMSIS_5_RTX_V8MMN>
-            $<$<C_COMPILER_ID:IAR>:CMSIS_5_RTX_V81MMN>
-    )
-endif()
-
-if(BL2)
-    target_sources(bl2
-        PRIVATE
-            ${CMAKE_CURRENT_SOURCE_DIR}/device/source/startup_corstone310.c
-    )
-    target_add_scatter_file(bl2
-        $<$<C_COMPILER_ID:ARMClang>:${CMAKE_SOURCE_DIR}/platform/ext/common/armclang/tfm_common_bl2.sct>
-        $<$<C_COMPILER_ID:GNU>:${CMAKE_SOURCE_DIR}/platform/ext/common/gcc/tfm_common_bl2.ld>
-        $<$<C_COMPILER_ID:IAR>:${CMAKE_SOURCE_DIR}/platform/ext/common/iar/tfm_common_bl2.icf>
-    )
-endif()
-
-#========================= Platform Secure ====================================#
-
-target_include_directories(platform_s
-    PUBLIC
-        .
-        ../common
-        cmsis_drivers
-        cmsis_drivers/config/secure
-        device
-        device/config
-        device/include
-        device/source/armclang
-        libraries
-        native_drivers
-        partition
-        services/src
-        ${PLATFORM_DIR}/..
-)
-
-target_sources(platform_s
-    PRIVATE
-        cmsis_drivers/Driver_Flash.c
-        cmsis_drivers/Driver_MPC.c
-        cmsis_drivers/Driver_TGU.c
-        cmsis_drivers/Driver_PPC.c
-        cmsis_drivers/Driver_USART.c
-        $<$<BOOL:${PLATFORM_SVC_HANDLERS}>:${CMAKE_CURRENT_SOURCE_DIR}/device/source/dma350_address_remap.c>
-        device/source/platform_s_device_definition.c
-        device/source/system_core_init.c
-        native_drivers/mpc_sie_drv.c
-        native_drivers/mpu_armv8m_drv.c
-        native_drivers/ppc_corstone310_drv.c
-        native_drivers/syscounter_armv8-m_cntrl_drv.c
-        native_drivers/uart_cmsdk_drv.c
-        native_drivers/dma350_ch_drv.c
-        native_drivers/dma350_drv.c
-        libraries/dma350_lib.c
-        $<$<OR:$<BOOL:${TEST_NS_SLIH_IRQ}>,$<BOOL:${TEST_NS_FLIH_IRQ}>>:${CMAKE_CURRENT_SOURCE_DIR}/plat_test.c>
-        $<$<BOOL:${TFM_PARTITION_PLATFORM}>:${CMAKE_CURRENT_SOURCE_DIR}/services/src/tfm_platform_system.c>
-        $<$<BOOL:${PLATFORM_SVC_HANDLERS}>:${CMAKE_CURRENT_SOURCE_DIR}/platform_svc_handler.c>
-        $<$<BOOL:${PLATFORM_SVC_HANDLERS}>:${CMAKE_CURRENT_SOURCE_DIR}/libraries/dma350_checker_layer.c>
-        $<$<BOOL:${PLATFORM_SVC_HANDLERS}>:${CMAKE_CURRENT_SOURCE_DIR}/device/source/dma350_checker_device_defs.c>
-        )
-
-target_compile_definitions(platform_s
-    PRIVATE
-        # Needed for DMA-350 library
-        CMSIS_device_header=<corstone310.h>
-
-        $<$<BOOL:${PLATFORM_SVC_HANDLERS}>:PLATFORM_SVC_HANDLERS>
-)
-
-target_sources(tfm_sprt
-    PRIVATE
-        # SLIH test Partition and FLIH test Partition access the timer as ARoT Partitions.
-        # Put the driver to SPRT so that both SLIH and FLIH tests can access it.
-        $<$<OR:$<BOOL:${TEST_NS_SLIH_IRQ}>,$<BOOL:${TEST_NS_FLIH_IRQ}>>:${CMAKE_CURRENT_SOURCE_DIR}/native_drivers/systimer_armv8-m_drv.c>
-)
-
-target_compile_options(platform_s
-    PUBLIC
-        ${COMPILER_CMSE_FLAG}
-)
-
-#========================= Platform Non-Secure ================================#
-
-target_sources(platform_ns
-    PRIVATE
-        cmsis_drivers/Driver_Flash.c
-        cmsis_drivers/Driver_USART.c
-        device/source/platform_ns_device_definition.c
-        device/source/system_core_init.c
-        native_drivers/uart_cmsdk_drv.c
-)
-
-target_include_directories(platform_ns
-    PUBLIC
-        .
-        ../common
-        ${PLATFORM_DIR}/..
-        cmsis_drivers
-        cmsis_drivers/config/non_secure
-        device
-        device/config
-        device/include
-        device/source/armclang
-        libraries
-        native_drivers
-        partition
-)
-
-#========================= Platform BL2 =======================================#
-
-if(BL2)
-    target_sources(platform_bl2
-        PRIVATE
-            cmsis_drivers/Driver_Flash.c
-            cmsis_drivers/Driver_USART.c
-            device/source/platform_s_device_definition.c
-            device/source/system_core_init.c
-            native_drivers/uart_cmsdk_drv.c
-    )
-
-    target_include_directories(platform_bl2
-        PUBLIC
-            cmsis_drivers
-            cmsis_drivers/config/secure
-            device
-            device/config
-            device/include
-            device/source/armclang
-            libraries
-            native_drivers
-            partition
-            services/src
-
-        PRIVATE
-            .
-            ${PLATFORM_DIR}/..
-            native_drivers
-    )
-endif()
-
-#========================= tfm_spm ============================================#
-
-target_sources(tfm_spm
-    PRIVATE
-        target_cfg.c
-        tfm_hal_isolation.c
-        tfm_hal_platform.c
-        faults.c
-        $<$<OR:$<BOOL:${CONFIG_TFM_FLIH_API}>,$<BOOL:${CONFIG_TFM_SLIH_API}>>:${CMAKE_CURRENT_SOURCE_DIR}/tfm_interrupts.c>
-)