aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorKristofer Jonsson <kristofer.jonsson@arm.com>2020-05-05 14:17:22 +0200
committerKristofer Jonsson <kristofer.jonsson@arm.com>2020-05-08 14:56:11 +0200
commit537c71cb602871b9957eeb07bca4d5740a2e7eb4 (patch)
treefd72f042482c2530c3c1e6dee053a11fa1a63aa6 /CMakeLists.txt
parent92b84384a3c6841db5fea0cf268423e6fd252e90 (diff)
downloadethos-u-core-driver-537c71cb602871b9957eeb07bca4d5740a2e7eb4.tar.gz
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
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt51
1 files changed, 27 insertions, 24 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d53662d..6e9d80e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,17 +24,10 @@ project(ethosu_core_driver VERSION 0.0.1)
# 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 @@ include_directories(${CMSIS_PATH}/CMSIS/Core/Include)
# 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 @@ endif()
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 "*******************************************************")