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