MLECO-2927: Build Arm Ethos-U NPU driver outside TFLu

* TensorFlow CMake uses Arm Ethos-U NPU driver lib path
* armclang DWARF level config flag removed
* uses and mentions of DWARF level removed
* TensorFlow uses Arm Cortex-M generic target
* removed Arm Cortex-M custom target makefile and dir

Change-Id: Ie0d3edb5473462ef8552f8b9f832190de5e99a7c
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