MLECO-3640 MLECO-3678: Adding support for M85 in GCC

Signed-off-by: Richard Burton <richard.burton@arm.com>

Change-Id: I087e23f43b41fa0ef97ec7dcaeba807f6cba17e7
diff --git a/scripts/cmake/toolchains/bare-metal-gcc.cmake b/scripts/cmake/toolchains/bare-metal-gcc.cmake
index d693fc6..015f962 100644
--- a/scripts/cmake/toolchains/bare-metal-gcc.cmake
+++ b/scripts/cmake/toolchains/bare-metal-gcc.cmake
@@ -1,5 +1,5 @@
 #----------------------------------------------------------------------------
-#  SPDX-FileCopyrightText: Copyright 2021 - 2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
+#  SPDX-FileCopyrightText: Copyright 2021-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
 #  SPDX-License-Identifier: Apache-2.0
 #
 #  Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,8 +23,6 @@
 set(CMAKE_CROSSCOMPILING            true)
 set(CMAKE_SYSTEM_NAME               Generic)
 
-set(MIN_GCC_VERSION                 10.2.1)
-
 # Skip compiler test execution
 set(CMAKE_C_COMPILER_WORKS          1)
 set(CMAKE_CXX_COMPILER_WORKS        1)
@@ -35,6 +33,7 @@
 
 if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m55)
     # Flags for cortex-m55
+    set(MIN_GCC_VERSION             10.2.1)
     set(CPU_ID                      M55)
     set(CPU_COMPILE_DEF             CPU_CORTEX_${CPU_ID})
     set(ARM_CPU                     "ARMC${CPU_ID}")
@@ -44,13 +43,17 @@
     set(CPU_LINK_OPT                "--cpu=Cortex-${CPU_ID}")
 elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m85)
     # Flags for cortex-m85
-    # @TODO: Current versions of GNU compiler do not support Cortex-M85, we compile for Cortex-M55 instead.
-    message(WARNING                 "Arm GNU Toolchain does not support Arm Cortex-M85 yet, switching to Cortex-M55.")
-    set(CMAKE_SYSTEM_PROCESSOR      cortex-m55 CACHE STRING "Cortex-M CPU to use" FORCE)
-    # No need to duplicate the definitions here.
-    # Flags from Cortex-M55 will be added as this toolchain file will be read by CMake again.
+    set(MIN_GCC_VERSION             13.2.1)
+    set(CPU_ID                      M85)
+    set(CPU_COMPILE_DEF             CPU_CORTEX_${CPU_ID})
+    set(ARM_CPU                     "ARMC${CPU_ID}")
+    set(CPU_HEADER_FILE             "${ARM_CPU}.h")
+    set(CPU_COMPILE_OPTION          "-mcpu=${CMAKE_SYSTEM_PROCESSOR}")
+    set(FLOAT_ABI_COMPILE_OPTION    "-mfloat-abi=hard")
+    set(CPU_LINK_OPT                "--cpu=Cortex-${CPU_ID}")
 elseif (CMAKE_SYSTEM_ARCH STREQUAL armv8.1-m.main)
     # Flags for generic target armv8.1-m.main (will work for cortex-m55 and cortex-m85
+    set(MIN_GCC_VERSION             10.2.1)
     set(CPU_ID                      ARMv81MML_DSP_DP_MVE_FP)
     set(ARM_CPU                     "ARMv81MML")
     set(CPU_COMPILE_DEF             ${CPU_ID})
@@ -63,6 +66,10 @@
     # Flags for cortex-m33 to go here
 endif()
 
+if (NOT DEFINED MIN_GCC_VERSION)
+    set(MIN_GCC_VERSION             10.2.1)
+endif()
+
 set(${CPU_COMPILE_DEF}              1)
 
 # Warning options