istoreos/package/kernel/rockchip-drivers/Makefile
2025-09-17 19:42:58 +08:00

207 lines
5.0 KiB
Makefile

include $(TOPDIR)/rules.mk
PKG_NAME:=rockchip-drivers
PKG_VERSION:=24.11.2
PKG_RELEASE:=2
PKG_HASH:=92a837b8ea38adbd32f2879561322f247fa6606e3d0abe4dd73eb738200a1897
PKG_SOURCE_URL_FILE:=v$(PKG_VERSION).tar.gz
PKG_SOURCE:=rockchip-drivers-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/jjm2473/rockchip-drivers/archive/refs/tags/
PKG_BUILD_PARALLEL:=1
PKG_EXTMOD_SUBDIRS:=drivers
PKG_MAINTAINER:=jjm2473 <jjm2473@gmail.com>
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
TAR_OPTIONS+= --strip-components 1
TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
define KernelPackage/rockchip-sip
TITLE:=Rockchip SIP interface
HIDDEN:=1
FILES:= \
$(PKG_BUILD_DIR)/drivers/firmware/rockchip_sip.ko
endef
define KernelPackage/rockchip-pvtm
TITLE:=Rockchip PVTM support
HIDDEN:=1
FILES:= \
$(PKG_BUILD_DIR)/drivers/soc/rockchip/rockchip_pvtm.ko
AUTOLOAD:=$(call AutoLoad,79,rockchip_pvtm)
endef
define KernelPackage/rockchip-opp-select
TITLE:=Rockchip OPP select support
HIDDEN:=1
DEPENDS:=+kmod-rockchip-pvtm +kmod-rockchip-sip
KCONFIG:=CONFIG_PM_DEVFREQ=y
FILES:= \
$(PKG_BUILD_DIR)/drivers/soc/rockchip/rockchip_opp_select.ko
endef
define KernelPackage/rockchip-system-monitor
TITLE:=Rockchip system monitor support
DEPENDS:=+kmod-rockchip-opp-select
HIDDEN:=1
FILES:= \
$(PKG_BUILD_DIR)/drivers/soc/rockchip/rockchip_system_monitor.ko
AUTOLOAD:=$(call AutoLoad,78,rockchip_system_monitor)
endef
# rockchip-ipa is only for linux before 6.1.0
define KernelPackage/rockchip-ipa
TITLE:=Rockchip IPA support
DEPENDS:=+kmod-rockchip-opp-select
HIDDEN:=1
FILES:= \
$(PKG_BUILD_DIR)/drivers/soc/rockchip/rockchip_ipa.ko
endef
define KernelPackage/rga2
SUBMENU:=Video Support
TITLE:=RK RGA2
DEPENDS:=@TARGET_rockchip
FILES:= \
$(PKG_BUILD_DIR)/drivers/video/rockchip/rga2/rga2.ko
AUTOLOAD:=$(call AutoProbe,rga2)
endef
define KernelPackage/rga2/description
RGA2
endef
define KernelPackage/rga3
SUBMENU:=Video Support
TITLE:=RK MULTI_RGA (RGA3)
DEPENDS:=@TARGET_rockchip
KCONFIG:=CONFIG_SYNC_FILE=y
FILES:= \
$(PKG_BUILD_DIR)/drivers/video/rockchip/rga3/rga3.ko
AUTOLOAD:=$(call AutoProbe,rga3)
endef
define KernelPackage/rga3/description
RGA3
endef
define KernelPackage/rk_vcodec
SUBMENU:=Video Support
TITLE:=RK mpp service framework (rk_vcodec)
DEPENDS:=@TARGET_rockchip +kmod-rockchip-system-monitor
FILES:= \
$(PKG_BUILD_DIR)/drivers/video/rockchip/mpp/rk_vcodec.ko
AUTOLOAD:=$(call AutoProbe,rk_vcodec)
endef
define KernelPackage/rk_vcodec/description
RKMPP
endef
define KernelPackage/rknpu
SUBMENU:=Other modules
TITLE:=Rockchip RKNPU driver
DEPENDS:=@TARGET_rockchip +kmod-drm +kmod-rockchip-system-monitor
KCONFIG:=CONFIG_SYNC_FILE=y
FILES:= \
$(PKG_BUILD_DIR)/drivers/rknpu/rknpu.ko
AUTOLOAD:=$(call AutoProbe,rknpu)
endef
define KernelPackage/rknpu/description
Support Rockchip RKNPU
endef
define KernelPackage/rknpu/install
$(INSTALL_DIR) $(1)/etc/modules-pending.d
$(LN) ../modules.d/$(filter-out 0-,$(word 1,$(AUTOLOAD))-)$$(NAME) $(1)/etc/modules-pending.d/$$(NAME)
endef
config-y:= CPU_RK3568 \
CPU_RK3588 \
CPU_RK3528 \
CPU_RK3576 \
CPU_RK3562 \
CPU_RK3368
config-m:= ROCKCHIP_PVTM \
ROCKCHIP_IPA \
ROCKCHIP_SIP \
ROCKCHIP_SYSTEM_MONITOR \
ROCKCHIP_OPP
ifdef CONFIG_PACKAGE_kmod-rga2
config-m += ROCKCHIP_RGA2
config-y += ROCKCHIP_RGA2_PROC_FS \
ROCKCHIP_RGA2_DEBUG_FS \
ROCKCHIP_RGA2_DEBUGGER
endif
ifdef CONFIG_PACKAGE_kmod-rga3
config-m += ROCKCHIP_MULTI_RGA
config-y += ROCKCHIP_RGA_ASYNC \
ROCKCHIP_RGA_PROC_FS \
ROCKCHIP_RGA_DEBUG_FS \
ROCKCHIP_RGA_DEBUGGER
endif
ifdef CONFIG_PACKAGE_kmod-rk_vcodec
config-m += ROCKCHIP_MPP_SERVICE
config-y += \
ROCKCHIP_MPP_PROC_FS \
ROCKCHIP_MPP_RKVDEC \
ROCKCHIP_MPP_RKVDEC2 \
ROCKCHIP_MPP_RKVENC \
ROCKCHIP_MPP_RKVENC2 \
ROCKCHIP_MPP_VDPU1 \
ROCKCHIP_MPP_VEPU1 \
ROCKCHIP_MPP_VDPU2 \
ROCKCHIP_MPP_VEPU2 \
ROCKCHIP_MPP_IEP2 \
ROCKCHIP_MPP_JPGDEC \
ROCKCHIP_MPP_JPGENC \
ROCKCHIP_MPP_AV1DEC \
ROCKCHIP_MPP_VDPP
endif
ifdef CONFIG_PACKAGE_kmod-rknpu
config-m += ROCKCHIP_RKNPU
config-y += \
ROCKCHIP_RKNPU_DEBUG_FS \
ROCKCHIP_RKNPU_PROC_FS \
ROCKCHIP_RKNPU_DRM_GEM \
ROCKCHIP_RKNPU_FENCE
endif
EXTRA_CFLAGS:=-I$(PKG_BUILD_DIR)/include -DBUILD_OPENWRT
EXTRA_CFLAGS+=$(foreach opt,$(config-y),-DCONFIG_$(opt)=1)
PKG_MAKE_FLAGS+=$(foreach opt,$(config-y),CONFIG_$(opt)=y)
EXTRA_CFLAGS+=$(foreach opt,$(config-m),-DCONFIG_$(opt)_MODULE=1)
PKG_MAKE_FLAGS+=$(foreach opt,$(config-m),CONFIG_$(opt)=m)
define Build/Compile
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
$(PKG_MAKE_FLAGS) \
M="$(PKG_BUILD_DIR)/drivers" \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
modules
endef
$(eval $(call KernelPackage,rockchip-sip))
$(eval $(call KernelPackage,rockchip-ipa))
$(eval $(call KernelPackage,rockchip-pvtm))
$(eval $(call KernelPackage,rockchip-opp-select))
$(eval $(call KernelPackage,rockchip-system-monitor))
$(eval $(call KernelPackage,rga2))
$(eval $(call KernelPackage,rga3))
$(eval $(call KernelPackage,rk_vcodec))
$(eval $(call KernelPackage,rknpu))