diff --git a/cmake/helpers.cmake b/cmake/helpers.cmake
index da954c0..3444e64 100644
--- a/cmake/helpers.cmake
+++ b/cmake/helpers.cmake
@@ -27,7 +27,8 @@
     cmake_parse_arguments(ARG "" "LINK_FILE;ENTRY" "" ${ARGN})
 
     # Store the link file in a property to be evaluated by the executable.
-    set_property(GLOBAL PROPERTY ETHOSU_TARGET_LINK_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${ARG_LINK_FILE})
+    get_filename_component(LINK_FILE_PATH ${ARG_LINK_FILE} ABSOLUTE)
+    set_property(GLOBAL PROPERTY ETHOSU_TARGET_LINK_FILE ${LINK_FILE_PATH})
 
     if (ARG_ENTRY)
         target_link_options(${target} ${scope} --entry Reset_Handler)
@@ -42,17 +43,21 @@
 
     if (CMAKE_CXX_COMPILER_ID STREQUAL "ARMClang")
         set(LINK_FILE_EXT scatter)
-        set(LINK_FILE_IN ${LINK_FILE}.${LINK_FILE_EXT})
         set(LINK_FILE_OPTION "--scatter")
         # Note: the -mcpu flag is added to avoid warnings caused when using the default cpu/arch.
         set(COMPILER_PREPROCESSOR_OPTIONS -mcpu=${CMAKE_SYSTEM_PROCESSOR} --target=arm-arm-none-eabi -E -x c -P)
     elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
         set(LINK_FILE_EXT ld)
-        set(LINK_FILE_IN ${LINK_FILE}.${LINK_FILE_EXT})
         set(LINK_FILE_OPTION "-T")
         set(COMPILER_PREPROCESSOR_OPTIONS -E -x c -P)
     endif()
 
+    if (EXISTS ${LINK_FILE})
+        set(LINK_FILE_IN ${LINK_FILE})
+    else()
+        set(LINK_FILE_IN ${LINK_FILE}.${LINK_FILE_EXT})
+    endif()
+
     get_filename_component(LINK_FILE_OUT_BASE ${LINK_FILE} NAME)
     set(LINK_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/${LINK_FILE_OUT_BASE}-${target}.${LINK_FILE_EXT})
 
@@ -140,10 +145,25 @@
 #############################################################################
 
 function(ethosu_add_binaries target)
+    set(SCRIPTS_DIR ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../scripts)
+
     add_custom_command(TARGET ${target} POST_BUILD
         COMMAND ${SCRIPTS_DIR}/generate_binaries.py --output ./fw $<TARGET_FILE:${target}>
         BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/fw/*
         WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
         COMMENT "Generate binaries for ${target}")
+endfunction()
 
+#############################################################################
+# Ethos-U NPU configuration
+#############################################################################
+
+function(ethosu_get_architecture config)
+    string(TOLOWER ${config} config)
+    if(${config} MATCHES "^ethos-(u[0-9]+|uz)-([0-9]+$)")
+        set(ETHOSU_ARCH ${CMAKE_MATCH_1} PARENT_SCOPE)
+        set(ETHOSU_NUM_MACS ${CMAKE_MATCH_2} PARENT_SCOPE)
+    else()
+        message(FATAL_ERROR "Unknown NPU config ${config}")
+    endif()
 endfunction()
