diff --git a/scripts/cmake/cmsis-dsp.cmake b/scripts/cmake/cmsis-dsp.cmake
index 73f6100..f22d5ef 100644
--- a/scripts/cmake/cmsis-dsp.cmake
+++ b/scripts/cmake/cmsis-dsp.cmake
@@ -68,16 +68,8 @@
     endif()
 endif ()
 
-# 5. Add any custom/conditional flags for compilation or linkage
-if ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m55" OR "${CMAKE_SYSTEM_ARCH}" STREQUAL "armv8.1-m.main")
-    target_compile_definitions(${CMSIS_DSP_TARGET} PUBLIC
-        ARM_MATH_MVEI
-        ARM_MATH_DSP
-        ARM_MATH_LOOPUNROLL)
-elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL cortex-m33)
-    # Placeholder, if building with Cortex-M33
-endif()
-
+# 5. General compile definitions
+target_compile_definitions(${CMSIS_DSP_TARGET} PUBLIC ARM_MATH_LOOPUNROLL)
 
 # 6. Provide the library path for the top level CMake to use:
 set(CMSIS_DSP_LIB   "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${CMSIS_DSP_TARGET}.a")
diff --git a/scripts/cmake/cmsis-pack-gen/CMakeLists.txt b/scripts/cmake/cmsis-pack-gen/CMakeLists.txt
index 19787b6..db5cfff 100644
--- a/scripts/cmake/cmsis-pack-gen/CMakeLists.txt
+++ b/scripts/cmake/cmsis-pack-gen/CMakeLists.txt
@@ -22,7 +22,7 @@
 # here along with their dependencies.                   #
 #########################################################
 
-cmake_minimum_required(VERSION 3.15.6)
+cmake_minimum_required(VERSION 3.21.0)
 
 project(ml-embedded-eval-kit-api
         DESCRIPTION     "Platform agnostic API for all examples.")
diff --git a/scripts/cmake/cmsis-pack-gen/use-case-api.yml b/scripts/cmake/cmsis-pack-gen/use-case-api.yml
index 8796dff..fb0cbd9 100644
--- a/scripts/cmake/cmsis-pack-gen/use-case-api.yml
+++ b/scripts/cmake/cmsis-pack-gen/use-case-api.yml
@@ -23,7 +23,7 @@
 #
 # Ideal usage: from the root of the repository
 #
-# ml-embedded-eval-kit $ packgen -s ./source/                   \ # Source dir
+# ml-embedded-eval-kit $ packgen -s ./                          \ # Source dir (run this from repo root)
 #           -v ./scripts/cmake/cmsis-pack-gen/use-case-api.yml  \ # This file's path
 #           -o <path-to>/ml-embedded-eval-kit-pack              \ # Where to generate the ouput
 #           -i <path-to>/tensorflow.tensorflow-lite-micro.pdsc  \ # Tensorflow packs' PDSC file
@@ -41,18 +41,18 @@
   - name: "ml-embedded-eval-kit-uc-api"
     description: "Sample use case APIs derived from ml-embedded-eval-kit"
     vendor: "ARM"
-    license: ""
+    license: "LICENSE_APACHE_2.0.txt"
     url: "https://review.mlplatform.org/admin/repos/ml/ethos-u/ml-embedded-evaluation-kit/"
 
     requirements:
       packages:
-        - attributes: {vendor: "tensorflow", name: "tensorflow-lite-micro", version: "0.4.0"}
-        - attributes: {vendor: "ARM", name: "CMSIS", version: "5.9.0"}
+        - attributes: {vendor: "tensorflow", name: "tensorflow-lite-micro", version: "1.22.02"}
+        - attributes: {vendor: "ARM", name: "CMSIS", version: "5.8.0"}
 
     releases:
       - version: "22.05.0"
-        date: "2022-05-04"
-        description: "Experimental package"
+        date: "2022-05-23"
+        description: "Beta release package"
 
 #    @TODO: Add API header names and descriptions here (see placeholder below).
 #    apis:
diff --git a/scripts/cmake/platforms/mps3/build_configuration.cmake b/scripts/cmake/platforms/mps3/build_configuration.cmake
index 6e21d9b..749b1e1 100644
--- a/scripts/cmake/platforms/mps3/build_configuration.cmake
+++ b/scripts/cmake/platforms/mps3/build_configuration.cmake
@@ -22,18 +22,7 @@
         if (TARGET_SUBSYSTEM STREQUAL sse-300)
             set(CMAKE_SYSTEM_PROCESSOR cortex-m55 CACHE STRING "Cortex-M CPU to use")
         elseif(TARGET_SUBSYSTEM STREQUAL sse-310)
