diff options
Diffstat (limited to 'drivers/mxc/gpu-viv/Kbuild')
-rw-r--r-- | drivers/mxc/gpu-viv/Kbuild | 334 |
1 files changed, 334 insertions, 0 deletions
diff --git a/drivers/mxc/gpu-viv/Kbuild b/drivers/mxc/gpu-viv/Kbuild new file mode 100644 index 000000000000..cf795c61c8ac --- /dev/null +++ b/drivers/mxc/gpu-viv/Kbuild @@ -0,0 +1,334 @@ +############################################################################## +# +# The MIT License (MIT) +# +# Copyright (c) 2014 - 2018 Vivante Corporation +# +# 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. +# +# 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. 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. +# +############################################################################## +# +# The GPL License (GPL) +# +# Copyright (C) 2014 - 2018 Vivante Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +############################################################################## +# +# Note: This software is released under dual MIT and GPL licenses. A +# recipient may use this file under the terms of either the MIT license or +# GPL License. If you wish to use only one license not the other, you can +# indicate your decision by deleting one of the above license notices in your +# version of this file. +# +############################################################################## + + +# +# Linux build file for kernel HAL driver. +# +AQROOT := $(srctree)/drivers/mxc/gpu-viv + +include $(AQROOT)/config + +soc_vendor := $(firstword $(subst -, ,$(SOC_PLATFORM))) +soc_board := $(lastword $(subst -, ,$(SOC_PLATFORM))) + +KERNEL_DIR ?= $(TOOL_DIR)/kernel + +OS_KERNEL_DIR := hal/os/linux/kernel +ARCH_KERNEL_DIR := hal/kernel/arch +ARCH_VG_KERNEL_DIR := hal/kernel/archvg +HAL_KERNEL_DIR := hal/kernel +TA_DIR := hal/security_v1 +HOST := $(shell hostname) + +# Include platform config if exists. +-include $(AQROOT)/$(OS_KERNEL_DIR)/platform/$(soc_vendor)/gc_hal_kernel_platform_$(soc_board).config + +MODULE_NAME ?= galcore +CUSTOMER_ALLOCATOR_OBJS ?= +ALLOCATOR_ARRAY_H_LOCATION ?= $(OS_KERNEL_DIR)/allocator/default/ + +EXTRA_CFLAGS += -Werror + +OBJS := $(OS_KERNEL_DIR)/gc_hal_kernel_device.o \ + $(OS_KERNEL_DIR)/gc_hal_kernel_linux.o \ + $(OS_KERNEL_DIR)/gc_hal_kernel_math.o \ + $(OS_KERNEL_DIR)/gc_hal_kernel_os.o \ + $(OS_KERNEL_DIR)/gc_hal_kernel_debugfs.o \ + $(OS_KERNEL_DIR)/gc_hal_kernel_allocator.o \ + $(OS_KERNEL_DIR)/allocator/default/gc_hal_kernel_allocator_user_memory.o \ + $(OS_KERNEL_DIR)/allocator/default/gc_hal_kernel_allocator_dma.o \ + $(OS_KERNEL_DIR)/allocator/default/gc_hal_kernel_allocator_gfp.o \ + $(OS_KERNEL_DIR)/allocator/default/gc_hal_kernel_allocator_reserved_mem.o \ + $(OS_KERNEL_DIR)/gc_hal_kernel_driver.o \ + $(OS_KERNEL_DIR)/platform/$(soc_vendor)/gc_hal_kernel_platform_$(soc_board).o + +ifneq ($(CONFIG_DMA_SHARED_BUFFER),) +OBJS += $(OS_KERNEL_DIR)/allocator/default/gc_hal_kernel_allocator_dmabuf.o +endif + +ifneq ($(CONFIG_IOMMU_SUPPORT),) +OBJS += $(OS_KERNEL_DIR)/gc_hal_kernel_iommu.o +endif + +ifneq ($(CONFIG_DRM),) +OBJS += $(OS_KERNEL_DIR)/gc_hal_kernel_drm.o +endif + +OBJS += $(HAL_KERNEL_DIR)/gc_hal_kernel.o \ + $(HAL_KERNEL_DIR)/gc_hal_kernel_command.o \ + $(HAL_KERNEL_DIR)/gc_hal_kernel_async_command.o \ + $(HAL_KERNEL_DIR)/gc_hal_kernel_db.o \ + $(HAL_KERNEL_DIR)/gc_hal_kernel_debug.o \ + $(HAL_KERNEL_DIR)/gc_hal_kernel_event.o \ + $(HAL_KERNEL_DIR)/gc_hal_kernel_heap.o \ + $(HAL_KERNEL_DIR)/gc_hal_kernel_mmu.o \ + $(HAL_KERNEL_DIR)/gc_hal_kernel_video_memory.o \ + $(HAL_KERNEL_DIR)/gc_hal_kernel_power.o \ + $(HAL_KERNEL_DIR)/gc_hal_kernel_security_v1.o + +OBJS += $(ARCH_KERNEL_DIR)/gc_hal_kernel_context.o \ + $(ARCH_KERNEL_DIR)/gc_hal_kernel_hardware.o + +ifeq ($(VIVANTE_ENABLE_3D), 1) +OBJS += $(ARCH_KERNEL_DIR)/gc_hal_kernel_recorder.o +endif + +ifneq ($(CONFIG_ARM64),) +VIVANTE_ENABLE_VG=0 +endif + +ifeq ($(VIVANTE_ENABLE_VG), 1) +OBJS +=\ + $(HAL_KERNEL_DIR)/gc_hal_kernel_vg.o\ + $(HAL_KERNEL_DIR)/gc_hal_kernel_command_vg.o\ + $(HAL_KERNEL_DIR)/gc_hal_kernel_interrupt_vg.o\ + $(HAL_KERNEL_DIR)/gc_hal_kernel_mmu_vg.o\ + $(ARCH_VG_KERNEL_DIR)/gc_hal_kernel_hardware_command_vg.o\ + $(ARCH_VG_KERNEL_DIR)/gc_hal_kernel_hardware_vg.o +endif + +ifneq ($(CONFIG_SYNC),) +EXTRA_CFLAGS += -Idrivers/staging/android + +OBJS += $(OS_KERNEL_DIR)/gc_hal_kernel_sync.o +else + ifneq ($(CONFIG_SYNC_FILE),) + OBJS += $(OS_KERNEL_DIR)/gc_hal_kernel_sync.o + endif +endif + +ifeq ($(SECURITY), 1) +OBJS += $(OS_KERNEL_DIR)/gc_hal_kernel_security_channel.o \ + $(HAL_KERNEL_DIR)/gc_hal_kernel_security.o +endif + +ifneq ($(CUSTOMER_ALLOCATOR_OBJS),) +OBJS += $(CUSTOMER_ALLOCATOR_OBJS) +endif + +OBJS += $(OS_KERNEL_DIR)/gc_hal_kernel_security_channel_emulator.o \ + $(TA_DIR)/gc_hal_ta.o \ + $(TA_DIR)/gc_hal_ta_hardware.o \ + $(TA_DIR)/gc_hal_ta_mmu.o \ + $(TA_DIR)/os/emulator/gc_hal_ta_emulator.o + +ifeq ($(KERNELRELEASE), ) + +.PHONY: all clean install + +# Define targets. +all: + @$(MAKE) V=$(V) ARCH=$(ARCH_TYPE) -C $(KERNEL_DIR) SUBDIRS=`pwd` modules + +clean: + @rm -rf $(OBJS) + @rm -rf modules.order Module.symvers .tmp_versions + @find $(AQROOT) -name ".gc_*.cmd" | xargs rm -f + +install: all + @mkdir -p $(SDK_DIR)/drivers + @cp $(MODULE_NAME).ko $(SDK_DIR)/drivers + +else + + +EXTRA_CFLAGS += -DLINUX -DDRIVER + +ifeq ($(FLAREON),1) +EXTRA_CFLAGS += -DFLAREON +endif + +ifeq ($(DEBUG), 1) +EXTRA_CFLAGS += -DDBG=1 -DDEBUG -D_DEBUG +else +EXTRA_CFLAGS += -DDBG=0 +endif + +ifeq ($(NO_DMA_COHERENT), 1) +EXTRA_CFLAGS += -DNO_DMA_COHERENT +endif + +ifeq ($(CONFIG_DOVE_GPU), 1) +EXTRA_CFLAGS += -DCONFIG_DOVE_GPU=1 +endif + +ifneq ($(USE_PLATFORM_DRIVER), 0) +EXTRA_CFLAGS += -DUSE_PLATFORM_DRIVER=1 +else +EXTRA_CFLAGS += -DUSE_PLATFORM_DRIVER=0 +endif + +EXTRA_CFLAGS += -DVIVANTE_PROFILER=1 +EXTRA_CFLAGS += -DVIVANTE_PROFILER_CONTEXT=1 + +ifeq ($(ENABLE_GPU_CLOCK_BY_DRIVER), 1) +EXTRA_CFLAGS += -DENABLE_GPU_CLOCK_BY_DRIVER=1 +else +EXTRA_CFLAGS += -DENABLE_GPU_CLOCK_BY_DRIVER=0 +endif + +ifeq ($(USE_NEW_LINUX_SIGNAL), 1) +EXTRA_CFLAGS += -DUSE_NEW_LINUX_SIGNAL=1 +else +EXTRA_CFLAGS += -DUSE_NEW_LINUX_SIGNAL=0 +endif + +ifeq ($(USE_LINUX_PCIE), 1) +EXTRA_CFLAGS += -DUSE_LINUX_PCIE=1 +else +EXTRA_CFLAGS += -DUSE_LINUX_PCIE=0 +endif + +ifeq ($(FORCE_ALL_VIDEO_MEMORY_CACHED), 1) +EXTRA_CFLAGS += -DgcdPAGED_MEMORY_CACHEABLE=1 +else +EXTRA_CFLAGS += -DgcdPAGED_MEMORY_CACHEABLE=0 +endif + +ifeq ($(NONPAGED_MEMORY_CACHEABLE), 1) +EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_CACHEABLE=1 +else +EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_CACHEABLE=0 +endif + +ifeq ($(NONPAGED_MEMORY_BUFFERABLE), 1) +EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_BUFFERABLE=1 +else +EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_BUFFERABLE=0 +endif + +ifeq ($(CACHE_FUNCTION_UNIMPLEMENTED), 1) +EXTRA_CFLAGS += -DgcdCACHE_FUNCTION_UNIMPLEMENTED=1 +else +EXTRA_CFLAGS += -DgcdCACHE_FUNCTION_UNIMPLEMENTED=0 +endif + +ifeq ($(VIVANTE_ENABLE_3D),0) +EXTRA_CFLAGS += -DgcdENABLE_3D=0 +else +EXTRA_CFLAGS += -DgcdENABLE_3D=1 +endif + +ifeq ($(VIVANTE_ENABLE_2D),0) +EXTRA_CFLAGS += -DgcdENABLE_2D=0 +else +EXTRA_CFLAGS += -DgcdENABLE_2D=1 +endif + +ifeq ($(VIVANTE_ENABLE_VG),0) +EXTRA_CFLAGS += -DgcdENABLE_VG=0 +else +EXTRA_CFLAGS += -DgcdENABLE_VG=1 +endif + +ifeq ($(USE_BANK_ALIGNMENT), 1) + EXTRA_CFLAGS += -DgcdENABLE_BANK_ALIGNMENT=1 + ifneq ($(BANK_BIT_START), 0) + ifneq ($(BANK_BIT_END), 0) + EXTRA_CFLAGS += -DgcdBANK_BIT_START=$(BANK_BIT_START) + EXTRA_CFLAGS += -DgcdBANK_BIT_END=$(BANK_BIT_END) + endif + endif + + ifneq ($(BANK_CHANNEL_BIT), 0) + EXTRA_CFLAGS += -DgcdBANK_CHANNEL_BIT=$(BANK_CHANNEL_BIT) + endif +endif + +ifeq ($(FPGA_BUILD), 1) +EXTRA_CFLAGS += -DgcdFPGA_BUILD=1 +else +EXTRA_CFLAGS += -DgcdFPGA_BUILD=0 +endif + +ifeq ($(SECURITY), 1) +EXTRA_CFLAGS += -DgcdSECURITY=1 +endif + +ifneq ($(CONFIG_DRM), ) + ifneq ($(CONFIG_ANDROID),) + EXTRA_CFLAGS += -DgcdENABLE_DRM=$(VIVANTE_ENABLE_DRM) + else + EXTRA_CFLAGS += -DgcdENABLE_DRM=0 + endif +else +EXTRA_CFLAGS += -DgcdENABLE_DRM=0 +endif + +EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel/inc +EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel +EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel/arch +EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel/inc +EXTRA_CFLAGS += -I$(AQROOT)/hal/os/linux/kernel +EXTRA_CFLAGS += -I$(AQROOT)/$(ALLOCATOR_ARRAY_H_LOCATION) +EXTRA_CFLAGS += -I$(AQROOT)/hal/security_v1/ + +ifneq ($(CONFIG_ARM), ) +EXTRA_CFLAGS += -Iarch/arm/mm +endif + +ifeq ($(VIVANTE_ENABLE_VG), 1) +EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel/archvg +endif + +EXTRA_CFLAGS += -DHOST=\"$(HOST)\" + +EXTRA_CFLAGS += -DgcdENABLE_TRUST_APPLICATION=1 + +obj-$(CONFIG_MXC_GPU_VIV) = $(MODULE_NAME).o + +$(MODULE_NAME)-objs = $(OBJS) + +endif |