Add support for Cortex-M85

Remove old unused cmake toolchain files.

Adapt FreeRTOS to be used with Cortex-M85: fallback to use Cortex-M33
port files in FreeRTOS like for Cortex-M55.

Change-Id: I79af29ed920e1920c970bc6f516e9b711019692a
diff --git a/README.md b/README.md
index da5618e..ff3538a 100644
--- a/README.md
+++ b/README.md
@@ -6,10 +6,8 @@
 build out of tree like illustrated below.
 
 ```
-$ mkdir build
-$ cd build
-$ cmake .. -DCMAKE_TOOLCHAIN_FILE=<toolchain> -DCMAKE_SYSTEM_PROCESSOR=cortex-m<nr><features>
-$ make
+$ cmake -B build -DCMAKE_TOOLCHAIN_FILE=<core_platform_path>/cmake/toolchain/<toolchain_file> -DTARGET_CPU=cortex-m<nr><features>
+$ cmake --build build -j8
 ```
 
 Available build options can be listed with `cmake -LH ..`.
diff --git a/cmake/toolchain/arm-none-eabi-gcc.cmake b/cmake/toolchain/arm-none-eabi-gcc.cmake
deleted file mode 100644
index 964b9e3..0000000
--- a/cmake/toolchain/arm-none-eabi-gcc.cmake
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-# Copyright (c) 2019-2021 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: Apache-2.0
-#
-# 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
-#
-# 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.
-#
-
-if (__TOOLCHAIN_LOADED)
-    return()
-endif()
-set(__TOOLCHAIN_LOADED TRUE)
-
-set(CMAKE_SYSTEM_NAME Generic)
-set(CMAKE_C_COMPILER "arm-none-eabi-gcc")
-set(CMAKE_CXX_COMPILER "arm-none-eabi-g++")
-set(CMAKE_SYSTEM_PROCESSOR "cortex-m33+nodsp" CACHE STRING "Select Cortex-M architure. (cortex-m0, cortex-m3, cortex-m33, cortex-m4, cortex-m55, cortex-m7, etc)")
-
-set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
-
-SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-
-set(CMAKE_C_STANDARD 99)
-set(CMAKE_CXX_STANDARD 14)
-
-# The system processor could for example be set to cortex-m33+nodsp+nofp.
-set(__CPU_COMPILE_TARGET ${CMAKE_SYSTEM_PROCESSOR})
-string(REPLACE "+" ";" __CPU_FEATURES ${__CPU_COMPILE_TARGET})
-list(POP_FRONT __CPU_FEATURES CMAKE_SYSTEM_PROCESSOR)
-
-string(FIND ${__CPU_COMPILE_TARGET} "+" __OFFSET)
-if(__OFFSET GREATER_EQUAL 0)
-    string(SUBSTRING ${__CPU_COMPILE_TARGET} ${__OFFSET} -1 CPU_FEATURES)
-endif()
-
-# Add -mcpu to the compile options to override the -mcpu the CMake toolchain adds
-add_compile_options(-mcpu=${__CPU_COMPILE_TARGET})
-
-# Set floating point unit
-if("${__CPU_COMPILE_TARGET}" MATCHES "\\+fp")
-    set(FLOAT hard)
-elseif("${__CPU_COMPILE_TARGET}" MATCHES "\\+nofp")
-    set(FLOAT soft)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m33" OR
-       "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m55")
-    set(FLOAT hard)
-else()
-    set(FLOAT soft)
-endif()
-
-add_compile_options(-mfloat-abi=${FLOAT})
-add_link_options(-mfloat-abi=${FLOAT})
-
-# Link target
-add_link_options(-mcpu=${__CPU_COMPILE_TARGET})
-
-#
-# Compile options
-#
-set(cxx_flags "-fno-unwind-tables;-fno-rtti;-fno-exceptions")
-
-add_compile_options("-Wall;-Wextra;-Wsign-compare;-Wunused;-Wswitch-default;-Wformat;\
--Wdouble-promotion;-Wredundant-decls;-Wshadow;-Wcast-align;-Wnull-dereference;\
--Wno-format-extra-args;-Wno-unused-function;-Wno-unused-label;\
--Wno-missing-field-initializers;-Wno-return-type"
-    "$<$<COMPILE_LANGUAGE:CXX>:${cxx_flags}>"
-)
-
diff --git a/cmake/toolchain/armclang.cmake b/cmake/toolchain/armclang.cmake
deleted file mode 100644
index 7d607ed..0000000
--- a/cmake/toolchain/armclang.cmake
+++ /dev/null
@@ -1,104 +0,0 @@
-#
-# Copyright (c) 2019-2021 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: Apache-2.0
-#
-# 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
-#
-# 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.
-#
-
-if (__TOOLCHAIN_LOADED)
-    return()
-endif()
-set(__TOOLCHAIN_LOADED TRUE)
-
-set(CMAKE_SYSTEM_NAME Generic)
-set(CMAKE_C_COMPILER "armclang")
-set(CMAKE_CXX_COMPILER "armclang")
-set(CMAKE_ASM_COMPILER "armclang")
-set(CMAKE_SYSTEM_PROCESSOR "cortex-m33+nodsp" CACHE STRING "Select Cortex-M architure. (cortex-m0, cortex-m3, cortex-m33, cortex-m4, cortex-m55, cortex-m7, etc)")
-
-set(CMAKE_C_STANDARD 99)
-set(CMAKE_CXX_STANDARD 11)
-
-# The system processor could for example be set to cortex-m33+nodsp+nofp.
-set(__CPU_COMPILE_TARGET ${CMAKE_SYSTEM_PROCESSOR})
-string(REPLACE "+" ";" __CPU_FEATURES ${__CPU_COMPILE_TARGET})
-list(POP_FRONT __CPU_FEATURES CMAKE_SYSTEM_PROCESSOR)
-
-string(FIND ${__CPU_COMPILE_TARGET} "+" __OFFSET)
-if(__OFFSET GREATER_EQUAL 0)
-    string(SUBSTRING ${__CPU_COMPILE_TARGET} ${__OFFSET} -1 CPU_FEATURES)
-endif()
-
-# Add -mcpu to the compile options to override the -mcpu the CMake toolchain adds
-add_compile_options(
-    -mcpu=${__CPU_COMPILE_TARGET}
-    "$<$<COMPILE_LANGUAGE:ASM>:-masm=auto;--target=arm-arm-none-eabi>")
-
-# Set floating point unit
-if("${__CPU_COMPILE_TARGET}" MATCHES "\\+fp")
-    set(FLOAT hard)
-elseif("${__CPU_COMPILE_TARGET}" MATCHES "\\+nofp")
-    set(FLOAT soft)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m33" OR
-       "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m4" OR
-       "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m55" OR
-       "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m7")
-    set(FLOAT hard)
-else()
-    set(FLOAT soft)
-endif()
-
-add_compile_options(-mfloat-abi=${FLOAT})
-#add_link_options(-mfloat-abi=${FLOAT})
-
-# Link target
-set(__CPU_LINK_TARGET ${CMAKE_SYSTEM_PROCESSOR})
-if("nodsp" IN_LIST __CPU_FEATURES)
-    string(APPEND __CPU_LINK_TARGET ".no_dsp")
-endif()
-if("nofp" IN_LIST __CPU_FEATURES)
-    string(APPEND __CPU_LINK_TARGET ".no_fp")
-endif()
-
-if(CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m55")
-    set(__CPU_LINK_TARGET 8.1-M.Main.dsp)
-endif()
-
-add_link_options(--cpu=${__CPU_LINK_TARGET})
-add_link_options(--lto --info common,debug,sizes,totals,veneers,unused --symbols --diag_suppress=L6439W)
-
-#
-# Compile options
-#
-
-add_compile_options(-Wall -Wextra
-                    -Wsign-compare
-                    -Wunused
-                    -Wswitch-default
-                    -Wformat
-                    -Wdouble-promotion
-                    -Wredundant-decls
-                    -Wshadow
-                    -Wcast-align
-                    -Wnull-dereference
-                    -Wno-deprecated-register
-                    -Wno-format-extra-args
-                    -Wno-missing-field-initializers
-                    -Wno-unused-function
-                    -Wno-unused-label
-                    -Wno-unused-parameter
-                    -Wno-return-type)
-add_compile_options(-fno-unwind-tables -fno-rtti -fno-exceptions)
-add_compile_options(-mthumb)
-add_compile_options("$<$<CONFIG:DEBUG>:-gdwarf-3>")
diff --git a/rtos/freertos_config/CMakeLists.txt b/rtos/freertos_config/CMakeLists.txt
index 34fe132..318390d 100644
--- a/rtos/freertos_config/CMakeLists.txt
+++ b/rtos/freertos_config/CMakeLists.txt
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
+# Copyright (c) 2019-2022 Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
 #
@@ -26,6 +26,8 @@
     add_compile_definitions(CPU_CORTEX_M55)
 elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m7")
     add_compile_definitions(CPU_CORTEX_M7)
+elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m85")
+    add_compile_definitions(CPU_CORTEX_M85)
 else()
     message(FATAL_ERROR "Unsupported compiler ${CMAKE_SYSTEM_PROCESSOR}.")
 endif()
@@ -102,6 +104,15 @@
     target_include_directories(freertos_kernel PUBLIC
         ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure
     )
+elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m85")
+# TODO: using the same port files as Cortex-M33. Update for Cortex-M85.
+    target_sources(freertos_kernel PRIVATE
+        ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure/port.c
+        ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure/portasm.c
+    )
+    target_include_directories(freertos_kernel PUBLIC
+        ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure
+    )
 else()
     message(FATAL_ERROR "Invalid processor ${CMAKE_SYSTEM_PROCESSOR} when building FreeRTOS kernel")
 endif()