| ########################################################################### ### |
| #@File |
| #@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved |
| #@License Dual MIT/GPLv2 |
| # |
| # The contents of this file are subject to the MIT license as set out below. |
| # |
| # Permission is hereby granted, free of charge, to any person obtaining a copy |
| # of this software and associated documentation files (the "Software"), to deal |
| # in the Software without restriction, including without limitation the rights |
| # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| # copies of the Software, and to permit persons to whom the Software is |
| # furnished to do so, subject to the following conditions: |
| # |
| # The above copyright notice and this permission notice shall be included in |
| # all copies or substantial portions of the Software. |
| # |
| # Alternatively, the contents of this file may be used under the terms of |
| # the GNU General Public License Version 2 ("GPL") in which case the provisions |
| # of GPL are applicable instead of those above. |
| # |
| # If you wish to allow use of your version of this file only under the terms of |
| # GPL, and not to allow others to use your version of this file under the terms |
| # of the MIT license, indicate your decision by deleting the provisions above |
| # and replace them with the notice and other provisions required by GPL as set |
| # out in the file called "GPL-COPYING" included in this distribution. If you do |
| # not delete the provisions above, a recipient may use your version of this file |
| # under the terms of either the MIT license or GPL. |
| # |
| # This License is also included in this distribution in the file called |
| # "MIT-COPYING". |
| # |
| # EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS |
| # PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
| # BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR |
| # PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR |
| # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER |
| # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
| # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| ### ########################################################################### |
| |
| # Compatibility BVNC |
| ccflags-y += -I$(TOP)/services/shared/devices/rgx |
| |
| # Errata files |
| ccflags-y += -I$(TOP)/hwdefs |
| |
| # Linux-specific headers |
| ccflags-y += \ |
| -I$(TOP)/services/include/env/linux \ |
| -I$(TOP)/kernel/drivers/staging/imgtec |
| |
| $(PVRSRV_MODNAME)-y += \ |
| services/server/env/linux/event.o \ |
| services/server/env/linux/km_apphint.o \ |
| services/server/env/linux/module_common.o \ |
| services/server/env/linux/osmmap_stub.o \ |
| services/server/env/linux/osfunc.o \ |
| services/server/env/linux/allocmem.o \ |
| services/server/env/linux/osconnection_server.o \ |
| services/server/env/linux/pdump.o \ |
| services/server/env/linux/physmem_osmem_linux.o \ |
| services/server/env/linux/pmr_os.o \ |
| services/server/env/linux/pvr_debugfs.o \ |
| services/server/env/linux/pvr_bridge_k.o \ |
| services/server/env/linux/pvr_debug.o \ |
| services/server/env/linux/physmem_dmabuf.o \ |
| services/server/common/devicemem_heapcfg.o \ |
| services/shared/common/devicemem.o \ |
| services/shared/common/devicemem_utils.o \ |
| services/shared/common/hash.o \ |
| services/shared/common/ra.o \ |
| services/shared/common/sync.o \ |
| services/shared/common/mem_utils.o \ |
| services/server/common/devicemem_server.o \ |
| services/server/common/handle.o \ |
| services/server/common/lists.o \ |
| services/server/common/mmu_common.o \ |
| services/server/common/connection_server.o \ |
| services/server/common/physheap.o \ |
| services/server/common/physmem.o \ |
| services/server/common/physmem_lma.o \ |
| services/server/common/physmem_hostmem.o \ |
| services/server/common/physmem_tdsecbuf.o \ |
| services/server/common/pmr.o \ |
| services/server/common/power.o \ |
| services/server/common/process_stats.o \ |
| services/server/common/pvr_notifier.o \ |
| services/server/common/pvrsrv.o \ |
| services/server/common/srvcore.o \ |
| services/server/common/sync_checkpoint.o \ |
| services/server/common/sync_server.o \ |
| services/shared/common/htbuffer.o \ |
| services/server/common/htbserver.o \ |
| services/server/common/tlintern.o \ |
| services/shared/common/tlclient.o \ |
| services/server/common/tlserver.o \ |
| services/server/common/tlstream.o \ |
| services/server/common/cache_km.o \ |
| services/shared/common/uniq_key_splay_tree.o \ |
| services/server/common/pvrsrv_pool.o \ |
| services/server/common/info_page_km.o |
| |
| ifeq ($(SUPPORT_FALLBACK_FENCE_SYNC),1) |
| $(PVRSRV_MODNAME)-y += \ |
| services/server/common/sync_fallback_server.o |
| endif |
| |
| # Wrap ExtMem support |
| ifeq ($(SUPPORT_WRAP_EXTMEM),1) |
| $(PVRSRV_MODNAME)-y += \ |
| services/server/env/linux/physmem_extmem_linux.o \ |
| services/server/common/physmem_extmem.o |
| endif |
| |
| ifeq ($(SUPPORT_TRUSTED_DEVICE),1) |
| $(PVRSRV_MODNAME)-y += \ |
| services/server/common/physmem_tdfwcode.o |
| endif |
| |
| ifeq ($(SUPPORT_PDVFS),1) |
| $(PVRSRV_MODNAME)-y += \ |
| services/server/devices/rgx/rgxpdvfs.o |
| |
| ifeq ($(SUPPORT_WORKLOAD_ESTIMATION),1) |
| $(PVRSRV_MODNAME)-y += \ |
| services/server/devices/rgx/rgxworkest.o |
| endif |
| endif |
| |
| ifeq ($(SUPPORT_DRM_EXT),) |
| ifneq ($(PVR_LOADER),) |
| ifeq ($(KERNEL_DRIVER_DIR),) |
| $(PVRSRV_MODNAME)-y += kernel/drivers/staging/imgtec/$(PVR_LOADER).o |
| else |
| ifneq ($(wildcard $(KERNELDIR)/$(KERNEL_DRIVER_DIR)/$(PVR_SYSTEM)/$(PVR_LOADER).c),) |
| $(PVRSRV_MODNAME)-y += external/$(KERNEL_DRIVER_DIR)/$(PVR_SYSTEM)/$(PVR_LOADER).o |
| else |
| ifneq ($(wildcard $(KERNELDIR)/$(KERNEL_DRIVER_DIR)/$(PVR_LOADER).c),) |
| $(PVRSRV_MODNAME)-y += external/$(KERNEL_DRIVER_DIR)/$(PVR_LOADER).o |
| else |
| $(PVRSRV_MODNAME)-y += kernel/drivers/staging/imgtec/$(PVR_LOADER).o |
| endif |
| endif |
| endif |
| else |
| $(PVRSRV_MODNAME)-y += kernel/drivers/staging/imgtec/pvr_platform_drv.o |
| endif |
| endif |
| |
| |
| $(PVRSRV_MODNAME)-y += \ |
| services/server/devices/rgx/debugmisc_server.o \ |
| services/server/devices/rgx/rgxbreakpoint.o \ |
| services/server/devices/rgx/rgxccb.o \ |
| services/server/devices/rgx/rgxdebug.o \ |
| services/server/devices/rgx/rgxfwutils.o \ |
| services/server/devices/rgx/rgxinit.o \ |
| services/server/devices/rgx/rgxkicksync.o \ |
| services/server/devices/rgx/rgxlayer_impl.o \ |
| services/server/devices/rgx/rgxmem.o \ |
| services/server/devices/rgx/rgxmmuinit.o \ |
| services/server/devices/rgx/rgxregconfig.o \ |
| services/server/devices/rgx/rgxta3d.o \ |
| services/server/devices/rgx/rgxtimerquery.o \ |
| services/server/devices/rgx/rgxtransfer.o \ |
| services/server/devices/rgx/rgxtdmtransfer.o \ |
| services/server/devices/rgx/rgxutils.o \ |
| services/shared/devices/rgx/rgx_compat_bvnc.o \ |
| services/server/devices/rgx/rgxmipsmmuinit.o \ |
| services/server/devices/rgx/rgxhwperf.o \ |
| services/server/devices/rgx/rgxpower.o \ |
| services/server/devices/rgx/rgxstartstop.o \ |
| services/server/devices/rgx/rgxtimecorr.o |
| |
| ifeq ($(SUPPORT_DISPLAY_CLASS),1) |
| $(PVRSRV_MODNAME)-y += \ |
| services/server/common/dc_server.o \ |
| services/server/common/scp.o |
| endif |
| |
| ifeq ($(SUPPORT_SECURE_EXPORT),1) |
| $(PVRSRV_MODNAME)-y += services/server/env/linux/ossecure_export.o |
| endif |
| |
| ifeq ($(PDUMP),1) |
| $(PVRSRV_MODNAME)-y += \ |
| services/server/common/pdump_common.o \ |
| services/server/common/pdump_mmu.o \ |
| services/server/common/pdump_physmem.o \ |
| services/shared/common/devicemem_pdump.o \ |
| services/shared/common/devicememx_pdump.o \ |
| services/server/devices/rgx/rgxpdump.o |
| endif |
| |
| $(PVRSRV_MODNAME)-y += services/server/devices/rgx/rgxcompute.o |
| |
| $(PVRSRV_MODNAME)-y += services/server/devices/rgx/rgxray.o |
| |
| ifeq ($(PVR_RI_DEBUG),1) |
| $(PVRSRV_MODNAME)-y += services/server/common/ri_server.o |
| endif |
| |
| ifeq ($(PVR_TESTING_UTILS),1) |
| $(PVRSRV_MODNAME)-y += services/server/common/tutils.o |
| endif |
| |
| ifeq ($(SUPPORT_PAGE_FAULT_DEBUG),1) |
| $(PVRSRV_MODNAME)-y += services/server/common/devicemem_history_server.o |
| endif |
| |
| $(PVRSRV_MODNAME)-y += services/server/devices/rgx/rgxsignals.o |
| |
| ifeq ($(PVR_HANDLE_BACKEND),generic) |
| $(PVRSRV_MODNAME)-y += services/server/common/handle_generic.o |
| else |
| ifeq ($(PVR_HANDLE_BACKEND),idr) |
| $(PVRSRV_MODNAME)-y += services/server/env/linux/handle_idr.o |
| endif |
| endif |
| |
| ifeq ($(SUPPORT_GPUTRACE_EVENTS),1) |
| $(PVRSRV_MODNAME)-y += services/server/env/linux/pvr_gputrace.o |
| endif |
| |
| ifeq ($(SUPPORT_BUFFER_SYNC),1) |
| $(PVRSRV_MODNAME)-y += \ |
| kernel/drivers/staging/imgtec/pvr_buffer_sync.o \ |
| kernel/drivers/staging/imgtec/pvr_fence.o |
| endif |
| |
| ifeq ($(SUPPORT_NATIVE_FENCE_SYNC),1) |
| ifeq ($(PVRSRV_USE_SYNC_CHECKPOINTS),1) |
| ifeq ($(SUPPORT_DMA_FENCE),1) |
| $(PVRSRV_MODNAME)-y += \ |
| kernel/drivers/staging/imgtec/pvr_sync_dma_fence.o \ |
| kernel/drivers/staging/imgtec/pvr_counting_timeline.o \ |
| kernel/drivers/staging/imgtec/pvr_sw_fence.o \ |
| kernel/drivers/staging/imgtec/pvr_fence.o \ |
| services/server/env/linux/dma_fence_sync_native_server.o |
| else |
| $(PVRSRV_MODNAME)-y += services/server/env/linux/sync_native_server.o |
| $(PVRSRV_MODNAME)-y += kernel/drivers/staging/imgtec/pvr_sync2.o |
| endif |
| else |
| $(PVRSRV_MODNAME)-y += services/server/env/linux/sync_native_server.o |
| $(PVRSRV_MODNAME)-y += kernel/drivers/staging/imgtec/pvr_sync.o |
| endif |
| else |
| ifeq ($(SUPPORT_FALLBACK_FENCE_SYNC),1) |
| $(PVRSRV_MODNAME)-y += services/server/common/sync_fallback_server.o |
| endif |
| endif |
| |
| ifeq ($(PVR_DVFS),1) |
| $(PVRSRV_MODNAME)-y += \ |
| services/server/env/linux/pvr_dvfs_device.o |
| endif |
| |
| $(PVRSRV_MODNAME)-$(CONFIG_X86) += services/server/env/linux/osfunc_x86.o |
| $(PVRSRV_MODNAME)-$(CONFIG_ARM) += services/server/env/linux/osfunc_arm.o |
| $(PVRSRV_MODNAME)-$(CONFIG_ARM64) += services/server/env/linux/osfunc_arm64.o |
| $(PVRSRV_MODNAME)-$(CONFIG_METAG) += services/server/env/linux/osfunc_metag.o |
| $(PVRSRV_MODNAME)-$(CONFIG_MIPS) += services/server/env/linux/osfunc_mips.o |
| |
| $(PVRSRV_MODNAME)-$(CONFIG_EVENT_TRACING) += services/server/env/linux/trace_events.o |
| |
| ifneq ($(SUPPORT_DRM_EXT),1) |
| ccflags-y += \ |
| -Iinclude/drm \ |
| -I$(TOP)/include/drm \ |
| -I$(TOP)/services/include/env/linux |
| |
| $(PVRSRV_MODNAME)-y += \ |
| kernel/drivers/staging/imgtec/pvr_drm.o |
| endif # SUPPORT_DRM_EXT |
| |
| ccflags-y += -I$(OUT)/target_neutral/intermediates/firmware |
| |
| # Srvinit headers and source files |
| |
| $(PVRSRV_MODNAME)-y += \ |
| services/server/devices/rgx/rgxsrvinit.o \ |
| services/server/devices/rgx/rgxsrvinit_script.o \ |
| services/server/devices/rgx/rgxfwimageutils.o \ |
| services/shared/devices/rgx/rgx_compat_bvnc.o \ |
| services/shared/devices/rgx/rgx_hwperf_table.o \ |
| services/server/devices/rgx/env/linux/km/rgxfwload.o |
| |
| ccflags-y += \ |
| -Iinclude \ |
| -Ihwdefs \ |
| -Ihwdefs/km \ |
| -Iservices/include \ |
| -Iservices/include/shared \ |
| -Iservices/server/include \ |
| -Iservices/server/devices/rgx \ |
| -Iservices/shared/include \ |
| -Iservices/shared/devices/rgx |
| |
| # Bridge headers and source files |
| |
| # Keep in sync with: |
| # build/linux/common/bridges.mk AND |
| # services/bridge/Linux.mk |
| |
| ccflags-y += \ |
| -I$(bridge_base)/mm_bridge \ |
| -I$(bridge_base)/cmm_bridge \ |
| -I$(bridge_base)/rgxtq_bridge \ |
| -I$(bridge_base)/rgxtq2_bridge \ |
| -I$(bridge_base)/rgxta3d_bridge \ |
| -I$(bridge_base)/srvcore_bridge \ |
| -I$(bridge_base)/sync_bridge \ |
| -I$(bridge_base)/synctracking_bridge \ |
| -I$(bridge_base)/breakpoint_bridge \ |
| -I$(bridge_base)/debugmisc_bridge \ |
| -I$(bridge_base)/htbuffer_bridge \ |
| -I$(bridge_base)/pvrtl_bridge \ |
| -I$(bridge_base)/rgxhwperf_bridge \ |
| -I$(bridge_base)/regconfig_bridge \ |
| -I$(bridge_base)/timerquery_bridge \ |
| -I$(bridge_base)/rgxkicksync_bridge \ |
| -I$(bridge_base)/cache_bridge \ |
| -I$(bridge_base)/dmabuf_bridge \ |
| |
| |
| $(PVRSRV_MODNAME)-y += \ |
| generated/mm_bridge/server_mm_bridge.o \ |
| generated/cmm_bridge/server_cmm_bridge.o \ |
| generated/rgxtq_bridge/server_rgxtq_bridge.o \ |
| generated/rgxtq2_bridge/server_rgxtq2_bridge.o \ |
| generated/rgxta3d_bridge/server_rgxta3d_bridge.o \ |
| generated/srvcore_bridge/server_srvcore_bridge.o \ |
| generated/sync_bridge/server_sync_bridge.o \ |
| generated/breakpoint_bridge/server_breakpoint_bridge.o \ |
| generated/debugmisc_bridge/server_debugmisc_bridge.o \ |
| generated/htbuffer_bridge/server_htbuffer_bridge.o \ |
| generated/pvrtl_bridge/server_pvrtl_bridge.o \ |
| generated/rgxhwperf_bridge/server_rgxhwperf_bridge.o \ |
| generated/regconfig_bridge/server_regconfig_bridge.o \ |
| generated/timerquery_bridge/server_timerquery_bridge.o \ |
| generated/rgxkicksync_bridge/server_rgxkicksync_bridge.o \ |
| generated/cache_bridge/server_cache_bridge.o \ |
| generated/dmabuf_bridge/server_dmabuf_bridge.o |
| |
| |
| ifeq ($(SUPPORT_WRAP_EXTMEM),1) |
| ccflags-y += -I$(bridge_base)/mmextmem_bridge |
| $(PVRSRV_MODNAME)-y += generated/mmextmem_bridge/server_mmextmem_bridge.o |
| endif |
| |
| ifeq ($(SUPPORT_DISPLAY_CLASS),1) |
| ccflags-y += -I$(bridge_base)/dc_bridge |
| $(PVRSRV_MODNAME)-y += generated/dc_bridge/server_dc_bridge.o |
| endif |
| |
| ifeq ($(SUPPORT_SECURE_EXPORT),1) |
| ccflags-y += -I$(bridge_base)/smm_bridge |
| $(PVRSRV_MODNAME)-y += generated/smm_bridge/server_smm_bridge.o |
| endif |
| |
| ifeq ($(SUPPORT_SERVER_SYNC),1) |
| ifeq ($(SUPPORT_SECURE_EXPORT),1) |
| ccflags-y += -I$(bridge_base)/syncsexport_bridge |
| $(PVRSRV_MODNAME)-y += generated/syncsexport_bridge/server_syncsexport_bridge.o |
| endif |
| ifeq ($(SUPPORT_INSECURE_EXPORT),1) |
| ccflags-y += \ |
| -I$(bridge_base)/syncexport_bridge |
| $(PVRSRV_MODNAME)-y += generated/syncexport_bridge/server_syncexport_bridge.o |
| endif |
| endif |
| |
| ifeq ($(PDUMP),1) |
| ccflags-y += \ |
| -I$(bridge_base)/pdump_bridge \ |
| -I$(bridge_base)/pdumpctrl_bridge \ |
| -I$(bridge_base)/pdumpmm_bridge \ |
| -I$(bridge_base)/rgxpdump_bridge |
| $(PVRSRV_MODNAME)-y += \ |
| generated/pdump_bridge/server_pdump_bridge.o \ |
| generated/pdumpctrl_bridge/server_pdumpctrl_bridge.o \ |
| generated/pdumpmm_bridge/server_pdumpmm_bridge.o \ |
| generated/rgxpdump_bridge/server_rgxpdump_bridge.o |
| endif |
| |
| ccflags-y += -I$(bridge_base)/rgxcmp_bridge |
| $(PVRSRV_MODNAME)-y += generated/rgxcmp_bridge/server_rgxcmp_bridge.o |
| |
| ccflags-y += -I$(bridge_base)/rgxray_bridge |
| $(PVRSRV_MODNAME)-y += generated/rgxray_bridge/server_rgxray_bridge.o |
| |
| ifeq ($(PVR_RI_DEBUG),1) |
| ccflags-y += -I$(bridge_base)/ri_bridge |
| $(PVRSRV_MODNAME)-y += generated/ri_bridge/server_ri_bridge.o |
| endif |
| |
| ifeq ($(SUPPORT_VALIDATION),1) |
| ccflags-y += -I$(bridge_base)/validation_bridge |
| $(PVRSRV_MODNAME)-y += generated/validation_bridge/server_validation_bridge.o |
| $(PVRSRV_MODNAME)-y += services/server/common/validation.o |
| endif |
| |
| ifeq ($(PVR_TESTING_UTILS),1) |
| ccflags-y += -I$(bridge_base)/tutils_bridge |
| $(PVRSRV_MODNAME)-y += generated/tutils_bridge/server_tutils_bridge.o |
| endif |
| |
| ifeq ($(SUPPORT_PAGE_FAULT_DEBUG),1) |
| ccflags-y += -I$(bridge_base)/devicememhistory_bridge |
| $(PVRSRV_MODNAME)-y += \ |
| generated/devicememhistory_bridge/server_devicememhistory_bridge.o |
| endif |
| |
| ifeq ($(SUPPORT_SYNCTRACKING_BRIDGE),1) |
| ccflags-y += -I$(bridge_base)/synctracking_bridge |
| $(PVRSRV_MODNAME)-y += \ |
| generated/synctracking_bridge/server_synctracking_bridge.o |
| endif |
| |
| #ifeq ($(SUPPORT_SIGNAL_FILTER),1) |
| ccflags-y += -I$(bridge_base)/rgxsignals_bridge |
| $(PVRSRV_MODNAME)-y += generated/rgxsignals_bridge/server_rgxsignals_bridge.o |
| #endif |
| |
| ifeq ($(SUPPORT_FALLBACK_FENCE_SYNC),1) |
| ccflags-y += \ |
| -I$(bridge_base)/syncfallback_bridge |
| $(PVRSRV_MODNAME)-y += generated/syncfallback_bridge/server_syncfallback_bridge.o |
| endif |
| |
| |
| |
| |
| # Direct bridges |
| |
| $(PVRSRV_MODNAME)-y += \ |
| generated/mm_bridge/client_mm_direct_bridge.o \ |
| generated/sync_bridge/client_sync_direct_bridge.o \ |
| generated/htbuffer_bridge/client_htbuffer_direct_bridge.o \ |
| generated/cache_bridge/client_cache_direct_bridge.o \ |
| generated/pvrtl_bridge/client_pvrtl_direct_bridge.o |
| |
| ifeq ($(PDUMP),1) |
| $(PVRSRV_MODNAME)-y += generated/pdumpmm_bridge/client_pdumpmm_direct_bridge.o |
| endif |
| |
| ifeq ($(PVR_RI_DEBUG),1) |
| $(PVRSRV_MODNAME)-y += generated/ri_bridge/client_ri_direct_bridge.o |
| endif |
| |
| ifeq ($(PDUMP),1) |
| $(PVRSRV_MODNAME)-y += \ |
| generated/pdump_bridge/client_pdump_direct_bridge.o \ |
| generated/pdumpctrl_bridge/client_pdumpctrl_direct_bridge.o \ |
| generated/rgxpdump_bridge/client_rgxpdump_direct_bridge.o |
| endif |
| |
| ifeq ($(SUPPORT_PAGE_FAULT_DEBUG),1) |
| $(PVRSRV_MODNAME)-y += \ |
| generated/devicememhistory_bridge/client_devicememhistory_direct_bridge.o |
| endif |
| |
| ifeq ($(SUPPORT_SYNCTRACKING_BRIDGE),1) |
| $(PVRSRV_MODNAME)-y += \ |
| generated/synctracking_bridge/client_synctracking_direct_bridge.o |
| endif |
| |
| # Enable -Werror for all built object files (suppress for Fiasco.OC/L4Linux) |
| ifeq ($(CONFIG_L4),) |
| ifneq ($(W),1) |
| $(foreach _o,$(addprefix CFLAGS_,$(notdir $($(PVRSRV_MODNAME)-y))),$(eval $(_o) := -Werror)) |
| endif |
| endif |
| |
| # With certain build configurations, e.g., ARM, Werror, we get a build |
| # failure in the ftrace Linux kernel header. So disable the relevant check. |
| CFLAGS_trace_events.o := -Wno-missing-prototypes |
| |
| # Make sure the mem_utils are built in 'free standing' mode, so the compiler |
| # is not encouraged to call out to C library functions |
| CFLAGS_mem_utils.o := -ffreestanding |
| |
| # Chrome OS kernel adds some issues |
| ccflags-y += -Wno-ignored-qualifiers |
| |
| include $(TOP)/services/system/$(PVR_SYSTEM)/Kbuild.mk |