SPM: Add MVE support for GNUARM toolchain

Add MVE support based on FPU.
1. Enable FPU usage by CONFIG_TFM_ENABLE_FP.
2. Enable Integer Vector Extension (MVE-I) usage by
   CONFIG_TFM_ENABLE_MVE.
3. Enable Floating-point Vector Extension (MVE-F) support by
   CONFIG_TFM_ENABLE_MVE_FP.
4. Rename CONFIG_TFM_ENABLE_FPU to CONFIG_TFM_ENABLE_CP10CP11
   to cover both coprocessor types.
5. TFM_SYSTEM_MVE deleted.

Change-Id: Iece96c2e49c879fcde0af26f28480cf13ffc7028
Signed-off-by: Gabor Toth <gabor.toth@arm.com>
diff --git a/toolchain_GNUARM.cmake b/toolchain_GNUARM.cmake
index f9c620a..8ddeddc 100644
--- a/toolchain_GNUARM.cmake
+++ b/toolchain_GNUARM.cmake
@@ -88,14 +88,22 @@
                 endif()
             endif()
             if(GCC_VERSION VERSION_GREATER_EQUAL "8.0.0")
-                if (DEFINED CONFIG_TFM_FP)
-                    if(CONFIG_TFM_FP STREQUAL "0" AND
-                        NOT TFM_SYSTEM_ARCHITECTURE STREQUAL "armv6-m")
-                            string(APPEND CMAKE_SYSTEM_PROCESSOR "+nofp")
-                    endif()
+                if(NOT CONFIG_TFM_ENABLE_FP AND
+                    NOT TFM_SYSTEM_ARCHITECTURE STREQUAL "armv6-m")
+                        string(APPEND CMAKE_SYSTEM_PROCESSOR "+nofp")
                 endif()
             endif()
         endif()
+
+        if(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8.1-m.main")
+            if(NOT CONFIG_TFM_ENABLE_MVE)
+                string(APPEND CMAKE_SYSTEM_PROCESSOR "+nomve")
+            endif()
+            if(NOT CONFIG_TFM_ENABLE_MVE_FP)
+                string(APPEND CMAKE_SYSTEM_PROCESSOR "+nomve.fp")
+            endif()
+        endif()
+
     endif()
 
     # CMAKE_SYSTEM_ARCH variable is not a built-in CMAKE variable. It is used to
@@ -103,6 +111,15 @@
     # The variable name is choosen to align with the ARMCLANG toolchain file.
     set(CMAKE_SYSTEM_ARCH         ${TFM_SYSTEM_ARCHITECTURE})
 
+    if(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8.1-m.main")
+        if(CONFIG_TFM_ENABLE_MVE)
+            string(APPEND CMAKE_SYSTEM_ARCH "+mve")
+        endif()
+        if(CONFIG_TFM_ENABLE_MVE_FP)
+            string(APPEND CMAKE_SYSTEM_ARCH "+mve.fp")
+        endif()
+    endif()
+
     if (DEFINED TFM_SYSTEM_DSP)
         # +nodsp modifier is only supported from GCC version 8.
         if(GCC_VERSION VERSION_GREATER_EQUAL "8.0.0")
@@ -115,12 +132,11 @@
     endif()
 
     if(GCC_VERSION VERSION_GREATER_EQUAL "8.0.0")
-        if (DEFINED CONFIG_TFM_FP)
-            if(CONFIG_TFM_FP STREQUAL "hard")
-                string(APPEND CMAKE_SYSTEM_ARCH "+fp")
-            endif()
+        if(CONFIG_TFM_ENABLE_FP)
+            string(APPEND CMAKE_SYSTEM_ARCH "+fp")
         endif()
     endif()
+
 endmacro()
 
 macro(tfm_toolchain_reload_compiler)
@@ -161,9 +177,13 @@
 
     set(BL2_COMPILER_CP_FLAG -mfloat-abi=soft)
 
-    if (CONFIG_TFM_FP STREQUAL "hard")
-        set(COMPILER_CP_FLAG -mfloat-abi=hard -mfpu=${CONFIG_TFM_FP_ARCH})
-        set(LINKER_CP_OPTION -mfloat-abi=hard -mfpu=${CONFIG_TFM_FP_ARCH})
+    if (CONFIG_TFM_FLOAT_ABI STREQUAL "hard")
+        set(COMPILER_CP_FLAG -mfloat-abi=hard)
+        set(LINKER_CP_OPTION -mfloat-abi=hard)
+        if (CONFIG_TFM_ENABLE_FP OR CONFIG_TFM_ENABLE_MVE_FP)
+            set(COMPILER_CP_FLAG -mfloat-abi=hard -mfpu=${CONFIG_TFM_FP_ARCH})
+            set(LINKER_CP_OPTION -mfloat-abi=hard -mfpu=${CONFIG_TFM_FP_ARCH})
+        endif()
     else()
         set(COMPILER_CP_FLAG -mfloat-abi=soft)
         set(LINKER_CP_OPTION -mfloat-abi=soft)