-            # For CMake versions older than 3.21, the compiler and linker flags for
-            # ArmClang are added by CMake automatically which makes it mandatory to
-            # define the system processor. For CMake versions 3.21 or later (that
-            # implement policy CMP0123) we use armv8.1-m as the arch until the
-            # toolchain officially supports Cortex-M85. For older version of CMake
-            # we revert to using Cortex-M55 as the processor (as this will work
-            # for M85 too).
-            if(POLICY CMP0123)
-                set(CMAKE_SYSTEM_ARCH armv8.1-m.main CACHE STRING "System arch to use")
-            else()
-                set(CMAKE_SYSTEM_PROCESSOR  cortex-m55)
-            endif()
+            set(CMAKE_SYSTEM_PROCESSOR cortex-m85 CACHE STRING "Cortex-M CPU to use")
         endif()
     endif()
 
diff --git a/scripts/cmake/tensorflow.cmake b/scripts/cmake/tensorflow.cmake
index 8a790bc..ac11542 100644
--- a/scripts/cmake/tensorflow.cmake
+++ b/scripts/cmake/tensorflow.cmake
@@ -51,7 +51,7 @@
 else()
     set(TENSORFLOW_LITE_MICRO_TARGET "cortex_m_generic")
 
-    if ("${CMAKE_SYSTEM_ARCH}" STREQUAL "armv8.1-m.main")
+    if ("${CMAKE_SYSTEM_ARCH}" STREQUAL "armv8.1-m.main" OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m85")
         # TensorFlow's generic makefile doesn't currently have a flow for Cortex-M85.
         # We build for Arm Cortex-M55 instead.
         # @TODO: check with latest TensorFlow package.
diff --git a/scripts/cmake/toolchains/bare-metal-armclang.cmake b/scripts/cmake/toolchains/bare-metal-armclang.cmake
index 97da76f..3db3320 100644
--- a/scripts/cmake/toolchains/bare-metal-armclang.cmake
+++ b/scripts/cmake/toolchains/bare-metal-armclang.cmake
@@ -25,40 +25,46 @@
 set(CMAKE_CROSSCOMPILING            true)
 set(CMAKE_SYSTEM_NAME               Generic)
 
-set(MIN_ARM_CLANG_VERSION           6.16)
-
 # Skip compiler test execution
 set(CMAKE_C_COMPILER_WORKS          1)
 set(CMAKE_CXX_COMPILER_WORKS        1)
 
 if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR AND NOT DEFINED CMAKE_SYSTEM_ARCH)
-    set(CMAKE_SYSTEM_PROCESSOR      cortex-m55)
+    set(CMAKE_SYSTEM_PROCESSOR      cortex-m55 CACHE STRING "Cortex-M CPU to use")
 endif()
 
 if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m55)
     # Flags for cortex-m55
+    set(MIN_ARM_CLANG_VERSION       6.16)
     set(CPU_ID                      M55)
     set(CPU_COMPILE_DEF             CPU_CORTEX_${CPU_ID})
     set(ARM_CPU                     "ARMC${CPU_ID}")
-    set(FLOAT_ABI                   hard)
-    set(ARM_MATH_DSP                1)
-    set(ARM_MATH_LOOPUNROLL         1)
     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_PROCESSOR STREQUAL cortex-m85 OR CMAKE_SYSTEM_ARCH STREQUAL armv8.1-m.main)
-    # Flags for Cortex-M85
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m85)
+    # Flags for cortex-m85
+    set(MIN_ARM_CLANG_VERSION       6.18)
+    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 armv8.1-m profile
+    set(MIN_ARM_CLANG_VERSION       6.16)
     set(CPU_ID                      ARMv81MML_DSP_DP_MVE_FP)
     set(ARM_CPU                     "ARMv81MML")
     set(CPU_COMPILE_DEF             ${CPU_ID})
-    set(FLOAT_ABI                   hard)
-    set(ARM_MATH_DSP                1)
-    set(ARM_MATH_LOOPUNROLL         1)
 
     # @TODO: Revise once we have the CPU file in CMSIS and CPU flags
     # are supported by toolchains.
     set(CPU_HEADER_FILE             "${CPU_ID}.h")
     set(CPU_COMPILE_OPTION          "-march=armv8.1-m.main+mve.fp+fp.dp")
+    set(FLOAT_ABI_COMPILE_OPTION    "-mfloat-abi=hard")
     set(CPU_LINK_OPT                "--cpu=8.1-M.Main.mve.fp")
 elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m33)
     # Flags for cortex-m33 to go here
