MLBEDSW-2194 Updating PMU files

Moving PMU files from ethosu_pmu to include and src.

Adding extern "C" to PMU header.

Removing CMake generated file.

Updating default path to CMSIS.

Removing timing adapter.

Change-Id: I4834c5361c14efe629c5cb36a17013d02cc765c8
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d53662d..6e9d80e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,17 +24,10 @@
 # Build options
 #
 
-option(DRIVER_BUILD_PMU "Driver supports NPU-PMU" ON)
+option(DRIVER_PMU_AUTOINIT "Enable PMU boot auto-initialization" OFF)
 option(LOG_SUPPORT "Enable logging." ON)
 
-set(CMSIS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../library/cmsis" CACHE PATH "Path to CMSIS.")
-set(TIMING_ADAPTER_PATH "${CMAKE_CURRENT_SOURCE_DIR}/timing-adapter" CACHE STRING "Path to timing adapter.")
-
-if(EXISTS "${TIMING_ADAPTER_PATH}")
-    option(DRIVER_BUILD_TIMING_ADAPTER "Enable timing-adapter" ON)
-else()
-    option(DRIVER_BUILD_TIMING_ADAPTER "Enable timing-adapter" OFF)
-endif()
+set(CMSIS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmsis" CACHE PATH "Path to CMSIS.")
 
 #
 # Global settings
@@ -74,20 +67,33 @@
 
 # Build driver library
 add_library(ethosu_core_driver STATIC)
-target_include_directories(ethosu_core_driver
-                           PUBLIC include)
-target_sources(ethosu_core_driver PRIVATE src/ethosu_driver.c src/ethosu_device.c)
-
-# Build timing adapter
-if (DRIVER_BUILD_TIMING_ADAPTER)
-    add_subdirectory(timing-adapter)
-    target_link_libraries(ethosu_core_driver PUBLIC timing-adapter)
-endif()
+target_include_directories(ethosu_core_driver PUBLIC include)
+target_sources(ethosu_core_driver PRIVATE src/ethosu_driver.c src/ethosu_device.c src/ethosu_pmu.c)
 
 # Build PMU
-if (DRIVER_BUILD_PMU)
-    add_subdirectory(ethosu_pmu)
-    target_link_libraries(ethosu_core_driver PUBLIC ethosu_core_driver_pmu)
+if (DRIVER_PMU_AUTOINIT)
+    set(NPU_PMCR        "0x0" CACHE STRING "Register control b0 = CNT_EN = Enable counters (RW), b1 = EVENT_CNT_RST = Reset event counters (WO), b2 = CYCLE_CNT_RST = Reset cycle counter (WO), b[15:11] = Number of event counters (RO)")
+    set(NPU_PMCNTENSET  "0x0" CACHE STRING "Bit k enables event counter k. k=31 enables the cycle counter. Read value is current status.")
+    set(NPU_PMCNTENCLR  "0x0" CACHE STRING "Bit k disables event counter k. k=31 disables the cycle counter. Reda value is current status.")
+    set(NPU_PMOVSSET    "0x0" CACHE STRING "Overflow detection set. Bit k is for counter k. k=31 is cycle counter.")
+    set(NPU_PMOVSCLR    "0x0" CACHE STRING "Overflow detection clear. Bit k is for counter k. k=31 is cycle counter.")
+    set(NPU_PMINTSET    "0x0" CACHE STRING "Interrupt set. Bit k is for counter k. k=31 is cycle counter.")
+    set(NPU_PMINTCLR    "0x8003" CACHE STRING "Interrupt clear. Bit k is for counter k. k=31 is cycle counter.")
+    set(NPU_PMCCNTR     "0x0" CACHE STRING "Cycle counter, 48 bits value")
+    set(NPU_PMCCNTR_CFG "0x0" CACHE STRING "b[9:0] Start Event – this event number starts the cycle counter b[25:16] Stop Event – this event number stops the cycle counter")
+
+    target_compile_definitions(ethosu_core_driver PRIVATE
+        PMU_AUTOINIT
+        INIT_PMCR=${NPU_PMCR}
+        INIT_PMCNTENSET=${NPU_PMCNTENSET}
+        INIT_PMCNTENCLR=${NPU_PMCNTENCLR}
+        INIT_PMOVSSET=${NPU_PMOVSSET}
+        INIT_PMOVSCLR=${NPU_PMOVSCLR}
+        INIT_PMINTSET=${NPU_PMINTSET}
+        INIT_PMINTCLR=${NPU_PMINTCLR}
+        INIT_PMCCNTR=${NPU_PMCCNTR}
+        INIT_PMCCNTR_CFG=${NPU_PMCCNTR_CFG}
+    )
 endif()
 
 #
@@ -97,9 +103,6 @@
 message(STATUS "*******************************************************")
 message(STATUS "PROJECT_NAME                           : ${PROJECT_NAME}")
 message(STATUS "CMAKE_SYSTEM_PROCESSOR                 : ${CMAKE_SYSTEM_PROCESSOR}")
-message(STATUS "DRIVER_BUILD_PMU                       : ${DRIVER_BUILD_PMU}")
-message(STATUS "DRIVER_BUILD_TIMING_ADAPTER            : ${DRIVER_BUILD_TIMING_ADAPTER}")
 message(STATUS "LOG_SUPPORT                            : ${LOG_SUPPORT}")
 message(STATUS "CMSIS_PATH                             : ${CMSIS_PATH}")
-message(STATUS "TIMING_ADAPTER_PATH                    : ${TIMING_ADAPTER_PATH}")
 message(STATUS "*******************************************************")