From 537c71cb602871b9957eeb07bca4d5740a2e7eb4 Mon Sep 17 00:00:00 2001 From: Kristofer Jonsson Date: Tue, 5 May 2020 14:17:22 +0200 Subject: 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 --- CMakeLists.txt | 51 +++++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 24 deletions(-) (limited to 'CMakeLists.txt') 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 "*******************************************************") -- cgit v1.2.1