@@ -81,18 +87,16 @@
 # Arch compile options:
 add_compile_options(
     -mthumb
-    -mfloat-abi=${FLOAT_ABI}
     --target=arm-arm-non-eabi
     -mlittle-endian
     -MD
-    ${CPU_COMPILE_OPTION})
+    ${CPU_COMPILE_OPTION}
+    ${FLOAT_ABI_COMPILE_OPTION})
 
 # Compile definitions:
 add_compile_definitions(
     CPU_HEADER_FILE=\"${CPU_HEADER_FILE}\"
-    $<$<BOOL:${CPU_COMPILE_DEF}>:${CPU_COMPILE_DEF}>
-    $<$<BOOL:${ARM_MATH_DSP}>:ARM_MATH_DSP>
-    $<$<BOOL:${ARM_MATH_LOOPUNROLL}>:ARM_MATH_LOOPUNROLL>)
+    $<$<BOOL:${CPU_COMPILE_DEF}>:${CPU_COMPILE_DEF}>)
 
 # Link options:
 add_link_options(${CPU_LINK_OPT})
diff --git a/scripts/cmake/toolchains/bare-metal-gcc.cmake b/scripts/cmake/toolchains/bare-metal-gcc.cmake
index a6d6c0e..9c1cd4f 100644
--- a/scripts/cmake/toolchains/bare-metal-gcc.cmake
+++ b/scripts/cmake/toolchains/bare-metal-gcc.cmake
@@ -30,7 +30,7 @@
 set(CMAKE_CXX_COMPILER_WORKS        1)
 
 if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR AND NOT DEFINED CMAKE_SYSTEM_ARCH)
-    set(CMAKE_SYSTEM_PROCESSOR      cortex-m55)
+    set(CMAKE_SYSTEM_PROCESSOR      cortex-m55 CACHE STRING "Cortex-M CPU to use")
 endif()
 
 if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m55)
@@ -38,25 +38,26 @@
     set(CPU_ID                      M55)
     set(CPU_COMPILE_DEF             CPU_CORTEX_${CPU_ID})
     set(ARM_CPU                     "ARMC${CPU_ID}")
-    set(FLOAT_ABI                   hard)
-    set(ARM_MATH_DSP                1)
-    set(ARM_MATH_LOOPUNROLL         1)
     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_PROCESSOR STREQUAL cortex-m85 OR CMAKE_SYSTEM_ARCH STREQUAL armv8.1-m.main)
-    # Flags for Cortex-M85
+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.
+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(CPU_ID                      ARMv81MML_DSP_DP_MVE_FP)
     set(ARM_CPU                     "ARMv81MML")
     set(CPU_COMPILE_DEF             ${CPU_ID})
     set(FLOAT_ABI                   hard)
-    set(ARM_MATH_DSP                1)
-    set(ARM_MATH_LOOPUNROLL         1)
-
-    # @TODO: Revise once we have the CPU file in CMSIS and CPU flags
-    # are supported by toolchains.
     set(CPU_HEADER_FILE             "${CPU_ID}.h")
     set(CPU_COMPILE_OPTION          "-march=armv8.1-m.main+mve.fp+fp.dp")
+    set(FLOAT_ABI_COMPILE_OPTION    "-mfloat-abi=hard")
     set(CPU_LINK_OPT                "--cpu=8.1-M.Main.mve.fp")
 elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m33)
     # Flags for cortex-m33 to go here
@@ -81,23 +82,21 @@
 # Arch compile options:
 add_compile_options(
     -mthumb
-    -mfloat-abi=${FLOAT_ABI}
     -mlittle-endian
     -MD
+    ${FLOAT_ABI_COMPILE_OPTION}
     ${CPU_COMPILE_OPTION})
 
 # Compile definitions:
 add_compile_definitions(
-    CPU_HEADER_FILE=\"${CPU_HEADER_FILE}\"
-    $<$<BOOL:${CPU_COMPILE_DEF}>:${CPU_COMPILE_DEF}>
-    $<$<BOOL:${ARM_MATH_DSP}>:ARM_MATH_DSP>
-    $<$<BOOL:${ARM_MATH_LOOPUNROLL}>:ARM_MATH_LOOPUNROLL>)
+    $<$<BOOL:${CPU_HEADER_FILE}>:CPU_HEADER_FILE=\"${CPU_HEADER_FILE}\">
+    $<$<BOOL:${CPU_COMPILE_DEF}>:${CPU_COMPILE_DEF}>)
 
 # Link options:
 add_link_options(
     -mthumb
     ${CPU_COMPILE_OPTION}
-    -mfloat-abi=${FLOAT_ABI}
+    ${FLOAT_ABI_COMPILE_OPTION}
     -mlittle-endian
     --stats
     "SHELL:-Xlinker --gc-sections"
