diff --git a/docs/sections/building.md b/docs/sections/building.md
index c39cabc..5fdadb0 100644
--- a/docs/sections/building.md
+++ b/docs/sections/building.md
@@ -234,16 +234,6 @@
 - `TENSORFLOW_LITE_MICRO_CLEAN_DOWNLOADS`: Optional parameter to enable wiping out `TPIP` downloads from TensorFlow
   source tree prior to each build. Disabled by default.
 
-- `ARMCLANG_DEBUG_DWARF_LEVEL`: When the CMake build type is specified as `Debug` and when the `armclang` toolchain is
-  being used to build for a *Cortex-M* CPU target, this optional argument can be set to specify the `DWARF` format.
-
-  By default, this is set to 4 and is synonymous with passing `-g` flag to the compiler. This is compatible with Arm
-  DS and other tools which can interpret the latest DWARF format. To allow debugging using the Model Debugger from Arm
-  Fast Model Tools Suite, this argument can be used to pass DWARF format version as "3".
-
-  > **Note:** This option is only available when the CMake project is configured with the `-DCMAKE_BUILD_TYPE=Debug`
-  > argument. Also, the same dwarf format is used for building TensorFlow Lite Micro library.
-
 For details on the specific use-case build options, follow the instructions in the use-case specific documentation.
 
 Also, when setting any of the CMake configuration parameters that expect a directory, or file, path, **use absolute
