diff --git a/src/arch/arm/config.cmake b/src/arch/arm/config.cmake
index 220b5906ce468a59e6a5c09cfcd21bbf2bfb3bfd..43368039d253ea27b2af6c04d76c3b631b6146b2 100644
--- a/src/arch/arm/config.cmake
+++ b/src/arch/arm/config.cmake
@@ -130,7 +130,14 @@ if (DEFINED KernelDTSList)
     # Generate devices_gen header based on DTB
     execute_process(
         COMMAND ${PYTHON} "${HARDWARE_GEN_PATH}" --dtb "${KernelDTBPath}" --compatibility-strings "${compatibility_outfile}" --output "${device_dest}" --config "${config_file}" --schema "${config_schema}"
+        INPUT_FILE /dev/stdin
+        OUTPUT_FILE /dev/stdout
+        ERROR_FILE /dev/stderr
+        RESULT_VARIABLE error
     )
+    if (error)
+        message(FATAL_ERROR "Failed to generate: ${device_dest}")
+    endif()
     file(READ "${compatibility_outfile}" compatibility_strings)
 
     include(src/drivers/config.cmake)