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()