@@ -452,20 +442,6 @@
     ml-embedded-evaluation-kit
 ```
 
-#### Working with model debugger from Arm Fast Model Tools
-
-To configure a build that can be debugged using a tool that only supports the `DWARF format 3`, such as *Modeldebugger*,
-you can use:
-
-```commandline
-cmake .. \
-    -DTARGET_PLATFORM=mps3 \
-    -DTARGET_SUBSYSTEM=sse-300 \
-    -DCMAKE_TOOLCHAIN_FILE=scripts/cmake/toolchains/bare-metal-armclang.cmake \
-    -DCMAKE_BUILD_TYPE=Debug \
-    -DARMCLANG_DEBUG_DWARF_LEVEL=3
-```
-
 #### Configuring with custom TPIP dependencies
 
 If the TensorFlow source tree is not in its default expected location, set the path using `TENSORFLOW_SRC_PATH`.
diff --git a/scripts/cmake/common_user_options.cmake b/scripts/cmake/common_user_options.cmake
index afc5386..9a13287 100644
--- a/scripts/cmake/common_user_options.cmake
+++ b/scripts/cmake/common_user_options.cmake
@@ -84,14 +84,6 @@
         "${DEPENDENCY_ROOT_DIR}/cmsis"
         PATH)
 
-    if (CMAKE_BUILD_TYPE STREQUAL Debug)
-        # For use with Arm compiler:
-        USER_OPTION(ARMCLANG_DEBUG_DWARF_LEVEL
-            "Dwarf conformance level for armclang toolchain"
-            "4" # Default = 4 (Arm-DS etc). For model debugger specify "3"
-            STRING)
-    endif()
-
     # If we need NPU libraries:
     if (ETHOS_U_NPU_ENABLED)
         USER_OPTION(ETHOS_U_NPU_TIMING_ADAPTER_SRC_PATH
diff --git a/scripts/cmake/tensorflow.cmake b/scripts/cmake/tensorflow.cmake
index 9d72405..284c70a 100644
--- a/scripts/cmake/tensorflow.cmake
+++ b/scripts/cmake/tensorflow.cmake
@@ -45,24 +45,19 @@
 set(TENSORFLOW_LITE_MICRO_GENDIR ${CMAKE_CURRENT_BINARY_DIR}/tensorflow/)
 set(TENSORFLOW_LITE_MICRO_PLATFORM_LIB_NAME "libtensorflow-microlite.a")
 
-set(ETHOS_EVAL_TARGET_MAKEFILE_INC ${CMAKE_CURRENT_SOURCE_DIR}/scripts/make/cortex_m_ethos_eval_makefile.inc)
-
 if (TARGET_PLATFORM STREQUAL native)
     set(TENSORFLOW_LITE_MICRO_TARGET "linux")
     set(TENSORFLOW_LITE_MICRO_TARGET_ARCH x86_64)
 else()
-    set(TENSORFLOW_LITE_MICRO_TARGET "cortex_m_ethos_eval")
+    set(TENSORFLOW_LITE_MICRO_TARGET "cortex_m_generic")
     set(TENSORFLOW_LITE_MICRO_TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR}${CPU_FEATURES})
     if(ETHOS_U_NPU_ENABLED)
         # Arm Ethos-U55 NPU is the co-processor for ML workload:
         set(TENSORFLOW_LITE_MICRO_CO_PROCESSOR  "ethos_u")
+        string(TOLOWER ${ETHOS_U_NPU_ID} ETHOSU_ARCH)
     endif()
 
     set(TENSORFLOW_LITE_MICRO_OPTIMIZED_KERNEL  "cmsis_nn")
-
-    # Copy over the target helper (cortex_m_ethos_eval)
-    file(COPY ${ETHOS_EVAL_TARGET_MAKEFILE_INC}
-        DESTINATION ${TENSORFLOW_LITE_MICRO_PATH}/tools/make/targets/)
 endif()
 
 if (TENSORFLOW_LITE_MICRO_CLEAN_DOWNLOADS)
@@ -92,11 +87,12 @@
         TARGET=${TENSORFLOW_LITE_MICRO_TARGET}
         TARGET_ARCH=${TENSORFLOW_LITE_MICRO_TARGET_ARCH}
         BUILD_TYPE=${TENSORFLOW_LITE_MICRO_BUILD_TYPE}
-        ETHOSU_ARCH=${ETHOSU_ARCH}
-        ETHOSU_DRIVER_PATH=${ETHOS_U_NPU_DRIVER_SRC_PATH}
         CMSIS_PATH=${CMSIS_SRC_PATH}
         # Conditional arguments
-        $<$<BOOL:${ARMCLANG_DEBUG_DWARF_LEVEL}>:ARMCLANG_DEBUG_DWARF_LEVEL=${ARMCLANG_DEBUG_DWARF_LEVEL}>
+        $<$<BOOL:${ETHOS_U_NPU_ENABLED}>:ETHOSU_ARCH=${ETHOSU_ARCH}>
+        $<$<BOOL:${ETHOS_U_NPU_ENABLED}>:ETHOSU_DRIVER_PATH=${ETHOS_U_NPU_DRIVER_SRC_PATH}>
+        $<$<BOOL:${ETHOS_U_NPU_ENABLED}>:ETHOSU_DRIVER_LIBS=$<TARGET_FILE:ethosu_core_driver>>
+
         $<$<BOOL:${TENSORFLOW_LITE_MICRO_CORE_OPTIMIZATION_LEVEL}>:CORE_OPTIMIZATION_LEVEL=${TENSORFLOW_LITE_MICRO_CORE_OPTIMIZATION_LEVEL}>
         $<$<BOOL:${TENSORFLOW_LITE_MICRO_KERNEL_OPTIMIZATION_LEVEL}>:KERNEL_OPTIMIZATION_LEVEL=${TENSORFLOW_LITE_MICRO_KERNEL_OPTIMIZATION_LEVEL}>
         $<$<BOOL:${TENSORFLOW_LITE_MICRO_OPTIMIZED_KERNEL}>:OPTIMIZED_KERNEL_DIR=${TENSORFLOW_LITE_MICRO_OPTIMIZED_KERNEL}>
@@ -116,7 +112,13 @@
 
 # Create library
 
-add_library(tensorflow-lite-micro STATIC IMPORTED)
+
+set(TENSORFLOW_LITE_MICRO_TARGET tensorflow-lite-micro)
+add_library(${TENSORFLOW_LITE_MICRO_TARGET} STATIC IMPORTED)
+
+if(ETHOS_U_NPU_ENABLED)
+    add_dependencies(tensorflow_build ethosu_core_driver)
+endif()
 
 add_dependencies(tensorflow-lite-micro tensorflow_build)
 
@@ -129,4 +131,4 @@
 
 target_compile_definitions(tensorflow-lite-micro
     INTERFACE
-    TF_LITE_STATIC_MEMORY)
+    TF_LITE_STATIC_MEMORY)
\ No newline at end of file
diff --git a/scripts/make/cortex_m_ethos_eval_makefile.inc b/scripts/make/cortex_m_ethos_eval_makefile.inc
deleted file mode 100644
index 234534a..0000000
--- a/scripts/make/cortex_m_ethos_eval_makefile.inc
+++ /dev/null
@@ -1,149 +0,0 @@
-#  Copyright (c) 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
-#
-#      http://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.
-
-# Generic Makefile target for ARM Cortex M builds.
-# For more info see: tensorflow/lite/micro/cortex_m_generic/README.md
-ifeq ($(TARGET),$(filter $(TARGET), cortex_m_ethos_eval))
-  FLOAT := soft
-  GCC_TARGET_ARCH := $(TARGET_ARCH)
-
-  ifeq ($(TARGET_ARCH), cortex-m0)
-    CORE=M0
-    ARM_LDFLAGS := -Wl,--cpu=Cortex-M0
-
-  else ifeq ($(TARGET_ARCH), cortex-m3)
-    CORE=M3
-    ARM_LDFLAGS := -Wl,--cpu=Cortex-M3
-
-  else ifeq ($(TARGET_ARCH), cortex-m33)
-    CORE=M33
-    ARM_LDFLAGS := -Wl,--cpu=Cortex-M33
-    TARGET_SPECIFIC_FLAGS += -D__DSP_PRESENT=1 -D__FPU_PRESENT=1 -D__VTOR_PRESENT=1 -D__FPU_USED=1
-    FLOAT=hard
-
-  else ifeq ($(TARGET_ARCH), cortex-m33+nodsp)
-    CORE=M33
-    ARM_LDFLAGS := -Wl,--cpu=Cortex-M33.no_dsp.no_fp
-
-  else ifeq ($(TARGET_ARCH), cortex-m4)
-    CORE=M4
-    ARM_LDFLAGS := -Wl,--cpu=Cortex-M4.no_fp
-    GCC_TARGET_ARCH := cortex-m4+nofp
-
-  else ifeq ($(TARGET_ARCH), cortex-m4+fp)
-    CORE=M4
-    ARM_LDFLAGS := -Wl,--cpu=Cortex-M4
-    TARGET_SPECIFIC_FLAGS += -D__FPU_PRESENT=1
-    FLOAT=hard
-    GCC_TARGET_ARCH := cortex-m4
-
-  else ifeq ($(TARGET_ARCH), cortex-m55)
-    CORE=M55
-    ARM_LDFLAGS := -Wl,--cpu=8.1-M.Main.mve.fp
-    TARGET_SPECIFIC_FLAGS += -D__DSP_PRESENT=1 -D__FPU_PRESENT=1
-    FLOAT=hard
-
-  else ifeq ($(TARGET_ARCH), cortex-m55+nodsp+nofp)
-    CORE=M55
-    ARM_LDFLAGS := -Wl,--cpu=8.1-M.Main.mve.no_dsp.no_fp
-
-  else ifeq ($(TARGET_ARCH), cortex-m55+nofp)
-    CORE=M55
-    ARM_LDFLAGS := -Wl,--cpu=8.1-M.Main.mve.no_fp
-    TARGET_SPECIFIC_FLAGS += -D__DSP_PRESENT=1
-
-  else ifeq ($(TARGET_ARCH), cortex-m7)
-    CORE=M7
-    ARM_LDFLAGS := -Wl,--cpu=Cortex-M7.no_fp
-    GCC_TARGET_ARCH := cortex-m7+nofp
-
-  else ifeq ($(TARGET_ARCH), cortex-m7+fp)
-    CORE=M7
-    ARM_LDFLAGS := -Wl,--cpu=Cortex-M7
-    FLOAT=hard
-    GCC_TARGET_ARCH := cortex-m7
-
-  else
-    $(error "TARGET_ARCH=$(TARGET_ARCH) is not supported")
-  endif
-
-  ifneq ($(filter cortex-m55%,$(TARGET_ARCH)),)
-    # soft-abi=soft disables MVE - use softfp instead for M55.
-    ifeq ($(FLOAT),soft)
-      FLOAT=softfp
-    endif
-  endif
-
-  # Toolchain specfic flags
-  ifeq ($(TOOLCHAIN), armclang)
-    CXX_TOOL  := armclang
-    CC_TOOL   := armclang
-    AR_TOOL   := armar
-    LD        := armlink
-
-    FLAGS_ARMC = \
-      --target=arm-arm-none-eabi \
-      -mcpu=$(TARGET_ARCH)
-
-    # For debug, include specific dwarf format symbols
-    ifeq ($(BUILD_TYPE), debug)
-      ifneq ($(ARMCLANG_DEBUG_DWARF_LEVEL),)
-        FLAGS_ARMC += -gdwarf-$(ARMCLANG_DEBUG_DWARF_LEVEL)
-      endif
-    endif
-
-    CXXFLAGS += $(FLAGS_ARMC)
-    CCFLAGS += $(FLAGS_ARMC)
-    LDFLAGS += $(ARM_LDFLAGS)
-
-    # Arm Compiler will not link the Math library (see below), therefore we're filtering it out.
-    # See Fatal error: L6450U: Cannot find library m:
-    # "Arm Compiler is designed to run in a bare metal environment,
-    # and automatically includes implementations of these functions,
-    # and so no such flag is necessary."
-    # https://developer.arm.com/documentation/100891/0611/troubleshooting/general-troubleshooting-advice
-    MICROLITE_LIBS := $(filter-out -lm,$(MICROLITE_LIBS))
-
-  else ifeq ($(TOOLCHAIN), gcc)
-    TARGET_TOOLCHAIN_PREFIX := arm-none-eabi-
-
-    FLAGS_GCC = -mcpu=$(GCC_TARGET_ARCH) -mfpu=auto
-    CXXFLAGS += $(FLAGS_GCC)
-    CCFLAGS += $(FLAGS_GCC)
-
-  else
-    $(error "TOOLCHAIN=$(TOOLCHAIN) is not supported.")
-  endif
-
-
-  PLATFORM_FLAGS = \
-    -DTF_LITE_MCU_DEBUG_LOG \
-    -mthumb \
-    -mfloat-abi=$(FLOAT) \
-    -funsigned-char \
-    -mlittle-endian \
-    -Wno-type-limits \
-    -Wno-unused-private-field \
-    -fomit-frame-pointer \
-    -MD \
-    -DCPU_CORTEX_$(CORE)=1 \
-    -DETHOSU_ARCH=${ETHOSU_ARCH} \
-    $(TARGET_SPECIFIC_FLAGS)
-
-  # Common + C/C++ flags
-  CXXFLAGS += $(PLATFORM_FLAGS)
-  CCFLAGS += $(PLATFORM_FLAGS)
-
-endif
