Android.mk 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. # Android makefile for securemsm kernel modules
  2. ENABLE_SECUREMSM_DLKM := true
  3. ENABLE_SECUREMSM_QTEE_DLKM := true
  4. ifeq ($(TARGET_KERNEL_DLKM_DISABLE), true)
  5. ifeq ($(TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE),false)
  6. ENABLE_SECUREMSM_DLKM := false
  7. endif
  8. ifeq ($(TARGET_KERNEL_DLKM_SECUREMSM_QTEE_OVERRIDE),false)
  9. ENABLE_SECUREMSM_QTEE_DLKM := false
  10. endif
  11. endif
  12. ifeq ($(ENABLE_SECUREMSM_DLKM), true)
  13. ENABLE_QCRYPTO_DLKM := true
  14. ENABLE_HDCP_QSEECOM_DLKM := true
  15. ENABLE_QRNG_DLKM := true
  16. ifeq ($(TARGET_USES_SMMU_PROXY), true)
  17. ENABLE_SMMU_PROXY := true
  18. endif #TARGET_USES_SMMU_PROXY
  19. endif #ENABLE_SECUREMSM_DLKM
  20. ifeq ($(ENABLE_SECUREMSM_QTEE_DLKM), true)
  21. ENABLE_SMCINVOKE_DLKM := true
  22. ENABLE_TZLOG_DLKM := true
  23. #Enable Qseecom if TARGET_ENABLE_QSEECOM or TARGET_BOARD_AUTO is set to true
  24. ifneq (, $(filter true, $(TARGET_ENABLE_QSEECOM) $(TARGET_BOARD_AUTO)))
  25. ENABLE_QSEECOM_DLKM := true
  26. endif #TARGET_ENABLE_QSEECOM OR TARGET_BOARD_AUTO
  27. endif #ENABLE_SECUREMSM_QTEE_DLKM
  28. ifeq ($(TARGET_USES_GY), true)
  29. ENABLE_QCRYPTO_DLKM := false
  30. ENABLE_HDCP_QSEECOM_DLKM := false
  31. ENABLE_QRNG_DLKM := false
  32. ENABLE_SMMU_PROXY := false
  33. ENABLE_SMCINVOKE_DLKM := true
  34. ENABLE_TZLOG_DLKM := false
  35. ENABLE_QSEECOM_DLKM := false
  36. endif #TARGET_USES_GY
  37. LOCAL_PATH := $(call my-dir)
  38. VENDOR_OPENSOURCE_DIR ?= vendor/qcom/opensource
  39. VENDOR_COMMON_DIR ?= device/qcom/common
  40. DLKM_DIR := $(TOP)/$(VENDOR_COMMON_DIR)/dlkm
  41. SEC_KERNEL_DIR := $(TOP)/$(VENDOR_OPENSOURCE_DIR)/securemsm-kernel
  42. LOCAL_EXPORT_KO_INCLUDE_DIRS := $(LOCAL_PATH)/include/ \
  43. $(LOCAL_PATH)/include/uapi
  44. SSG_SRC_FILES := \
  45. $(wildcard $(LOCAL_PATH)/*) \
  46. $(wildcard $(LOCAL_PATH)/*/*) \
  47. $(wildcard $(LOCAL_PATH)/*/*/*) \
  48. $(wildcard $(LOCAL_PATH)/*/*/*/*)
  49. LOCAL_MODULE_DDK_BUILD := true
  50. # This is set once per LOCAL_PATH, not per (kernel) module
  51. KBUILD_OPTIONS := SSG_ROOT=$(SEC_KERNEL_DIR)
  52. KBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM)
  53. CONDITIONAL_FLAGS := $(ENABLE_SECUREMSM_QTEE_DLKM) $(ENABLE_SECUREMSM_DLKM)
  54. ifneq (0, $(words $(filter true, $(CONDITIONAL_FLAGS))))
  55. include $(CLEAR_VARS)
  56. # For incremental compilation
  57. LOCAL_SRC_FILES := $(SSG_SRC_FILES)
  58. LOCAL_MODULE := sec-module-symvers
  59. LOCAL_MODULE_STEM := Module.symvers
  60. LOCAL_MODULE_KBUILD_NAME := Module.symvers
  61. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  62. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  63. endif
  64. ifeq ($(ENABLE_SMCINVOKE_DLKM), true)
  65. include $(CLEAR_VARS)
  66. #LOCAL_SRC_FILES := $(SSG_SRC_FILES)
  67. LOCAL_MODULE := smcinvoke_dlkm.ko
  68. LOCAL_MODULE_KBUILD_NAME := smcinvoke_dlkm.ko
  69. LOCAL_MODULE_TAGS := optional
  70. LOCAL_MODULE_DEBUG_ENABLE := true
  71. LOCAL_HEADER_LIBRARIES := smcinvoke_kernel_headers
  72. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  73. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  74. endif #ENABLE_SMCINVOKE_DLKM
  75. ###################################################
  76. ###################################################
  77. ifeq ($(ENABLE_TZLOG_DLKM), true)
  78. include $(CLEAR_VARS)
  79. LOCAL_SRC_FILES := $(SSG_SRC_FILES)
  80. LOCAL_MODULE := tz_log_dlkm.ko
  81. LOCAL_MODULE_KBUILD_NAME := tz_log_dlkm.ko
  82. LOCAL_MODULE_TAGS := optional
  83. LOCAL_MODULE_DEBUG_ENABLE := true
  84. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  85. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  86. endif #ENABLE_TZLOG_DLKM
  87. ifeq ($(ENABLE_QSEECOM_DLKM), true)
  88. include $(CLEAR_VARS)
  89. LOCAL_SRC_FILES := $(SSG_SRC_FILES)
  90. LOCAL_MODULE := qseecom_dlkm.ko
  91. LOCAL_MODULE_KBUILD_NAME := qseecom_dlkm.ko
  92. LOCAL_MODULE_TAGS := optional
  93. LOCAL_MODULE_DEBUG_ENABLE := true
  94. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  95. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  96. endif #ENABLE_QSEECOM_DLKM
  97. ###################################################
  98. ###################################################
  99. ifeq ($(ENABLE_QCRYPTO_DLKM), true)
  100. include $(CLEAR_VARS)
  101. LOCAL_SRC_FILES := $(SSG_SRC_FILES)
  102. LOCAL_MODULE := qce50_dlkm.ko
  103. LOCAL_MODULE_KBUILD_NAME := qce50_dlkm.ko
  104. LOCAL_MODULE_TAGS := optional
  105. LOCAL_MODULE_DEBUG_ENABLE := true
  106. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  107. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  108. ###################################################
  109. ###################################################
  110. include $(CLEAR_VARS)
  111. LOCAL_SRC_FILES := $(SSG_SRC_FILES)
  112. LOCAL_MODULE := qcedev-mod_dlkm.ko
  113. LOCAL_MODULE_KBUILD_NAME := qcedev-mod_dlkm.ko
  114. LOCAL_MODULE_TAGS := optional
  115. LOCAL_MODULE_DEBUG_ENABLE := true
  116. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  117. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  118. ###################################################
  119. ###################################################
  120. include $(CLEAR_VARS)
  121. LOCAL_SRC_FILES := $(SSG_SRC_FILES)
  122. LOCAL_MODULE := qcrypto-msm_dlkm.ko
  123. LOCAL_MODULE_KBUILD_NAME := qcrypto-msm_dlkm.ko
  124. LOCAL_MODULE_TAGS := optional
  125. LOCAL_MODULE_DEBUG_ENABLE := true
  126. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  127. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  128. endif #ENABLE_QCRYPTO_DLKM
  129. ###################################################
  130. ###################################################
  131. ifeq ($(ENABLE_HDCP_QSEECOM_DLKM), true)
  132. include $(CLEAR_VARS)
  133. LOCAL_SRC_FILES := $(SSG_SRC_FILES)
  134. LOCAL_MODULE := hdcp_qseecom_dlkm.ko
  135. LOCAL_MODULE_KBUILD_NAME := hdcp_qseecom_dlkm.ko
  136. LOCAL_MODULE_TAGS := optional
  137. LOCAL_MODULE_DEBUG_ENABLE := true
  138. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  139. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  140. endif #ENABLE_HDCP_QSEECOM_DLKM
  141. ###################################################
  142. ###################################################
  143. ifeq ($(ENABLE_QRNG_DLKM), true)
  144. include $(CLEAR_VARS)
  145. LOCAL_SRC_FILES := $(SSG_SRC_FILES)
  146. LOCAL_MODULE := qrng_dlkm.ko
  147. LOCAL_MODULE_KBUILD_NAME := qrng_dlkm.ko
  148. LOCAL_MODULE_TAGS := optional
  149. LOCAL_MODULE_DEBUG_ENABLE := true
  150. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  151. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  152. endif #ENABLE_QRNG_DLKM
  153. ###################################################
  154. ###################################################
  155. ifeq ($(ENABLE_SMMU_PROXY), true)
  156. include $(CLEAR_VARS)
  157. #LOCAL_SRC_FILES := $(SSG_SRC_FILES)
  158. LOCAL_EXPORT_KO_INCLUDE_DIRS := $(LOCAL_PATH)/smmu-proxy/ $(LOCAL_PATH)/
  159. LOCAL_MODULE := smmu_proxy_dlkm.ko
  160. LOCAL_MODULE_KBUILD_NAME := smmu_proxy_dlkm.ko
  161. LOCAL_MODULE_TAGS := optional
  162. LOCAL_MODULE_DEBUG_ENABLE := true
  163. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  164. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  165. endif #ENABLE_SMMU_PROXY