1 ########################################################################### ###
3 #@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
4 #@License Dual MIT/GPLv2
6 # The contents of this file are subject to the MIT license as set out below.
8 # Permission is hereby granted, free of charge, to any person obtaining a copy
9 # of this software and associated documentation files (the "Software"), to deal
10 # in the Software without restriction, including without limitation the rights
11 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 # copies of the Software, and to permit persons to whom the Software is
13 # furnished to do so, subject to the following conditions:
15 # The above copyright notice and this permission notice shall be included in
16 # all copies or substantial portions of the Software.
18 # Alternatively, the contents of this file may be used under the terms of
19 # the GNU General Public License Version 2 ("GPL") in which case the provisions
20 # of GPL are applicable instead of those above.
22 # If you wish to allow use of your version of this file only under the terms of
23 # GPL, and not to allow others to use your version of this file under the terms
24 # of the MIT license, indicate your decision by deleting the provisions above
25 # and replace them with the notice and other provisions required by GPL as set
26 # out in the file called "GPL-COPYING" included in this distribution. If you do
27 # not delete the provisions above, a recipient may use your version of this file
28 # under the terms of either the MIT license or GPL.
30 # This License is also included in this distribution in the file called
33 # EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
34 # PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
35 # BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
36 # PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
37 # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
38 # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
39 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
40 ### ###########################################################################
43 services/server/env/linux/event.o \
44 services/server/env/linux/mm.o \
45 services/server/env/linux/mmap.o \
46 services/server/env/linux/module_common.o \
47 services/server/env/linux/devicemem_mmap_stub.o \
48 services/server/env/linux/osfunc.o \
49 services/server/env/linux/allocmem.o \
50 services/server/env/linux/osconnection_server.o \
51 services/server/env/linux/pdump.o \
52 services/server/env/linux/physmem_osmem_linux.o \
53 services/server/env/linux/pvr_debugfs.o \
54 services/server/env/linux/pvr_bridge_k.o \
55 services/server/env/linux/pvr_debug.o \
56 services/server/env/linux/physmem_tdmetacode_linux.o \
57 services/server/env/linux/physmem_tdsecbuf_linux.o \
58 services/server/common/devicemem_heapcfg.o \
59 services/shared/common/devicemem.o \
60 services/shared/common/devicemem_utils.o \
61 services/shared/common/hash.o \
62 services/shared/common/ra.o \
63 services/shared/common/sync.o \
64 services/shared/common/dllist.o \
65 services/shared/common/mem_utils.o \
66 services/server/common/devicemem_server.o \
67 services/server/common/handle.o \
68 services/server/common/lists.o \
69 services/server/common/mmu_common.o \
70 services/server/common/connection_server.o \
71 services/server/common/physheap.o \
72 services/server/common/physmem.o \
73 services/server/common/physmem_lma.o \
74 services/server/common/pmr.o \
75 services/server/common/power.o \
76 services/server/common/process_stats.o \
77 services/server/common/pvrsrv.o \
78 services/server/common/srvcore.o \
79 services/server/common/sync_server.o \
80 services/server/common/tlintern.o \
81 services/shared/common/tlclient.o \
82 services/server/common/tlserver.o \
83 services/server/common/tlstream.o \
84 services/shared/common/uniq_key_splay_tree.o
86 ifneq ($(PVR_LOADER),)
87 pvrsrvkm-y += services/server/env/linux/$(PVR_LOADER).o
89 pvrsrvkm-y += services/server/env/linux/module.o
92 ifeq ($(SUPPORT_DISPLAY_CLASS),1)
94 services/server/common/dc_server.o \
95 services/server/common/scp.o
98 ifeq ($(PVR_RI_DEBUG),1)
99 pvrsrvkm-y += services/server/common/ri_server.o
102 ifeq ($(SUPPORT_PAGE_FAULT_DEBUG),1)
103 pvrsrvkm-y += services/server/common/devicemem_history_server.o
106 ifeq ($(PVR_HANDLE_BACKEND),generic)
107 pvrsrvkm-y += services/server/common/handle_generic.o
109 ifeq ($(PVR_HANDLE_BACKEND),idr)
110 pvrsrvkm-y += services/server/env/linux/handle_idr.o
114 ifeq ($(SUPPORT_GPUTRACE_EVENTS),1)
115 pvrsrvkm-y += services/server/env/linux/pvr_gputrace.o
118 ifeq ($(PVR_TESTING_UTILS),1)
119 pvrsrvkm-y += services/server/common/tutils.o
124 services/server/env/linux/pvr_dvfs_governor.o \
125 services/server/env/linux/pvr_dvfs_device.o
128 pvrsrvkm-$(CONFIG_X86) += services/server/env/linux/osfunc_x86.o
129 pvrsrvkm-$(CONFIG_ARM) += services/server/env/linux/osfunc_arm.o
130 pvrsrvkm-$(CONFIG_ARM64) += services/server/env/linux/osfunc_arm64.o
131 pvrsrvkm-$(CONFIG_METAG) += services/server/env/linux/osfunc_metag.o
132 pvrsrvkm-$(CONFIG_MIPS) += services/server/env/linux/osfunc_mips.o
134 pvrsrvkm-$(CONFIG_EVENT_TRACING) += services/server/env/linux/trace_events.o
137 CFLAGS_mm.o := -Werror
138 CFLAGS_mmap.o := -Werror
139 CFLAGS_module_common.o := -Werror
140 CFLAGS_mutils.o := -Werror
141 CFLAGS_devicemem_mmap_stub.o := -Werror
142 CFLAGS_osfunc.o := -Werror
143 CFLAGS_osfunc_x86.o := -Werror
144 CFLAGS_osconnection_server.o := -Werror
145 CFLAGS_pdump.o := -Werror
146 CFLAGS_pvr_debugfs.o := -Werror
147 CFLAGS_pvr_bridge_k.o := -Werror
148 CFLAGS_devicemem_heapcfg.o := -Werror
149 CFLAGS_devicemem.o := -Werror
150 CFLAGS_devicemem_utils.o = -Werror
151 CFLAGS_devicemem_pdump.o = -Werror
152 CFLAGS_hash.o := -Werror
153 CFLAGS_ra.o := -Werror
154 CFLAGS_sync.o := -Werror
155 CFLAGS_devicemem_server.o := -Werror
156 CFLAGS_handle.o := -Werror
157 CFLAGS_lists.o := -Werror
158 CFLAGS_mem_debug.o := -Werror
159 CFLAGS_mmu_common.o := -Werror
160 CFLAGS_connection_server.o := -Werror
161 CFLAGS_physmem.o := -Werror
162 CFLAGS_physmem_lma.o := -Werror
163 CFLAGS_pmr.o := -Werror
164 CFLAGS_power.o := -Werror
165 CFLAGS_process_stats.o := -Werror
166 CFLAGS_pvrsrv.o := -Werror
167 CFLAGS_srvcore.o := -Werror
168 CFLAGS_sync_server.o := -Werror
169 CFLAGS_tlintern.o := -Werror
170 CFLAGS_tlclient.o := -Werror
171 CFLAGS_tlserver.o := -Werror
172 CFLAGS_tlstream.o := -Werror
174 ifeq ($(SUPPORT_DISPLAY_CLASS),1)
175 CFLAGS_dc_server.o := -Werror
176 CFLAGS_scp.o := -Werror
179 ifeq ($(PVR_RI_DEBUG),1)
180 CFLAGS_ri_server.o := -Werror
182 ifeq ($(SUPPORT_PAGE_FAULT_DEBUG),1)
183 CFLAGS_devicememhistory_server.o := -Werror
185 ifeq ($(SUPPORT_GPUTRACE_EVENTS),1)
186 CFLAGS_pvr_gputrace.o := -Werror
188 ifeq ($(SUPPORT_VALIDATION),1)
189 CFLAGS_validation.o := -Werror
191 ifeq ($(PVR_TESTING_UTILS),1)
192 CFLAGS_tutils.o := -Werror
196 # With certain build configurations, e.g., ARM, Werror, we get a build
197 # failure in the ftrace Linux kernel header. So disable the relevant check.
198 CFLAGS_trace_events.o := -Wno-missing-prototypes
202 services/server/common/pdump_common.o \
203 services/server/common/pdump_mmu.o \
204 services/server/common/pdump_physmem.o \
205 services/shared/common/devicemem_pdump.o
207 CFLAGS_pdump_common.o := -Werror
208 CFLAGS_pdump_mmu.o := -Werror
209 CFLAGS_pdump_physmem.o := -Werror
210 CFLAGS_devicemem_pdump.o := -Werror
215 services/server/devices/rgx/rgxinit.o \
216 services/server/devices/rgx/rgxdebug.o \
217 services/server/devices/rgx/rgxhwperf.o \
218 services/server/devices/rgx/rgxmem.o \
219 services/server/devices/rgx/rgxta3d.o \
220 services/server/devices/rgx/rgxcompute.o \
221 services/server/devices/rgx/rgxccb.o \
222 services/server/devices/rgx/rgxmmuinit.o \
223 services/server/devices/rgx/rgxpower.o \
224 services/server/devices/rgx/rgxtransfer.o \
225 services/server/devices/rgx/rgxutils.o \
226 services/server/devices/rgx/rgxfwutils.o \
227 services/server/devices/rgx/rgxbreakpoint.o \
228 services/server/devices/rgx/debugmisc_server.o \
229 services/shared/devices/rgx/rgx_compat_bvnc.o \
230 services/server/devices/rgx/rgxregconfig.o \
231 services/server/devices/rgx/rgxtimerquery.o \
232 services/server/devices/rgx/rgxsync.o \
233 services/server/devices/rgx/rgxtimecorr.o
235 ifeq ($(SUPPORT_RAY_TRACING),1)
236 pvrsrvkm-y += services/server/devices/rgx/rgxray.o
241 CFLAGS_rgxinit.o := -Werror
242 CFLAGS_rgxdebug.o := -Werror
243 CFLAGS_rgxhwperf.o := -Werror
244 CFLAGS_rgxmem.o := -Werror
245 CFLAGS_rgxta3d.o := -Werror
246 CFLAGS_rgxcompute.o := -Werror
247 CFLAGS_rgxccb.o := -Werror
248 CFLAGS_rgxmmuinit.o := -Werror
249 CFLAGS_rgxpower.o := -Werror
250 CFLAGS_rgxsharedpb.o := -Werror
251 CFLAGS_rgxtransfer.o := -Werror
252 CFLAGS_rgxutils.o := -Werror
253 CFLAGS_rgxfwutils.o := -Werror
254 CFLAGS_rgxbreakpoint.o := -Werror
255 CFLAGS_debugmisc_server.o := -Werror
256 CFLAGS_rgxray.o := -Werror
257 CFLAGS_rgxregconfig.o := -Werror
258 CFLAGS_rgxsync.o := -Werror
262 pvrsrvkm-y += services/server/devices/rgx/rgxpdump.o
264 CFLAGS_rgxpdump.o := -Werror
268 # Bridge headers and source files
270 -I$(bridge_base)/dmm_bridge \
271 -I$(bridge_base)/mm_bridge \
272 -I$(bridge_base)/cmm_bridge \
273 -I$(bridge_base)/pdumpmm_bridge \
274 -I$(bridge_base)/pdump_bridge \
275 -I$(bridge_base)/pdumpctrl_bridge \
276 -I$(bridge_base)/rgxtq_bridge \
277 -I$(bridge_base)/rgxinit_bridge \
278 -I$(bridge_base)/rgxta3d_bridge \
279 -I$(bridge_base)/rgxcmp_bridge \
280 -I$(bridge_base)/dsync_bridge \
281 -I$(bridge_base)/sync_bridge \
282 -I$(bridge_base)/breakpoint_bridge \
283 -I$(bridge_base)/debugmisc_bridge \
284 -I$(bridge_base)/rgxpdump_bridge \
285 -I$(bridge_base)/pvrtl_bridge \
286 -I$(bridge_base)/dpvrtl_bridge \
287 -I$(bridge_base)/rgxhwperf_bridge \
288 -I$(bridge_base)/regconfig_bridge \
289 -I$(bridge_base)/timerquery_bridge
291 ifeq ($(SUPPORT_KERNEL_SRVINIT),1)
293 -I$(bridge_base)/dsrvcore_bridge \
294 -I$(bridge_base)/drgxinit_bridge \
295 -I$(bridge_base)/dpdumpctrl_bridge \
296 -I$(bridge_base)/dpdump_bridge \
297 -I$(bridge_base)/drgxpdump_bridge
301 -I$(bridge_base)/srvcore_bridge
303 ifeq ($(PVR_RI_DEBUG),1)
305 -I$(bridge_base)/ri_bridge \
306 -I$(bridge_base)/dri_bridge
309 ifeq ($(SUPPORT_PAGE_FAULT_DEBUG),1)
311 -I$(bridge_base)/devicememhistory_bridge \
312 -I$(bridge_base)/ddevicememhistory_bridge
316 ifeq ($(SUPPORT_RAY_TRACING),1)
317 ccflags-y += -I$(bridge_base)/rgxray_bridge
322 -I$(TOP)/services/shared/devices/rgx
328 ccflags-y += -I$(TOP)/services/include/env/linux
330 ifeq ($(SUPPORT_DISPLAY_CLASS),1)
332 -I$(bridge_base)/dc_bridge
335 ifeq ($(CACHEFLUSH_TYPE),CACHEFLUSH_GENERIC)
336 ccflags-y += -I$(bridge_base)/cachegeneric_bridge
339 ifeq ($(SUPPORT_SECURE_EXPORT),1)
341 -I$(bridge_base)/syncsexport_bridge \
342 -I$(bridge_base)/smm_bridge
344 ifeq ($(SUPPORT_INSECURE_EXPORT),1)
346 -I$(bridge_base)/syncexport_bridge
349 ifeq ($(SUPPORT_ION),1)
350 ccflags-y += -I$(bridge_base)/dmabuf_bridge
353 ifeq ($(SUPPORT_ANDROID_PLATFORM),1)
354 ccflags-y += -I$(TOP)/kernel/drivers/staging/imgtec
357 ifeq ($(SUPPORT_NATIVE_FENCE_SYNC),1)
358 pvrsrvkm-y += kernel/drivers/staging/imgtec/pvr_sync.o
361 ifeq ($(SUPPORT_VALIDATION),1)
362 ccflags-y += -I$(bridge_base)/validation_bridge
365 ifeq ($(PVR_TESTING_UTILS),1)
366 ccflags-y += -I$(bridge_base)/tutils_bridge
370 generated/mm_bridge/server_mm_bridge.o \
371 generated/dmm_bridge/client_mm_bridge.o \
372 generated/pdumpmm_bridge/server_pdumpmm_bridge.o \
373 generated/dpdumpmm_bridge/client_pdumpmm_bridge.o \
374 generated/cmm_bridge/server_cmm_bridge.o \
375 generated/pdump_bridge/server_pdump_bridge.o \
376 generated/pdumpctrl_bridge/server_pdumpctrl_bridge.o \
377 generated/rgxtq_bridge/server_rgxtq_bridge.o \
378 generated/rgxinit_bridge/server_rgxinit_bridge.o \
379 generated/rgxta3d_bridge/server_rgxta3d_bridge.o \
380 generated/rgxcmp_bridge/server_rgxcmp_bridge.o \
381 generated/srvcore_bridge/server_srvcore_bridge.o \
382 generated/sync_bridge/server_sync_bridge.o \
383 generated/dsync_bridge/client_sync_bridge.o \
384 generated/breakpoint_bridge/server_breakpoint_bridge.o \
385 generated/debugmisc_bridge/server_debugmisc_bridge.o \
386 generated/rgxpdump_bridge/server_rgxpdump_bridge.o \
387 generated/pvrtl_bridge/server_pvrtl_bridge.o \
388 generated/dpvrtl_bridge/client_pvrtl_bridge.o \
389 generated/rgxhwperf_bridge/server_rgxhwperf_bridge.o \
390 generated/regconfig_bridge/server_regconfig_bridge.o \
391 generated/timerquery_bridge/server_timerquery_bridge.o
393 ifeq ($(SUPPORT_KERNEL_SRVINIT),1)
395 generated/dsrvcore_bridge/client_srvcore_bridge.o \
396 generated/drgxinit_bridge/client_rgxinit_bridge.o \
397 generated/dpdumpctrl_bridge/client_pdumpctrl_bridge.o \
398 generated/dpdump_bridge/client_pdump_bridge.o \
399 generated/drgxpdump_bridge/client_rgxpdump_bridge.o
402 ifeq ($(PVR_RI_DEBUG),1)
404 generated/ri_bridge/server_ri_bridge.o \
405 generated/dri_bridge/client_ri_bridge.o
407 ifeq ($(SUPPORT_PAGE_FAULT_DEBUG),1)
409 generated/devicememhistory_bridge/server_devicememhistory_bridge.o \
410 generated/ddevicememhistory_bridge/client_devicememhistory_bridge.o
413 ifeq ($(SUPPORT_DISPLAY_CLASS),1)
415 generated/dc_bridge/server_dc_bridge.o
418 ifeq ($(SUPPORT_RAY_TRACING),1)
419 pvrsrvkm-y += generated/rgxray_bridge/server_rgxray_bridge.o
422 ifeq ($(CACHEFLUSH_TYPE),CACHEFLUSH_GENERIC)
424 services/server/common/cache_generic.o \
425 generated/cachegeneric_bridge/server_cachegeneric_bridge.o
428 ifeq ($(SUPPORT_SECURE_EXPORT),1)
430 services/server/env/linux/ossecure_export.o \
431 generated/smm_bridge/server_smm_bridge.o \
432 generated/syncsexport_bridge/server_syncsexport_bridge.o
434 ifeq ($(SUPPORT_INSECURE_EXPORT),1)
436 generated/syncexport_bridge/server_syncexport_bridge.o
439 ifeq ($(SUPPORT_ION),1)
440 pvrsrvkm-y += generated/dmabuf_bridge/server_dmabuf_bridge.o
441 pvrsrvkm-y += services/server/env/linux/physmem_dmabuf.o
444 ifeq ($(SUPPORT_VALIDATION),1)
445 pvrsrvkm-y += generated/validation_bridge/server_validation_bridge.o
446 pvrsrvkm-y += services/server/common/validation.o
447 endif # SUPPORT_VALIDATION
449 ifeq ($(PVR_TESTING_UTILS),1)
450 pvrsrvkm-y += generated/tutils_bridge/server_tutils_bridge.o
454 CFLAGS_server_mm_bridge.o := -Werror
455 CFLAGS_server_cmm_bridge.o := -Werror
456 CFLAGS_client_mm_bridge.o := -Werror
457 CFLAGS_client_pdumpmm_bridge.o := -Werror
458 CFLAGS_server_pdumpctrl_bridge.o := -Werror
459 CFLAGS_server_sync_bridge.o := -Werror
460 CFLAGS_server_rgxtq_bridge.o := -Werror
461 CFLAGS_server_rgxinit_bridge.o := -Werror
462 CFLAGS_server_rgxta3d_bridge.o := -Werror
463 CFLAGS_server_rgxcmp_bridge.o := -Werror
464 CFLAGS_server_srvcore_bridge.o := -Werror
465 CFLAGS_server_breakpoint_bridge.o := -Werror
466 CFLAGS_server_debugmisc_bridge.o := -Werror
467 CFLAGS_server_rgxpdump_bridge.o := -Werror
468 CFLAGS_server_pdumpmm_bridge.o := -Werror
469 CFLAGS_client_pdumpmm_bridge.o := -Werror
470 CFLAGS_server_pdump_bridge.o := -Werror
471 CFLAGS_server_rgxray_bridge.o := -Werror
472 CFLAGS_server_regconfig_bridge.o := -Werror
473 CFLAGS_server_timerquery_bridge.o := -Werror
475 ifeq ($(SUPPORT_KERNEL_SRVINIT),1)
476 CFLAGS_client_srvcore_bridge.o := -Werror
478 ifeq ($(SUPPORT_DISPLAY_CLASS),1)
479 CFLAGS_server_dc_bridge.o := -Werror
481 ifeq ($(CACHEFLUSH_TYPE),CACHEFLUSH_GENERIC)
482 CFLAGS_cache_generic.o := -Werror
483 CFLAGS_server_cachegeneric_bridge.o := -Werror
485 ifeq ($(SUPPORT_SECURE_EXPORT),1)
486 CFLAGS_ossecure_export.o := -Werror
487 CFLAGS_server_smm_bridge.o := -Werror
488 CFLAGS_server_syncsexport_bridge.o := -Werror
490 ifeq ($(SUPPORT_INSECURE_EXPORT),1)
491 CFLAGS_server_syncexport_bridge.o := -Werror
493 CFLAGS_server_pvrtl_bridge.o := -Werror
494 CFLAGS_client_pvrtl_bridge.o := -Werror
495 CFLAGS_server_rgxhwperf_bridge.o := -Werror
496 ifeq ($(PVR_RI_DEBUG),1)
497 CFLAGS_server_ri_bridge.o := -Werror
498 CFLAGS_client_ri_bridge.o := -Werror
500 ifeq ($(SUPPORT_PAGE_FAULT_DEBUG),1)
501 CFLAGS_server_devicememhistory_bridge.o := -Werror
502 CFLAGS_client_devicememhistory_bridge.o := -Werror
504 ifeq ($(SUPPORT_ION),1)
505 CFLAGS_physmem_dmabuf.o := -Werror
506 CFLAGS_server_dmabuf_bridge.o = -Werror
508 ifeq ($(SUPPORT_VALIDATION),1)
509 CFLAGS_server_validation_bridge.o := -Werror
511 ifeq ($(PVR_TESTING_UTILS),1)
512 CFLAGS_server_tutils_bridge.o := -Werror
516 ifeq ($(SUPPORT_DRM),1)
517 ifneq ($(SUPPORT_DRM_EXT),1)
519 services/server/env/linux/pvr_drm.o
523 services/server/env/linux/pvr_drm_gem.o \
524 services/server/env/linux/pvr_drm_prime.o \
525 services/server/env/linux/physmem_dmabuf.o
527 CFLAGS_physmem_dmabuf.o := -Werror
529 ifeq ($(SUPPORT_DRM_DC_MODULE),1)
531 services/server/env/linux/pvr_drm_display.o
532 ifneq ($(SUPPORT_DISPLAY_CLASS),1)
534 services/server/common/scp.o
535 CFLAGS_scp.o := -Werror
541 -I$(TOP)/services/include/env/linux
544 ifeq ($(SUPPORT_KERNEL_SRVINIT),1)
546 include $(TOP)/services/srvinit/env/linux/srvinit_common.mk
547 pvrsrvkm-y += $(patsubst $(TOP)/%.c,%.o,$($(SRVINIT)_src))
548 ccflags-y += $(patsubst %,-I$(TOP)/%,$($(SRVINIT)_includes))
551 services/client/common/pvrsrv_devmem.o \
552 services/client/common/srvcore.o \
553 services/client/common/connection.o \
554 services/client/devices/rgx/rgxinit_client.o \
555 services/client/env/linux/km/osfunc_km.o \
556 services/client/env/linux/km/osfunc_mutex.o \
557 services/client/env/linux/km/pvr_bridge_client.o \
558 services/client/env/linux/km/pvrtl_client.o
562 services/client/common/pvrsrv_devmem_pdump.o \
563 services/client/common/pvr_pdump_glue.o \
564 services/client/common/devicemem_pdumpc.o
567 ifeq ($(SUPPORT_VALIDATION),1)
569 services/client/common/validation.o
573 -I$(TOP)/services/client/include \
574 -I$(TOP)/services/client/common \
575 -I$(TOP)/services/client/env/linux
578 -I$(OUT)/target_neutral/intermediates/firmware
581 include $(TOP)/services/system/$(PVR_SYSTEM)/Kbuild.mk