summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Koskovich <akoskovich@pm.me>2022-09-21 14:41:15 -0700
committeralk3pInjection <webmaster@raspii.tech>2023-07-15 00:23:20 +0800
commit7ca2c306789fdf1ac23700c9708ec65ca1ec6f1e (patch)
treedee4ae7d9be80fd4bbf6181fccc85b09609dbbce
parent3b4f5e36d56d81db63fba870d405bf5596631e2a (diff)
common: Create DLKM component for 5.10+
Squashed with the following commit: Author: Anay Wadhera <anay1018@gmail.com> Date: Fri Dec 16 16:10:28 2022 -0500 Specify TARGET_PREBUILT_KERNEL for kernel-platform targets Change-Id: Ie5932222d4cf88e774cfccfa815e4e17a2ad827c Change-Id: I48787246fd3a01e6e7ea7acc10e08c9bdac6287e
-rw-r--r--common.mk4
-rw-r--r--dlkm/kernel-platform.mk55
-rw-r--r--dlkm/qti-dlkm.mk45
3 files changed, 104 insertions, 0 deletions
diff --git a/common.mk b/common.mk
index f44db45..279f698 100644
--- a/common.mk
+++ b/common.mk
@@ -68,6 +68,10 @@ ifneq (,$(filter display, $(TARGET_COMMON_QTI_COMPONENTS)))
include $(LOCAL_PATH)/display/qti-display.mk
endif
+ifneq (,$(filter 5.10 5.15, $(TARGET_KERNEL_VERSION)))
+include $(LOCAL_PATH)/dlkm/qti-dlkm.mk
+endif
+
ifneq (,$(filter gps, $(TARGET_COMMON_QTI_COMPONENTS)))
include $(LOCAL_PATH)/gps/qti-gps.mk
endif
diff --git a/dlkm/kernel-platform.mk b/dlkm/kernel-platform.mk
new file mode 100644
index 0000000..2eacbde
--- /dev/null
+++ b/dlkm/kernel-platform.mk
@@ -0,0 +1,55 @@
+#
+# Copyright (C) 2022 Paranoid Android
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+TARGET_USES_KERNEL_PLATFORM ?= true
+
+KERNEL_PREBUILT_DIR ?= device/qcom/$(TARGET_BOARD_PLATFORM)-kernel
+KERNEL_PRODUCT_DIR := kernel_obj
+KERNEL_MODULES_INSTALL := dlkm
+KERNEL_MODULES_OUT ?= $(OUT_DIR)/target/product/$(ICE_BUILD)/$(KERNEL_MODULES_INSTALL)/lib/modules
+
+ifeq ($(TARGET_USES_KERNEL_PLATFORM),true)
+
+ifeq ($(wildcard $(KERNEL_PREBUILT_DIR)/),)
+$(warning $(KERNEL_PREBUILT_DIR) does not exist, have you compiled kernel?)
+endif
+
+# DLKM
+define get-kernel-modules
+$(if $(wildcard $(KERNEL_PREBUILT_DIR)/$(1)/modules.load), \
+ $(addprefix $(KERNEL_PREBUILT_DIR)/$(1)/,$(notdir $(file < $(KERNEL_PREBUILT_DIR)/$(1)/modules.load))), \
+ $(wildcard $(KERNEL_PREBUILT_DIR)/$(1)/*.ko))
+endef
+
+prepend-kernel-modules = $(eval $1 := $2 $(filter-out $2,$($1)))
+
+first_stage_modules := $(call get-kernel-modules,.)
+second_stage_modules := $(call get-kernel-modules,vendor_dlkm)
+
+$(call prepend-kernel-modules,BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD,$(first_stage_modules))
+$(call prepend-kernel-modules,BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD,$(first_stage_modules) $(second_stage_modules))
+$(call prepend-kernel-modules,BOARD_VENDOR_KERNEL_MODULES,$(second_stage_modules))
+
+BOARD_VENDOR_RAMDISK_KERNEL_MODULES_BLOCKLIST_FILE := $(wildcard $(KERNEL_PREBUILT_DIR)/vendor_dlkm/modules.blocklist)
+BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(wildcard $(KERNEL_PREBUILT_DIR)/vendor_dlkm/modules.blocklist)
+
+BOARD_VENDOR_RAMDISK_KERNEL_MODULES += $(first_stage_modules)
+BOARD_VENDOR_RAMDISK_KERNEL_MODULES += $(second_stage_modules)
+
+# DTBs
+BOARD_PREBUILT_DTBOIMAGE := $(KERNEL_PREBUILT_DIR)/dtbs/dtbo.img
+BOARD_PREBUILT_DTBIMAGE_DIR := $(KERNEL_PREBUILT_DIR)/dtbs/
+
+# Kernel headers
+TARGET_BOARD_KERNEL_HEADERS := $(KERNEL_PREBUILT_DIR)/kernel-headers
+
+# Kernel
+TARGET_PREBUILT_KERNEL := $(KERNEL_PREBUILT_DIR)/Image
+PRODUCT_COPY_FILES += \
+ $(KERNEL_PREBUILT_DIR)/Image:kernel \
+ $(KERNEL_PREBUILT_DIR)/System.map:$(KERNEL_PRODUCT_DIR)/System.map
+
+endif
diff --git a/dlkm/qti-dlkm.mk b/dlkm/qti-dlkm.mk
new file mode 100644
index 0000000..260545f
--- /dev/null
+++ b/dlkm/qti-dlkm.mk
@@ -0,0 +1,45 @@
+#
+# Copyright (C) 2022 Paranoid Android
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+include $(LOCAL_PATH)/dlkm/kernel-platform.mk
+
+# Audio
+-include vendor/qcom/opensource/audio-kernel/audio_kernel_product_board.mk
+-include vendor/qcom/opensource/audio-kernel/audio_kernel_vendor_board.mk
+
+# CVP
+-include vendor/qcom/opensource/cvp-kernel/cvp_kernel_board.mk
+-include vendor/qcom/opensource/cvp-kernel/cvp_kernel_product.mk
+
+# Camera
+-include vendor/qcom/opensource/camera-kernel/board.mk
+-include vendor/qcom/opensource/camera-kernel/product.mk
+
+# Dataipa
+-include vendor/qcom/opensource/dataipa/dataipa_dlkm_vendor_board.mk
+-include vendor/qcom/opensource/dataipa/dataipa_dlkm_vendor_product.mk
+
+# Datarmnet
+-include vendor/qcom/opensource/datarmnet/datarmnet_dlkm_vendor_board.mk
+-include vendor/qcom/opensource/datarmnet/datarmnet_dlkm_vendor_product.mk
+-include vendor/qcom/opensource/datarmnet-ext/datarmnet_ext_dlkm_vendor_board.mk
+-include vendor/qcom/opensource/datarmnet-ext/datarmnet_ext_dlkm_vendor_product.mk
+
+# Display
+-include vendor/qcom/opensource/display-drivers/display_driver_board.mk
+-include vendor/qcom/opensource/display-drivers/display_driver_product.mk
+
+# EVA
+-include vendor/qcom/opensource/eva-kernel/eva_kernel_board.mk
+-include vendor/qcom/opensource/eva-kernel/eva_kernel_product.mk
+
+# MMRM
+-include vendor/qcom/opensource/mmrm-driver/mmrm_kernel_board.mk
+-include vendor/qcom/opensource/mmrm-driver/mmrm_kernel_product.mk
+
+# Video
+-include vendor/qcom/opensource/video-driver/video_kernel_board.mk
+-include vendor/qcom/opensource/video-driver/video_kernel_product.mk