Commit | Line | Data |
---|---|---|
6fa3eb70 S |
1 | # |
2 | # This confidential and proprietary software may be used only as | |
3 | # authorised by a licensing agreement from ARM Limited | |
4 | # (C) COPYRIGHT 2007-2011 ARM Limited | |
5 | # ALL RIGHTS RESERVED | |
6 | # The entire notice above must be reproduced on all authorised | |
7 | # copies and copies may only be made to the extent permitted | |
8 | # by a licensing agreement from ARM Limited. | |
9 | # | |
10 | ||
11 | # This file is called by the Linux build system. | |
12 | ||
13 | # set up defaults if not defined by the user | |
14 | #MTK port custom Kbuild | |
15 | #To Add 1.environment variable | |
16 | include $(src)/Kbuild-mtk-custom-env | |
17 | ||
18 | TIMESTAMP ?= default | |
19 | OS_MEMORY_KERNEL_BUFFER_SIZE_IN_MB ?= 16 | |
20 | USING_GPU_UTILIZATION ?= 1 | |
21 | PROFILING_SKIP_PP_JOBS ?= 0 | |
22 | PROFILING_SKIP_PP_AND_GP_JOBS ?= 0 | |
23 | MALI_PP_SCHEDULER_FORCE_NO_JOB_OVERLAP ?= 0 | |
24 | MALI_PP_SCHEDULER_KEEP_SUB_JOB_STARTS_ALIGNED ?= 0 | |
25 | MALI_PP_SCHEDULER_FORCE_NO_JOB_OVERLAP_BETWEEN_APPS ?= 0 | |
26 | MALI_UPPER_HALF_SCHEDULING ?= 1 | |
27 | MALI_ENABLE_CPU_CYCLES ?= 0 | |
db9a41fa | 28 | |
6fa3eb70 | 29 | DRIVER_DIR=$(src) |
db9a41fa | 30 | |
6fa3eb70 S |
31 | |
32 | # For customer releases the Linux Device Drivers will be provided as ARM proprietary and GPL releases: | |
33 | # The ARM proprietary product will only include the license/proprietary directory | |
34 | # The GPL product will only include the license/gpl directory | |
db9a41fa S |
35 | ccflags-y += -I$(DRIVER_DIR)/linux/license/gpl |
36 | ||
37 | ifeq ($(USING_GPU_UTILIZATION), 1) | |
38 | ifeq ($(USING_DVFS), 1) | |
39 | $(error USING_GPU_UTILIZATION conflict with USING_DVFS you can read the Integration Guide to choose which one do you need) | |
40 | endif | |
41 | endif | |
6fa3eb70 S |
42 | |
43 | mali-y += \ | |
44 | linux/mali_osk_atomics.o \ | |
45 | linux/mali_osk_irq.o \ | |
46 | linux/mali_osk_wq.o \ | |
47 | linux/mali_osk_locks.o \ | |
48 | linux/mali_osk_wait_queue.o \ | |
49 | linux/mali_osk_low_level_mem.o \ | |
50 | linux/mali_osk_math.o \ | |
51 | linux/mali_osk_memory.o \ | |
52 | linux/mali_osk_misc.o \ | |
53 | linux/mali_osk_mali.o \ | |
54 | linux/mali_osk_notification.o \ | |
55 | linux/mali_osk_time.o \ | |
56 | linux/mali_osk_timers.o | |
57 | ||
58 | mali-y += linux/mali_memory.o linux/mali_memory_os_alloc.o | |
59 | mali-y += linux/mali_memory_external.o | |
60 | mali-y += linux/mali_memory_block_alloc.o | |
61 | ||
db9a41fa S |
62 | mali-y += \ |
63 | linux/mali_memory_manager.o \ | |
64 | linux/mali_memory_virtual.o \ | |
65 | linux/mali_memory_util.o \ | |
66 | linux/mali_memory_cow.o | |
67 | ||
6fa3eb70 S |
68 | mali-y += \ |
69 | linux/mali_ukk_mem.o \ | |
70 | linux/mali_ukk_gp.o \ | |
71 | linux/mali_ukk_pp.o \ | |
72 | linux/mali_ukk_core.o \ | |
73 | linux/mali_ukk_soft_job.o \ | |
74 | linux/mali_ukk_timeline.o | |
75 | ||
76 | # Source files which always are included in a build | |
77 | mali-y += \ | |
78 | common/mali_kernel_core.o \ | |
79 | linux/mali_kernel_linux.o \ | |
6fa3eb70 S |
80 | common/mali_session.o \ |
81 | linux/mali_device_pause_resume.o \ | |
82 | common/mali_kernel_vsync.o \ | |
83 | linux/mali_ukk_vsync.o \ | |
84 | linux/mali_kernel_sysfs.o \ | |
85 | common/mali_mmu.o \ | |
86 | common/mali_mmu_page_directory.o \ | |
87 | common/mali_mem_validation.o \ | |
88 | common/mali_hw_core.o \ | |
89 | common/mali_gp.o \ | |
90 | common/mali_pp.o \ | |
91 | common/mali_pp_job.o \ | |
92 | common/mali_gp_job.o \ | |
93 | common/mali_soft_job.o \ | |
94 | common/mali_scheduler.o \ | |
db9a41fa | 95 | common/mali_executor.o \ |
6fa3eb70 S |
96 | common/mali_group.o \ |
97 | common/mali_dlbu.o \ | |
98 | common/mali_broadcast.o \ | |
99 | common/mali_pm.o \ | |
100 | common/mali_pmu.o \ | |
101 | common/mali_user_settings_db.o \ | |
102 | common/mali_kernel_utilization.o \ | |
db9a41fa | 103 | common/mali_control_timer.o \ |
6fa3eb70 | 104 | common/mali_l2_cache.o \ |
6fa3eb70 S |
105 | common/mali_timeline.o \ |
106 | common/mali_timeline_fence_wait.o \ | |
107 | common/mali_timeline_sync_fence.o \ | |
108 | common/mali_spinlock_reentrant.o \ | |
109 | common/mali_pm_domain.o \ | |
110 | linux/mali_osk_pm.o \ | |
111 | linux/mali_pmu_power_up_down.o \ | |
112 | __malidrv_build_info.o | |
113 | ||
114 | mali-y += platform/platform.o | |
115 | mali-y += platform/platform_pmm.o | |
116 | #mali-$(CONFIG_MTK_MET) += platform/platform_met.o | |
db9a41fa S |
117 | ifdef CONFIG_OF |
118 | ccflags-y += -DCONFIG_MALI_DT | |
119 | endif | |
120 | ccflags-y += -DCONFIG_MALI450 | |
6fa3eb70 S |
121 | |
122 | ifneq ($(MALI_PLATFORM_FILES),) | |
123 | mali-y += $(MALI_PLATFORM_FILES:.c=.o) | |
124 | endif | |
125 | ||
126 | mali-$(CONFIG_MALI400_PROFILING) += linux/mali_ukk_profiling.o | |
127 | mali-$(CONFIG_MALI400_PROFILING) += linux/mali_osk_profiling.o | |
128 | ||
129 | mali-$(CONFIG_MALI400_INTERNAL_PROFILING) += linux/mali_profiling_internal.o timestamp-$(TIMESTAMP)/mali_timestamp.o | |
130 | ccflags-$(CONFIG_MALI400_INTERNAL_PROFILING) += -I$(DRIVER_DIR)/timestamp-$(TIMESTAMP) | |
131 | ||
132 | mali-$(CONFIG_DMA_SHARED_BUFFER) += linux/mali_memory_dma_buf.o | |
133 | mali-$(CONFIG_SYNC) += linux/mali_sync.o | |
db9a41fa | 134 | ccflags-$(CONFIG_SYNC) += -Idrivers/staging/android |
6fa3eb70 S |
135 | |
136 | mali-$(CONFIG_MALI400_UMP) += linux/mali_memory_ump.o | |
137 | ||
db9a41fa | 138 | mali-$(CONFIG_MALI_DVFS) += common/mali_dvfs_policy.o |
6fa3eb70 S |
139 | |
140 | # Tell the Linux build system from which .o file to create the kernel module | |
141 | obj-$(CONFIG_MALI400) := mali.o | |
142 | ||
143 | ccflags-y += $(EXTRA_DEFINES) | |
144 | ||
145 | # Set up our defines, which will be passed to gcc | |
6fa3eb70 S |
146 | ccflags-y += -DMALI_PP_SCHEDULER_FORCE_NO_JOB_OVERLAP=$(MALI_PP_SCHEDULER_FORCE_NO_JOB_OVERLAP) |
147 | ccflags-y += -DMALI_PP_SCHEDULER_KEEP_SUB_JOB_STARTS_ALIGNED=$(MALI_PP_SCHEDULER_KEEP_SUB_JOB_STARTS_ALIGNED) | |
148 | ccflags-y += -DMALI_PP_SCHEDULER_FORCE_NO_JOB_OVERLAP_BETWEEN_APPS=$(MALI_PP_SCHEDULER_FORCE_NO_JOB_OVERLAP_BETWEEN_APPS) | |
149 | ccflags-y += -DMALI_STATE_TRACKING=1 | |
150 | ccflags-y += -DMALI_OS_MEMORY_KERNEL_BUFFER_SIZE_IN_MB=$(OS_MEMORY_KERNEL_BUFFER_SIZE_IN_MB) | |
151 | ccflags-y += -DUSING_GPU_UTILIZATION=$(USING_GPU_UTILIZATION) | |
152 | ccflags-y += -DMALI_ENABLE_CPU_CYCLES=$(MALI_ENABLE_CPU_CYCLES) | |
153 | ||
154 | ifeq ($(MALI_UPPER_HALF_SCHEDULING),1) | |
155 | ccflags-y += -DMALI_UPPER_HALF_SCHEDULING | |
156 | endif | |
157 | ||
158 | ccflags-$(CONFIG_MALI400_UMP) += -I$(DRIVER_DIR)/../../ump/include/ump | |
159 | ccflags-$(CONFIG_MALI400_DEBUG) += -DDEBUG | |
160 | ||
161 | # Use our defines when compiling | |
db9a41fa | 162 | ccflags-y += -I$(DRIVER_DIR) -I$(DRIVER_DIR)/include -I$(DRIVER_DIR)/common -I$(DRIVER_DIR)/linux -I$(DRIVER_DIR)/platform -Wno-date-time |
6fa3eb70 S |
163 | |
164 | # Get subversion revision number, fall back to only ${MALI_RELEASE_NAME} if no svn info is available | |
165 | MALI_RELEASE_NAME=$(shell cat $(DRIVER_DIR)/.version 2> /dev/null) | |
166 | ||
167 | SVN_INFO = (cd $(DRIVER_DIR); svn info 2>/dev/null) | |
168 | ||
169 | ifneq ($(shell $(SVN_INFO) 2>/dev/null),) | |
170 | # SVN detected | |
171 | SVN_REV := $(shell $(SVN_INFO) | grep '^Revision: '| sed -e 's/^Revision: //' 2>/dev/null) | |
172 | DRIVER_REV := $(MALI_RELEASE_NAME)-r$(SVN_REV) | |
173 | CHANGE_DATE := $(shell $(SVN_INFO) | grep '^Last Changed Date: ' | cut -d: -f2- | cut -b2-) | |
174 | CHANGED_REVISION := $(shell $(SVN_INFO) | grep '^Last Changed Rev: ' | cut -d: -f2- | cut -b2-) | |
175 | REPO_URL := $(shell $(SVN_INFO) | grep '^URL: ' | cut -d: -f2- | cut -b2-) | |
176 | ||
177 | else # SVN | |
178 | GIT_REV := $(shell cd $(DRIVER_DIR); git describe --always 2>/dev/null) | |
179 | ifneq ($(GIT_REV),) | |
180 | # Git detected | |
181 | DRIVER_REV := $(MALI_RELEASE_NAME)-$(GIT_REV) | |
182 | CHANGE_DATE := $(shell cd $(DRIVER_DIR); git log -1 --format="%ci") | |
183 | CHANGED_REVISION := $(GIT_REV) | |
184 | REPO_URL := $(shell cd $(DRIVER_DIR); git describe --all --always 2>/dev/null) | |
185 | ||
186 | else # Git | |
187 | # No Git or SVN detected | |
188 | DRIVER_REV := $(MALI_RELEASE_NAME) | |
189 | CHANGE_DATE := $(MALI_RELEASE_NAME) | |
190 | CHANGED_REVISION := $(MALI_RELEASE_NAME) | |
191 | endif | |
192 | endif | |
193 | ||
194 | ccflags-y += -DSVN_REV_STRING=\"$(DRIVER_REV)\" | |
195 | ||
6fa3eb70 | 196 | VERSION_STRINGS := |
d672213e | 197 | VERSION_STRINGS += API_VERSION=$(shell grep "\#define _MALI_API_VERSION" $(srctree)/$(DRIVER_DIR)/include/linux/mali/mali_utgard_uk_types.h | cut -d' ' -f 3 ) |
6fa3eb70 S |
198 | VERSION_STRINGS += REPO_URL=$(REPO_URL) |
199 | VERSION_STRINGS += REVISION=$(DRIVER_REV) | |
200 | VERSION_STRINGS += CHANGED_REVISION=$(CHANGED_REVISION) | |
201 | VERSION_STRINGS += CHANGE_DATE=$(CHANGE_DATE) | |
202 | VERSION_STRINGS += BUILD_DATE=$(shell date) | |
203 | ifdef CONFIG_MALI400_DEBUG | |
204 | VERSION_STRINGS += BUILD=debug | |
205 | else | |
206 | VERSION_STRINGS += BUILD=release | |
207 | endif | |
208 | VERSION_STRINGS += TARGET_PLATFORM=$(TARGET_PLATFORM) | |
209 | VERSION_STRINGS += MALI_PLATFORM=$(MALI_PLATFORM) | |
210 | VERSION_STRINGS += KDIR=$(KDIR) | |
211 | VERSION_STRINGS += OS_MEMORY_KERNEL_BUFFER_SIZE_IN_MB=$(OS_MEMORY_KERNEL_BUFFER_SIZE_IN_MB) | |
212 | VERSION_STRINGS += USING_UMP=$(CONFIG_MALI400_UMP) | |
213 | VERSION_STRINGS += USING_PROFILING=$(CONFIG_MALI400_PROFILING) | |
214 | VERSION_STRINGS += USING_INTERNAL_PROFILING=$(CONFIG_MALI400_INTERNAL_PROFILING) | |
215 | VERSION_STRINGS += USING_GPU_UTILIZATION=$(USING_GPU_UTILIZATION) | |
db9a41fa | 216 | VERSION_STRINGS += USING_DVFS=$(CONFIG_MALI_DVFS) |
6fa3eb70 S |
217 | VERSION_STRINGS += MALI_UPPER_HALF_SCHEDULING=$(MALI_UPPER_HALF_SCHEDULING) |
218 | ||
6fa3eb70 S |
219 | #MTK port custom Kbuild |
220 | #To Add 1.ccflags-y 2.SRC | |
221 | include $(DRIVER_DIR)/Kbuild-mtk-custom-src | |
222 | ifeq ($(FLAG_MTK_BUILD_SYS),1) | |
223 | # Create file with Mali driver configuration | |
224 | $(src)/__malidrv_build_info.c: | |
225 | @echo 'const char *__malidrv_build_info(void) { return "malidrv: $(VERSION_STRINGS)";}' > $(src)/__malidrv_build_info.c | |
226 | else | |
227 | # Create file with Mali driver configuration | |
228 | $(DRIVER_DIR)/__malidrv_build_info.c: | |
229 | @echo 'const char *__malidrv_build_info(void) { return "malidrv: $(VERSION_STRINGS)";}' > $(DRIVER_DIR)/__malidrv_build_info.c | |
230 | endif |