vpu/jpu: support automatic building and loading VPU/JPU ko driver

install the vdec.ko, venc.ko, jpu.ko to /lib/modules/5.15.0/extra/
and remove the loading script, support insmod,modprobe,rmmod

Signed-off-by: Andy Hu <andy.hu@starfivetech.com>
This commit is contained in:
Andy Hu
2022-10-25 09:52:35 +08:00
parent dc98f12584
commit a1c0a0708e
3 changed files with 9 additions and 31 deletions
+3 -11
View File
@@ -3,7 +3,6 @@
# codaj12
#
################################################################################
# CODAJ12_VERSION:=1.0.0
CODAJ12_SITE=$(TOPDIR)/../soft_3rdpart/codaj12
CODAJ12_SITE_METHOD=local
@@ -13,7 +12,6 @@ export KERNELDIR=$(TOPDIR)/../work/linux
define CODAJ12_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -f $(@D)/codaj12_buildroot.mak
# $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -f $(@D)/codaj12Driver_buildroot.mak
endef
define CODAJ12_CLEAN_CMDS
@@ -21,13 +19,9 @@ define CODAJ12_CLEAN_CMDS
endef
define CODAJ12_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0777 $(@D)/jdi/linux/driver/load.sh $(TARGET_DIR)/root/codaj12/load.sh
$(INSTALL) -D -m 0777 $(@D)/jdi/linux/driver/unload.sh $(TARGET_DIR)/root/codaj12/unload.sh
$(INSTALL) -D -m 0644 $(@D)/libcodadec.so $(TARGET_DIR)/usr/lib/libcodadec.so
# $(INSTALL) -D -m 0644 $(@D)/jdi/linux/driver/jpu.ko $(TARGET_DIR)/root/codaj12/jpu.ko
endef
define CODAJ12_INSTALL_STAGING_CMDS
mkdir -p $(STAGING_DIR)/usr/include/codaj12
$(INSTALL) -D -m 0644 $(@D)/jpuapi/jpuapi.h $(STAGING_DIR)/usr/include/codaj12/jpuapi/jpuapi.h
@@ -51,16 +45,14 @@ define CODAJ12_INSTALL_STAGING_CMDS
endef
define CODAJ12_UNINSTALL_TARGET_CMDS
rm -rf $(TARGET_DIR)/root/codaj12/jpu.ko
rm -rf $(TARGET_DIR)/root/codaj12/load.sh
rm -rf $(TARGET_DIR)/root/codaj12/unload.sh
endef
codaj12_WORK_DIR := $(TARGET_DIR)/../build/codaj12
codaj12driver:
ifneq ($(wildcard $(codaj12_WORK_DIR)/codaj12Driver_buildroot.mak),)
$(TARGET_MAKE_ENV) $(MAKE) -C $(codaj12_WORK_DIR) -f $(codaj12_WORK_DIR)/codaj12Driver_buildroot.mak
$(INSTALL) -D -m 0644 $(codaj12_WORK_DIR)/jdi/linux/driver/jpu.ko $(TARGET_DIR)/root/codaj12/jpu.ko
$(TARGET_MAKE_ENV) INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) \
$(MAKE) -C $(codaj12_WORK_DIR) -f $(codaj12_WORK_DIR)/codaj12Driver_buildroot.mak
endif
$(eval $(generic-package))
+3 -9
View File
@@ -3,7 +3,6 @@
# WAVE420L
#
################################################################################
WAVE420L_VERSION:=1.0.0
WAVE420L_SITE=$(TOPDIR)/../soft_3rdpart/wave420l/code
WAVE420L_SITE_METHOD=local
@@ -13,7 +12,6 @@ export KERNELDIR=$(TOPDIR)/../work/linux
define WAVE420L_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -f $(@D)/WaveEncoder_buildroot.mak
# $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -f $(@D)/WaveEncDriver_buildroot.mak
endef
define WAVE420L_CLEAN_CMDS
@@ -21,8 +19,6 @@ define WAVE420L_CLEAN_CMDS
endef
define WAVE420L_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0777 $(@D)/vdi/linux/driver/load.sh $(TARGET_DIR)/root/wave420l/venc_load.sh
$(INSTALL) -D -m 0777 $(@D)/vdi/linux/driver/unload.sh $(TARGET_DIR)/root/wave420l/venc_unload.sh
$(INSTALL) -D -m 0644 $(@D)/libsfenc.so $(TARGET_DIR)/usr/lib/libsfenc.so
$(INSTALL) -D -m 0644 $(WAVE420L_SITE)/../firmware/monet.bin $(TARGET_DIR)/lib/firmware/monet.bin
$(INSTALL) -D -m 0644 $(@D)/cfg/encoder_defconfig.cfg $(TARGET_DIR)/lib/firmware/encoder_defconfig.cfg
@@ -67,16 +63,14 @@ define WAVE420L_INSTALL_STAGING_CMDS
endef
define WAVE420L_UNINSTALL_TARGET_CMDS
rm -rf $(TARGET_DIR)/root/venc.ko
rm -rf $(TARGET_DIR)/root/venc_load.sh
rm -rf $(TARGET_DIR)/root/venc_unload.sh
endef
WAVE420L_WORK_DIR := $(TARGET_DIR)/../build/wave420l-$(WAVE420L_VERSION)
wave420ldriver:
ifneq ($(wildcard $(WAVE420L_WORK_DIR)/WaveEncDriver_buildroot.mak),)
$(TARGET_MAKE_ENV) $(MAKE) -C $(WAVE420L_WORK_DIR) -f $(WAVE420L_WORK_DIR)/WaveEncDriver_buildroot.mak
$(INSTALL) -D -m 0644 $(WAVE420L_WORK_DIR)/vdi/linux/driver/venc.ko $(TARGET_DIR)/root/wave420l/venc.ko
$(TARGET_MAKE_ENV) INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) \
$(MAKE) -C $(WAVE420L_WORK_DIR) -f $(WAVE420L_WORK_DIR)/WaveEncDriver_buildroot.mak
endif
$(eval $(generic-package))
+3 -11
View File
@@ -3,8 +3,6 @@
# wave511
#
################################################################################
WAVE511_SITE=$(TOPDIR)/../soft_3rdpart/wave511/code
WAVE511_SITE_METHOD=local
WAVE511_INSTALL_STAGING = YES
@@ -13,7 +11,6 @@ export KERNELDIR=$(TOPDIR)/../work/linux
define WAVE511_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -f $(@D)/WaveDecode_buildroot.mak
# $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -f $(@D)/WaveDecDriver_buildroot.mak
endef
define WAVE511_CLEAN_CMDS
@@ -21,13 +18,10 @@ define WAVE511_CLEAN_CMDS
endef
define WAVE511_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0777 $(@D)/vdi/linux/driver/load.sh $(TARGET_DIR)/root/wave511/vdec_load.sh
$(INSTALL) -D -m 0777 $(@D)/vdi/linux/driver/unload.sh $(TARGET_DIR)/root/wave511/vdec_unload.sh
$(INSTALL) -D -m 0644 $(@D)/libsfdec.so $(TARGET_DIR)/usr/lib/libsfdec.so
$(INSTALL) -D -m 0644 $(WAVE511_SITE)/../firmware/chagall.bin $(TARGET_DIR)/lib/firmware/chagall.bin
endef
define WAVE511_INSTALL_STAGING_CMDS
mkdir -p $(STAGING_DIR)/usr/include/wave511
$(INSTALL) -D -m 0644 $(@D)/sample_v2/component_list_decoder.h $(STAGING_DIR)/usr/include/wave511/sample_v2/component_list_decoder.h
@@ -65,16 +59,14 @@ define WAVE511_INSTALL_STAGING_CMDS
endef
define WAVE511_UNINSTALL_TARGET_CMDS
rm -rf $(TARGET_DIR)/root/vdec.ko
rm -rf $(TARGET_DIR)/root/vdec_load.sh
rm -rf $(TARGET_DIR)/root/vdec_unload.sh
endef
wave511_WORK_DIR := $(TARGET_DIR)/../build/wave511
wave511driver:
ifneq ($(wildcard $(wave511_WORK_DIR)/WaveDecDriver_buildroot.mak),)
$(TARGET_MAKE_ENV) $(MAKE) -C $(wave511_WORK_DIR) -f $(wave511_WORK_DIR)/WaveDecDriver_buildroot.mak
$(INSTALL) -D -m 0644 $(wave511_WORK_DIR)/vdi/linux/driver/vdec.ko $(TARGET_DIR)/root/wave511/vdec.ko
$(TARGET_MAKE_ENV) INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) \
$(MAKE) -C $(wave511_WORK_DIR) -f $(wave511_WORK_DIR)/WaveDecDriver_buildroot.mak
endif
$(eval $(generic-package))