13d0407baSopenharmony_ci# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 23d0407baSopenharmony_ci# 33d0407baSopenharmony_ci# (C) COPYRIGHT 2012-2021 ARM Limited. All rights reserved. 43d0407baSopenharmony_ci# 53d0407baSopenharmony_ci# This program is free software and is provided to you under the terms of the 63d0407baSopenharmony_ci# GNU General Public License version 2 as published by the Free Software 73d0407baSopenharmony_ci# Foundation, and any use by you of this program is subject to the terms 83d0407baSopenharmony_ci# of such GNU license. 93d0407baSopenharmony_ci# 103d0407baSopenharmony_ci# This program is distributed in the hope that it will be useful, 113d0407baSopenharmony_ci# but WITHOUT ANY WARRANTY; without even the implied warranty of 123d0407baSopenharmony_ci# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 133d0407baSopenharmony_ci# GNU General Public License for more details. 143d0407baSopenharmony_ci# 153d0407baSopenharmony_ci# You should have received a copy of the GNU General Public License 163d0407baSopenharmony_ci# along with this program; if not, you can access it online at 173d0407baSopenharmony_ci# http://www.gnu.org/licenses/gpl-2.0.html. 183d0407baSopenharmony_ci# 193d0407baSopenharmony_ci# 203d0407baSopenharmony_ci 213d0407baSopenharmony_ci# make $(src) as absolute path if it is not already, by prefixing $(srctree) 223d0407baSopenharmony_ci# This is to prevent any build issue due to wrong path. 233d0407baSopenharmony_cisrc:=$(if $(patsubst /%,,$(src)),$(srctree)/$(src),$(src)) 243d0407baSopenharmony_ci 253d0407baSopenharmony_ci# 263d0407baSopenharmony_ci# Prevent misuse when Kernel configurations are not present by default 273d0407baSopenharmony_ci# in out-of-tree builds 283d0407baSopenharmony_ci# 293d0407baSopenharmony_ciifneq ($(CONFIG_ANDROID),n) 303d0407baSopenharmony_ciifeq ($(CONFIG_GPU_TRACEPOINTS),n) 313d0407baSopenharmony_ci $(error CONFIG_GPU_TRACEPOINTS must be set in Kernel configuration) 323d0407baSopenharmony_ciendif 333d0407baSopenharmony_ciendif 343d0407baSopenharmony_ci 353d0407baSopenharmony_ciifeq ($(CONFIG_DMA_SHARED_BUFFER),n) 363d0407baSopenharmony_ci $(error CONFIG_DMA_SHARED_BUFFER must be set in Kernel configuration) 373d0407baSopenharmony_ciendif 383d0407baSopenharmony_ci 393d0407baSopenharmony_ciifeq ($(CONFIG_PM_DEVFREQ),n) 403d0407baSopenharmony_ci $(error CONFIG_PM_DEVFREQ must be set in Kernel configuration) 413d0407baSopenharmony_ciendif 423d0407baSopenharmony_ci 433d0407baSopenharmony_ciifeq ($(CONFIG_DEVFREQ_THERMAL),n) 443d0407baSopenharmony_ci $(error CONFIG_DEVFREQ_THERMAL must be set in Kernel configuration) 453d0407baSopenharmony_ciendif 463d0407baSopenharmony_ci 473d0407baSopenharmony_ciifeq ($(CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND),n) 483d0407baSopenharmony_ci $(error CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND must be set in Kernel configuration) 493d0407baSopenharmony_ciendif 503d0407baSopenharmony_ci 513d0407baSopenharmony_ciifeq ($(CONFIG_FW_LOADER), n) 523d0407baSopenharmony_ci $(error CONFIG_FW_LOADER must be set in Kernel configuration) 533d0407baSopenharmony_ciendif 543d0407baSopenharmony_ci 553d0407baSopenharmony_ciifeq ($(CONFIG_MALI_PRFCNT_SET_SELECT_VIA_DEBUG_FS), y) 563d0407baSopenharmony_ci ifneq ($(CONFIG_DEBUG_FS), y) 573d0407baSopenharmony_ci $(error CONFIG_MALI_PRFCNT_SET_SELECT_VIA_DEBUG_FS depends on CONFIG_DEBUG_FS to be set in Kernel configuration) 583d0407baSopenharmony_ci endif 593d0407baSopenharmony_ciendif 603d0407baSopenharmony_ci 613d0407baSopenharmony_ciifeq ($(CONFIG_MALI_BIFROST_FENCE_DEBUG), y) 623d0407baSopenharmony_ci ifneq ($(CONFIG_SYNC), y) 633d0407baSopenharmony_ci ifneq ($(CONFIG_SYNC_FILE), y) 643d0407baSopenharmony_ci $(error CONFIG_MALI_BIFROST_FENCE_DEBUG depends on CONFIG_SYNC || CONFIG_SYNC_FILE to be set in Kernel configuration) 653d0407baSopenharmony_ci endif 663d0407baSopenharmony_ci endif 673d0407baSopenharmony_ciendif 683d0407baSopenharmony_ci 693d0407baSopenharmony_ci# 703d0407baSopenharmony_ci# Configurations 713d0407baSopenharmony_ci# 723d0407baSopenharmony_ci 733d0407baSopenharmony_ci# Driver version string which is returned to userspace via an ioctl 743d0407baSopenharmony_ciMALI_RELEASE_NAME ?= '"g10p0-01eac0"' 753d0407baSopenharmony_ci# Set up defaults if not defined by build system 763d0407baSopenharmony_ciifeq ($(CONFIG_MALI_BIFROST_DEBUG), y) 773d0407baSopenharmony_ci MALI_UNIT_TEST = 1 783d0407baSopenharmony_ci MALI_CUSTOMER_RELEASE ?= 0 793d0407baSopenharmony_cielse 803d0407baSopenharmony_ci MALI_UNIT_TEST ?= 0 813d0407baSopenharmony_ci MALI_CUSTOMER_RELEASE ?= 1 823d0407baSopenharmony_ciendif 833d0407baSopenharmony_ciMALI_COVERAGE ?= 0 843d0407baSopenharmony_ci 853d0407baSopenharmony_ci# Kconfig passes in the name with quotes for in-tree builds - remove them. 863d0407baSopenharmony_ciMALI_PLATFORM_DIR := $(shell echo $(CONFIG_MALI_PLATFORM_NAME)) 873d0407baSopenharmony_ci 883d0407baSopenharmony_ciifeq ($(CONFIG_MALI_CSF_SUPPORT),y) 893d0407baSopenharmony_ci MALI_JIT_PRESSURE_LIMIT_BASE = 0 903d0407baSopenharmony_ci MALI_USE_CSF = 1 913d0407baSopenharmony_cielse 923d0407baSopenharmony_ci MALI_JIT_PRESSURE_LIMIT_BASE ?= 1 933d0407baSopenharmony_ci MALI_USE_CSF ?= 0 943d0407baSopenharmony_ciendif 953d0407baSopenharmony_ci 963d0407baSopenharmony_ci 973d0407baSopenharmony_ciifneq ($(CONFIG_MALI_KUTF), n) 983d0407baSopenharmony_ci MALI_KERNEL_TEST_API ?= 1 993d0407baSopenharmony_cielse 1003d0407baSopenharmony_ci MALI_KERNEL_TEST_API ?= 0 1013d0407baSopenharmony_ciendif 1023d0407baSopenharmony_ci 1033d0407baSopenharmony_ci# Experimental features (corresponding -D definition should be appended to 1043d0407baSopenharmony_ci# ccflags-y below, e.g. for MALI_EXPERIMENTAL_FEATURE, 1053d0407baSopenharmony_ci# -DMALI_EXPERIMENTAL_FEATURE=$(MALI_EXPERIMENTAL_FEATURE) should be appended) 1063d0407baSopenharmony_ci# 1073d0407baSopenharmony_ci# Experimental features must default to disabled, e.g.: 1083d0407baSopenharmony_ci# MALI_EXPERIMENTAL_FEATURE ?= 0 1093d0407baSopenharmony_ciMALI_INCREMENTAL_RENDERING ?= 0 1103d0407baSopenharmony_ci 1113d0407baSopenharmony_ci# 1123d0407baSopenharmony_ci# ccflags 1133d0407baSopenharmony_ci# 1143d0407baSopenharmony_ciccflags-y = \ 1153d0407baSopenharmony_ci -DMALI_CUSTOMER_RELEASE=$(MALI_CUSTOMER_RELEASE) \ 1163d0407baSopenharmony_ci -DMALI_USE_CSF=$(MALI_USE_CSF) \ 1173d0407baSopenharmony_ci -DMALI_KERNEL_TEST_API=$(MALI_KERNEL_TEST_API) \ 1183d0407baSopenharmony_ci -DMALI_UNIT_TEST=$(MALI_UNIT_TEST) \ 1193d0407baSopenharmony_ci -DMALI_COVERAGE=$(MALI_COVERAGE) \ 1203d0407baSopenharmony_ci -DMALI_RELEASE_NAME=$(MALI_RELEASE_NAME) \ 1213d0407baSopenharmony_ci -DMALI_JIT_PRESSURE_LIMIT_BASE=$(MALI_JIT_PRESSURE_LIMIT_BASE) \ 1223d0407baSopenharmony_ci -DMALI_INCREMENTAL_RENDERING=$(MALI_INCREMENTAL_RENDERING) \ 1233d0407baSopenharmony_ci -DMALI_PLATFORM_DIR=$(MALI_PLATFORM_DIR) 1243d0407baSopenharmony_ci 1253d0407baSopenharmony_ci 1263d0407baSopenharmony_ciifeq ($(KBUILD_EXTMOD),) 1273d0407baSopenharmony_ci# in-tree 1283d0407baSopenharmony_ci ccflags-y +=-DMALI_KBASE_PLATFORM_PATH=../../$(src)/platform/$(CONFIG_MALI_PLATFORM_NAME) 1293d0407baSopenharmony_cielse 1303d0407baSopenharmony_ci# out-of-tree 1313d0407baSopenharmony_ci ccflags-y +=-DMALI_KBASE_PLATFORM_PATH=$(src)/platform/$(CONFIG_MALI_PLATFORM_NAME) 1323d0407baSopenharmony_ciendif 1333d0407baSopenharmony_ci 1343d0407baSopenharmony_ciccflags-y += \ 1353d0407baSopenharmony_ci -I$(srctree)/include/linux \ 1363d0407baSopenharmony_ci -I$(srctree)/drivers/staging/android \ 1373d0407baSopenharmony_ci -I$(src) \ 1383d0407baSopenharmony_ci -I$(src)/platform/$(MALI_PLATFORM_DIR) \ 1393d0407baSopenharmony_ci -I$(src)/../../../base \ 1403d0407baSopenharmony_ci -I$(src)/../../../../include 1413d0407baSopenharmony_ci 1423d0407baSopenharmony_cisubdir-ccflags-y += $(ccflags-y) 1433d0407baSopenharmony_ci 1443d0407baSopenharmony_ci# 1453d0407baSopenharmony_ci# Kernel Modules 1463d0407baSopenharmony_ci# 1473d0407baSopenharmony_ciobj-$(CONFIG_MALI_BIFROST) += bifrost_kbase.o 1483d0407baSopenharmony_ciobj-$(CONFIG_MALI_KUTF) += tests/ 1493d0407baSopenharmony_ci 1503d0407baSopenharmony_cibifrost_kbase-y := \ 1513d0407baSopenharmony_ci mali_kbase_cache_policy.o \ 1523d0407baSopenharmony_ci mali_kbase_ccswe.o \ 1533d0407baSopenharmony_ci mali_kbase_mem.o \ 1543d0407baSopenharmony_ci mali_kbase_mem_pool_group.o \ 1553d0407baSopenharmony_ci mali_kbase_native_mgm.o \ 1563d0407baSopenharmony_ci mali_kbase_ctx_sched.o \ 1573d0407baSopenharmony_ci mali_kbase_gpuprops.o \ 1583d0407baSopenharmony_ci mali_kbase_pm.o \ 1593d0407baSopenharmony_ci mali_kbase_config.o \ 1603d0407baSopenharmony_ci mali_kbase_kinstr_prfcnt.o \ 1613d0407baSopenharmony_ci mali_kbase_vinstr.o \ 1623d0407baSopenharmony_ci mali_kbase_hwcnt.o \ 1633d0407baSopenharmony_ci mali_kbase_hwcnt_gpu.o \ 1643d0407baSopenharmony_ci mali_kbase_hwcnt_gpu_narrow.o \ 1653d0407baSopenharmony_ci mali_kbase_hwcnt_types.o \ 1663d0407baSopenharmony_ci mali_kbase_hwcnt_virtualizer.o \ 1673d0407baSopenharmony_ci mali_kbase_softjobs.o \ 1683d0407baSopenharmony_ci mali_kbase_hw.o \ 1693d0407baSopenharmony_ci mali_kbase_debug.o \ 1703d0407baSopenharmony_ci mali_kbase_gpu_memory_debugfs.o \ 1713d0407baSopenharmony_ci mali_kbase_mem_linux.o \ 1723d0407baSopenharmony_ci mali_kbase_core_linux.o \ 1733d0407baSopenharmony_ci mali_kbase_mem_profile_debugfs.o \ 1743d0407baSopenharmony_ci mali_kbase_disjoint_events.o \ 1753d0407baSopenharmony_ci mali_kbase_debug_mem_view.o \ 1763d0407baSopenharmony_ci mali_kbase_smc.o \ 1773d0407baSopenharmony_ci mali_kbase_mem_pool.o \ 1783d0407baSopenharmony_ci mali_kbase_mem_pool_debugfs.o \ 1793d0407baSopenharmony_ci mali_kbase_debugfs_helper.o \ 1803d0407baSopenharmony_ci mali_kbase_strings.o \ 1813d0407baSopenharmony_ci mali_kbase_as_fault_debugfs.o \ 1823d0407baSopenharmony_ci mali_kbase_regs_history_debugfs.o \ 1833d0407baSopenharmony_ci mali_kbase_dvfs_debugfs.o \ 1843d0407baSopenharmony_ci mali_power_gpu_frequency_trace.o \ 1853d0407baSopenharmony_ci mali_kbase_trace_gpu_mem.o \ 1863d0407baSopenharmony_ci mali_kbase_pbha.o 1873d0407baSopenharmony_ci 1883d0407baSopenharmony_cibifrost_kbase-$(CONFIG_DEBUG_FS) += mali_kbase_pbha_debugfs.o 1893d0407baSopenharmony_ci 1903d0407baSopenharmony_cibifrost_kbase-$(CONFIG_MALI_CINSTR_GWT) += mali_kbase_gwt.o 1913d0407baSopenharmony_ci 1923d0407baSopenharmony_cibifrost_kbase-$(CONFIG_SYNC) += \ 1933d0407baSopenharmony_ci mali_kbase_sync_android.o \ 1943d0407baSopenharmony_ci mali_kbase_sync_common.o 1953d0407baSopenharmony_ci 1963d0407baSopenharmony_cibifrost_kbase-$(CONFIG_SYNC_FILE) += \ 1973d0407baSopenharmony_ci mali_kbase_fence_ops.o \ 1983d0407baSopenharmony_ci mali_kbase_sync_file.o \ 1993d0407baSopenharmony_ci mali_kbase_sync_common.o 2003d0407baSopenharmony_ci 2013d0407baSopenharmony_ciifeq ($(CONFIG_MALI_CSF_SUPPORT),y) 2023d0407baSopenharmony_ci bifrost_kbase-y += \ 2033d0407baSopenharmony_ci mali_kbase_hwcnt_backend_csf.o \ 2043d0407baSopenharmony_ci mali_kbase_hwcnt_watchdog_if_timer.o \ 2053d0407baSopenharmony_ci mali_kbase_hwcnt_backend_csf_if_fw.o 2063d0407baSopenharmony_cielse 2073d0407baSopenharmony_ci bifrost_kbase-y += \ 2083d0407baSopenharmony_ci mali_kbase_jm.o \ 2093d0407baSopenharmony_ci mali_kbase_hwcnt_backend_jm.o \ 2103d0407baSopenharmony_ci mali_kbase_dummy_job_wa.o \ 2113d0407baSopenharmony_ci mali_kbase_debug_job_fault.o \ 2123d0407baSopenharmony_ci mali_kbase_event.o \ 2133d0407baSopenharmony_ci mali_kbase_jd.o \ 2143d0407baSopenharmony_ci mali_kbase_jd_debugfs.o \ 2153d0407baSopenharmony_ci mali_kbase_js.o \ 2163d0407baSopenharmony_ci mali_kbase_js_ctx_attr.o \ 2173d0407baSopenharmony_ci mali_kbase_kinstr_jm.o 2183d0407baSopenharmony_ci 2193d0407baSopenharmony_ci bifrost_kbase-$(CONFIG_MALI_BIFROST_DMA_FENCE) += \ 2203d0407baSopenharmony_ci mali_kbase_fence_ops.o \ 2213d0407baSopenharmony_ci mali_kbase_dma_fence.o \ 2223d0407baSopenharmony_ci mali_kbase_fence.o 2233d0407baSopenharmony_ci 2243d0407baSopenharmony_ci bifrost_kbase-$(CONFIG_SYNC_FILE) += \ 2253d0407baSopenharmony_ci mali_kbase_fence_ops.o \ 2263d0407baSopenharmony_ci mali_kbase_fence.o 2273d0407baSopenharmony_ciendif 2283d0407baSopenharmony_ci 2293d0407baSopenharmony_ci 2303d0407baSopenharmony_ciINCLUDE_SUBDIR = \ 2313d0407baSopenharmony_ci $(src)/context/Kbuild \ 2323d0407baSopenharmony_ci $(src)/debug/Kbuild \ 2333d0407baSopenharmony_ci $(src)/device/Kbuild \ 2343d0407baSopenharmony_ci $(src)/backend/gpu/Kbuild \ 2353d0407baSopenharmony_ci $(src)/mmu/Kbuild \ 2363d0407baSopenharmony_ci $(src)/tl/Kbuild \ 2373d0407baSopenharmony_ci $(src)/gpu/Kbuild \ 2383d0407baSopenharmony_ci $(src)/thirdparty/Kbuild \ 2393d0407baSopenharmony_ci $(src)/platform/$(MALI_PLATFORM_DIR)/Kbuild 2403d0407baSopenharmony_ci 2413d0407baSopenharmony_ciifeq ($(CONFIG_MALI_CSF_SUPPORT),y) 2423d0407baSopenharmony_ci INCLUDE_SUBDIR += $(src)/csf/Kbuild 2433d0407baSopenharmony_ciendif 2443d0407baSopenharmony_ci 2453d0407baSopenharmony_ciifeq ($(CONFIG_MALI_ARBITER_SUPPORT),y) 2463d0407baSopenharmony_ci INCLUDE_SUBDIR += $(src)/arbiter/Kbuild 2473d0407baSopenharmony_ciendif 2483d0407baSopenharmony_ci 2493d0407baSopenharmony_ciifeq ($(CONFIG_MALI_BIFROST_DEVFREQ),y) 2503d0407baSopenharmony_ci ifeq ($(CONFIG_DEVFREQ_THERMAL),y) 2513d0407baSopenharmony_ci INCLUDE_SUBDIR += $(src)/ipa/Kbuild 2523d0407baSopenharmony_ci endif 2533d0407baSopenharmony_ciendif 2543d0407baSopenharmony_ci 2553d0407baSopenharmony_ciifeq ($(KBUILD_EXTMOD),) 2563d0407baSopenharmony_ci# in-tree 2573d0407baSopenharmony_ci -include $(INCLUDE_SUBDIR) 2583d0407baSopenharmony_cielse 2593d0407baSopenharmony_ci# out-of-tree 2603d0407baSopenharmony_ci include $(INCLUDE_SUBDIR) 2613d0407baSopenharmony_ciendif 262