From 1a669124ecfa4bcd9182cde2ea0465b8f62305e9 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Thu, 24 Oct 2019 19:00:57 +0000 Subject: dldt-inference-engine: use firmware files from SRC_URI * use the files from SRC_URI instead of fetching them during configure * use the firmware files CMake would download during configure when not provided already, I haven't found any changelog to find out what's the difference between firmware_ma2x8x_784.zip firmware_ma2x8x_mdk_R9.8.zip firmware_ma2450_759W.zip firmware_ma2450_784.zip firmware_mv0262_784.zip firmware_mv0262_mdk_R9.8.zip so to be safe use whatever CMake does and what I was testing on raspberrypi4 before (because of missing this fix). -- Downloading from https://download.01.org/opencv/2019/openvinotoolkit/R3/inference_engine/firmware_ma2450_759W.zip to dldt-inference-engine/2019r3-r0/git/inference-engine/temp/download/firmware_ma2450_759W.zip ... -- Downloading from https://download.01.org/opencv/2019/openvinotoolkit/R3/inference_engine/firmware_ma2x8x_mdk_R9.8.zip to dldt-inference-engine/2019r3-r0/git/inference-engine/temp/download/firmware_ma2x8x_mdk_R9.8.zip ... -- Downloading from https://download.01.org/opencv/2019/openvinotoolkit/R3/inference_engine/firmware_mv0262_mdk_R9.8.zip to dldt-inference-engine/2019r3-r0/git/inference-engine/temp/download/firmware_mv0262_mdk_R9.8.zip ... * add PACKAGECONFIG verbose for VERBOSE_BUILD so it's easier to debug which firmware files are being used, in this case: log.do_configure will show: -- ma2450=../mvnc/MvNCAPI-ma2450.mvcmd -- ma2x8x=../mvnc/MvNCAPI-ma2x8x.mvcmd -- mv0262=../mvnc/MvNCAPI-mv0262.mvcmd * the patch is very loosely based on the patch removed here: http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/diff/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0003-Supply-firmware-at-build-time.patch?id=649456856dc38086e7d43d740d68198e3395b067 but I've reworked it competely to simplify this mess :) Signed-off-by: Martin Jansa Signed-off-by: Anuj Mittal --- ...008-Simplify-searching-for-firmware-files.patch | 104 +++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 dynamic-layers/openembedded-layer/recipes-support/opencv/files/0008-Simplify-searching-for-firmware-files.patch (limited to 'dynamic-layers/openembedded-layer/recipes-support/opencv/files') diff --git a/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0008-Simplify-searching-for-firmware-files.patch b/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0008-Simplify-searching-for-firmware-files.patch new file mode 100644 index 00000000..a4c75ff3 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0008-Simplify-searching-for-firmware-files.patch @@ -0,0 +1,104 @@ +From 1f6f05ae4d3fba95ccc34a4622d06b9d2bf88e80 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Fri, 27 Sep 2019 11:34:36 +0800 +Subject: [PATCH] Simplify searching for firmware files + +Disable runtime fetching when VPU_FIRMWARE_*_FILE variables are defined +and point to already fetched firmware instead. + +Do it all in one foreach loop. + +Upstream-Status: Submitted [https://github.com/opencv/dldt/pull/302] + +Signed-off-by: Martin Jansa +--- + inference-engine/cmake/vpu_dependencies.cmake | 63 ++++++------------- + 1 file changed, 20 insertions(+), 43 deletions(-) + +diff --git a/inference-engine/cmake/vpu_dependencies.cmake b/inference-engine/cmake/vpu_dependencies.cmake +index 1550163d..e0bc844e 100644 +--- a/inference-engine/cmake/vpu_dependencies.cmake ++++ b/inference-engine/cmake/vpu_dependencies.cmake +@@ -4,52 +4,29 @@ + + set(VPU_SUPPORTED_SOC ma2450 ma2x8x mv0262) + +-# +-# Default firmware packages +-# +- +-RESOLVE_DEPENDENCY(VPU_FIRMWARE_MA2450 +- ARCHIVE_UNIFIED firmware_ma2450_759W.zip +- TARGET_PATH "${TEMP}/vpu/firmware/ma2450" +- ENVIRONMENT "VPU_FIRMWARE_MA2450" +- FOLDER) +-debug_message(STATUS "ma2450=" ${VPU_FIRMWARE_MA2450}) +- +-RESOLVE_DEPENDENCY(VPU_FIRMWARE_MV0262 +- ARCHIVE_UNIFIED firmware_mv0262_mdk_R9.8.zip +- TARGET_PATH "${TEMP}/vpu/firmware/mv0262" +- ENVIRONMENT "VPU_FIRMWARE_MV0262" +- FOLDER) +-debug_message(STATUS "mv0262=" ${VPU_FIRMWARE_MV0262}) +- +-RESOLVE_DEPENDENCY(VPU_FIRMWARE_MA2X8X +- ARCHIVE_UNIFIED firmware_ma2x8x_mdk_R9.8.zip +- TARGET_PATH "${TEMP}/vpu/firmware/ma2x8x" +- ENVIRONMENT "VPU_FIRMWARE_MA2X8X" +- FOLDER) +-debug_message(STATUS "ma2x8x=" ${VPU_FIRMWARE_MA2X8X}) +- +-# +-# CMake variables to override default firmware files +-# +- + foreach(soc IN LISTS VPU_SUPPORTED_SOC) + string(TOUPPER "${soc}" soc_upper) +- set(var_name VPU_FIRMWARE_${soc_upper}_FILE) ++ set(var_name_file VPU_FIRMWARE_${soc_upper}_FILE) ++ set(var_name VPU_FIRMWARE_${soc_upper}) ++ set(var_name_zip firmware_${soc}_mdk_R9.8.zip) ++ if(${soc} STREQUAL "ma2450") ++ set(var_name_zip firmware_${soc}_759W.zip) ++ endif() + +- find_file(${var_name} MvNCAPI-${soc}.mvcmd "${VPU_FIRMWARE_${soc_upper}}/mvnc") +- if(NOT ${var_name}) +- message(FATAL_ERROR "[VPU] Missing ${soc} firmware") ++ if(NOT DEFINED ${var_name_file}) ++ RESOLVE_DEPENDENCY(${var_name} ++ ARCHIVE_UNIFIED ${var_name_zip} ++ TARGET_PATH "${TEMP}/vpu/firmware/${soc}" ++ ENVIRONMENT "${var_name}" ++ FOLDER) ++ find_file(${var_name_file} NAMES "MvNCAPI-${soc}.mvcmd" PATHS "${VPU_FIRMWARE_${soc_upper}}/mvnc" NO_CMAKE_FIND_ROOT_PATH) + endif() +-endforeach() + +-# +-# `vpu_copy_firmware` CMake target +-# ++ if(NOT ${var_name_file}) ++ message(FATAL_ERROR "[VPU] Missing ${soc} firmware, MvNCAPI-${soc}.mvcmd not found in ${VPU_FIRMWARE_${soc_upper}}/mvnc env $ENV{${var_name}} ") ++ endif() + +-foreach(soc IN LISTS VPU_SUPPORTED_SOC) +- string(TOUPPER "${soc}" soc_upper) +- set(var_name VPU_FIRMWARE_${soc_upper}_FILE) ++ debug_message(STATUS "${soc}=" ${${var_name_file}}) + + set(firmware_out_file "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/MvNCAPI-${soc}.mvcmd") + list(APPEND all_firmware_files ${firmware_out_file}) +@@ -57,9 +34,9 @@ foreach(soc IN LISTS VPU_SUPPORTED_SOC) + add_custom_command( + OUTPUT ${firmware_out_file} + COMMAND +- ${CMAKE_COMMAND} -E copy ${${var_name}} ${firmware_out_file} +- MAIN_DEPENDENCY ${${var_name}} +- COMMENT "[VPU] Copy ${${var_name}} to ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" ++ ${CMAKE_COMMAND} -E copy ${${var_name_file}} ${firmware_out_file} ++ MAIN_DEPENDENCY ${${var_name_file}} ++ COMMENT "[VPU] Copy ${${var_name_file}} to ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" + VERBATIM) + endforeach() + -- cgit v1.2.3-54-g00ecf