1################################################################################ 2# 3# rknpu 4# 5################################################################################ 6RKNPU_VERSION = 1.5.0 7RKNPU_SITE_METHOD = local 8RKNPU_SITE = $(TOPDIR)/../external/rknpu 9NPU_TEST_FILE = $(@D)/test 10RKNPU_INSTALL_STAGING = YES 11 12ifeq ($(BR2_PACKAGE_RKNPU_PCIE),y) 13NPU_KO_FILE = galcore_rk3399pro-npu-pcie.ko 14else ifeq ($(BR2_PACKAGE_RK3399PRO_NPU),y) 15NPU_KO_FILE = galcore_rk3399pro-npu.ko 16else ifeq ($(BR2_PACKAGE_RK1806),y) 17NPU_KO_FILE = galcore_rk1806.ko 18else ifeq ($(BR2_PACKAGE_RV1126_RV1109),y) 19ifeq ($(BR2_PACKAGE_RKNPU_USE_MINI_DRIVER),y) 20NPU_KO_FILE = galcore_puma_tb.ko 21else 22NPU_KO_FILE = galcore_puma.ko 23endif 24else 25NPU_KO_FILE = galcore.ko 26endif 27 28ifeq ($(BR2_arm),y) 29NPU_PLATFORM_ARCH := linux-armhf 30else 31NPU_PLATFORM_ARCH := linux-aarch64 32endif 33 34ifeq ($(BR2_PACKAGE_RV1126_RV1109),y) 35NPU_PLATFORM_ARCH := linux-armhf-puma 36endif 37 38ifeq ($(BR2_PACKAGE_RKNPU_USE_MINI_DRIVER), y) 39NPU_PLATFORM := $(NPU_PLATFORM_ARCH)-mini 40BUILD_NOT_START_RKNN_SCRIPT=y 41else 42NPU_PLATFORM := $(NPU_PLATFORM_ARCH) 43endif 44 45ifeq ($(BR2_PACKAGE_PYTHON_RKNN), y) 46BUILD_PYTHON_RKNN=y 47endif 48 49ifeq ($(BR2_PACKAGE_RKNPU_USE_RKNN_API), y) 50BUILD_RKNN_API=y 51endif 52 53define RKNPU_INSTALL_STAGING_CMDS 54 mkdir -p $(STAGING_DIR)/usr/include/rknn 55 $(INSTALL) -D -m 0644 $(@D)/rknn/include/rknn_runtime.h $(STAGING_DIR)/usr/include/rknn/rknn_runtime.h 56 if [ ${BUILD_RKNN_API} = "y" ]; then \ 57 $(INSTALL) -D -m 0644 $(@D)/rknn/rknn_api/librknn_api/include/rknn_api.h $(STAGING_DIR)/usr/include/rknn/rknn_api.h; \ 58 fi 59endef 60 61define RKNPU_INSTALL_TARGET_CMDS 62 mkdir -p $(TARGET_DIR)/lib/modules/ 63 mkdir -p $(TARGET_DIR)/usr/share/npu/ 64 $(INSTALL) -D -m 0644 $(@D)/drivers/npu_ko/$(NPU_KO_FILE) $(TARGET_DIR)/lib/modules/galcore.ko 65 cp -r $(@D)/drivers/common/* $(TARGET_DIR)/ 66 cp -r $(@D)/drivers/common/* $(STAGING_DIR)/ 67 68 if [ x${BUILD_NOT_START_RKNN_SCRIPT} != x ]; then \ 69 rm $(TARGET_DIR)/etc/init.d/S60NPU_init; \ 70 else \ 71 rm $(TARGET_DIR)/etc/init.d/S05NPU_init; \ 72 fi 73 74 cp -r $(@D)/drivers/$(NPU_PLATFORM)/* $(TARGET_DIR)/ 75 cp -r $(@D)/drivers/$(NPU_PLATFORM)/* $(STAGING_DIR)/ 76 77 if [ -e "$(@D)/test" ]; then \ 78 cp -r $(@D)/test $(TARGET_DIR)/usr/share/npu; \ 79 fi 80 81 if [ x${BUILD_PYTHON_RKNN} != x ]; then \ 82 cp -r $(@D)/rknn/python/rknn $(TARGET_DIR)/usr/lib/python3.6/site-packages/; \ 83 fi 84 85 if [ ${BUILD_RKNN_API} = "y" ]; then \ 86 if [ ${NPU_PLATFORM_ARCH} = "linux-aarch64" ]; then \ 87 $(INSTALL) -D -m 0644 $(@D)/rknn/rknn_api/librknn_api/lib64/librknn_api.so $(TARGET_DIR)/usr/lib/; \ 88 $(INSTALL) -D -m 0644 $(@D)/rknn/rknn_api/librknn_api/lib64/librknn_api.so $(STAGING_DIR)/usr/lib; \ 89 else \ 90 $(INSTALL) -D -m 0644 $(@D)/rknn/rknn_api/librknn_api/lib/librknn_api.so $(TARGET_DIR)/usr/lib/; \ 91 $(INSTALL) -D -m 0644 $(@D)/rknn/rknn_api/librknn_api/lib/librknn_api.so $(STAGING_DIR)/usr/lib; \ 92 fi \ 93 fi 94endef 95 96$(eval $(generic-package)) 97