1 # Copyright (C) 2019 Intel Corporation
2 # SPDX-License-Identifier: Apache-2.0
5 set(VPU_SUPPORTED_SOC ma2450 ma2x8x mv0262)
8 # Default firmware packages
11 RESOLVE_DEPENDENCY(VPU_FIRMWARE_MA2450
12 ARCHIVE_UNIFIED firmware_ma2450_759W.zip
13 TARGET_PATH "${TEMP}/vpu/firmware/ma2450"
14 ENVIRONMENT "VPU_FIRMWARE_MA2450"
16 debug_message(STATUS "ma2450=" ${VPU_FIRMWARE_MA2450})
18 RESOLVE_DEPENDENCY(VPU_FIRMWARE_MV0262
19 ARCHIVE_UNIFIED firmware_mv0262_mdk_R9.8.zip
20 TARGET_PATH "${TEMP}/vpu/firmware/mv0262"
21 ENVIRONMENT "VPU_FIRMWARE_MV0262"
23 debug_message(STATUS "mv0262=" ${VPU_FIRMWARE_MV0262})
25 RESOLVE_DEPENDENCY(VPU_FIRMWARE_MA2X8X
26 ARCHIVE_UNIFIED firmware_ma2x8x_mdk_R9.8.zip
27 TARGET_PATH "${TEMP}/vpu/firmware/ma2x8x"
28 ENVIRONMENT "VPU_FIRMWARE_MA2X8X"
30 debug_message(STATUS "ma2x8x=" ${VPU_FIRMWARE_MA2X8X})
33 # CMake variables to override default firmware files
36 foreach(soc IN LISTS VPU_SUPPORTED_SOC)
37 string(TOUPPER "${soc}" soc_upper)
38 set(var_name VPU_FIRMWARE_${soc_upper}_FILE)
40 find_file(${var_name} MvNCAPI-${soc}.mvcmd "${VPU_FIRMWARE_${soc_upper}}/mvnc")
42 message(FATAL_ERROR "[VPU] Missing ${soc} firmware")
47 # `vpu_copy_firmware` CMake target
50 foreach(soc IN LISTS VPU_SUPPORTED_SOC)
51 string(TOUPPER "${soc}" soc_upper)
52 set(var_name VPU_FIRMWARE_${soc_upper}_FILE)
54 set(firmware_out_file "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/MvNCAPI-${soc}.mvcmd")
55 list(APPEND all_firmware_files ${firmware_out_file})
58 OUTPUT ${firmware_out_file}
60 ${CMAKE_COMMAND} -E copy ${${var_name}} ${firmware_out_file}
61 MAIN_DEPENDENCY ${${var_name}}
62 COMMENT "[VPU] Copy ${${var_name}} to ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
66 add_custom_target(vpu_copy_firmware
67 DEPENDS ${all_firmware_files}
68 COMMENT "[VPU] Copy firmware files")