1 ##############################################################################
3 # Copyright (C) 2005 - 2013 by Vivante Corp.
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the license, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not write to the Free Software
17 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 ##############################################################################
23 # Linux build file for kernel HAL driver.
26 AQROOT := $(srctree)/drivers/mxc/gpu-viv
27 AQARCH := $(AQROOT)/arch/XAQ2
28 AQVGARCH := $(AQROOT)/arch/GC350
30 include $(AQROOT)/config
32 KERNEL_DIR ?= $(TOOL_DIR)/kernel
34 OS_KERNEL_DIR := hal/os/linux/kernel
35 ARCH_KERNEL_DIR := arch/$(notdir $(AQARCH))/hal/kernel
36 ARCH_VG_KERNEL_DIR := arch/$(notdir $(AQVGARCH))/hal/kernel
37 HAL_KERNEL_DIR := hal/kernel
39 EXTRA_CFLAGS += -Werror
41 OBJS := $(OS_KERNEL_DIR)/gc_hal_kernel_device.o \
42 $(OS_KERNEL_DIR)/gc_hal_kernel_driver.o \
43 $(OS_KERNEL_DIR)/gc_hal_kernel_linux.o \
44 $(OS_KERNEL_DIR)/gc_hal_kernel_math.o \
45 $(OS_KERNEL_DIR)/gc_hal_kernel_os.o \
46 $(OS_KERNEL_DIR)/gc_hal_kernel_debugfs.o
48 OBJS += $(HAL_KERNEL_DIR)/gc_hal_kernel.o \
49 $(HAL_KERNEL_DIR)/gc_hal_kernel_command.o \
50 $(HAL_KERNEL_DIR)/gc_hal_kernel_db.o \
51 $(HAL_KERNEL_DIR)/gc_hal_kernel_debug.o \
52 $(HAL_KERNEL_DIR)/gc_hal_kernel_event.o \
53 $(HAL_KERNEL_DIR)/gc_hal_kernel_heap.o \
54 $(HAL_KERNEL_DIR)/gc_hal_kernel_mmu.o \
55 $(HAL_KERNEL_DIR)/gc_hal_kernel_video_memory.o \
56 $(HAL_KERNEL_DIR)/gc_hal_kernel_power.o
58 OBJS += $(ARCH_KERNEL_DIR)/gc_hal_kernel_context.o \
59 $(ARCH_KERNEL_DIR)/gc_hal_kernel_hardware.o
61 ifeq ($(VIVANTE_ENABLE_VG), 1)
63 $(HAL_KERNEL_DIR)/gc_hal_kernel_vg.o\
64 $(HAL_KERNEL_DIR)/gc_hal_kernel_command_vg.o\
65 $(HAL_KERNEL_DIR)/gc_hal_kernel_interrupt_vg.o\
66 $(HAL_KERNEL_DIR)/gc_hal_kernel_mmu_vg.o\
67 $(ARCH_VG_KERNEL_DIR)/gc_hal_kernel_hardware_command_vg.o\
68 $(ARCH_VG_KERNEL_DIR)/gc_hal_kernel_hardware_vg.o
71 ifneq ($(CONFIG_SYNC),)
72 OBJS += $(OS_KERNEL_DIR)/gc_hal_kernel_sync.o
75 ifeq ($(KERNELRELEASE), )
77 .PHONY: all clean install
81 @make V=$(V) ARCH=$(ARCH_TYPE) -C $(KERNEL_DIR) SUBDIRS=`pwd` modules
85 @rm -rf modules.order Module.symvers
86 @find $(AQROOT) -name ".gc_*.cmd" | xargs rm -f
89 @mkdir -p $(SDK_DIR)/drivers
94 EXTRA_CFLAGS += -DLINUX -DDRIVER
96 ifeq ($(ENUM_WORKAROUND), 1)
97 EXTRA_CFLAGS += -DENUM_WORKAROUND=1
99 EXTRA_CFLAGS += -DENUM_WORKAROUND=0
103 EXTRA_CFLAGS += -DFLAREON
107 EXTRA_CFLAGS += -DDBG=1 -DDEBUG -D_DEBUG
109 EXTRA_CFLAGS += -DDBG=0
112 ifeq ($(NO_DMA_COHERENT), 1)
113 EXTRA_CFLAGS += -DNO_DMA_COHERENT
116 ifeq ($(CONFIG_DOVE_GPU), 1)
117 EXTRA_CFLAGS += -DCONFIG_DOVE_GPU=1
120 ifneq ($(USE_PLATFORM_DRIVER), 0)
121 EXTRA_CFLAGS += -DUSE_PLATFORM_DRIVER=1
123 EXTRA_CFLAGS += -DUSE_PLATFORM_DRIVER=0
127 EXTRA_CFLAGS += -DVIVANTE_PROFILER=1
128 EXTRA_CFLAGS += -DVIVANTE_PROFILER_CONTEXT=1
132 EXTRA_CFLAGS += -DANDROID=1
135 ifeq ($(ENABLE_GPU_CLOCK_BY_DRIVER), 1)
136 EXTRA_CFLAGS += -DENABLE_GPU_CLOCK_BY_DRIVER=1
138 EXTRA_CFLAGS += -DENABLE_GPU_CLOCK_BY_DRIVER=0
141 ifeq ($(USE_NEW_LINUX_SIGNAL), 1)
142 EXTRA_CFLAGS += -DUSE_NEW_LINUX_SIGNAL=1
144 EXTRA_CFLAGS += -DUSE_NEW_LINUX_SIGNAL=0
147 ifeq ($(NO_USER_DIRECT_ACCESS_FROM_KERNEL), 1)
148 EXTRA_CFLAGS += -DNO_USER_DIRECT_ACCESS_FROM_KERNEL=1
150 EXTRA_CFLAGS += -DNO_USER_DIRECT_ACCESS_FROM_KERNEL=0
153 ifeq ($(FORCE_ALL_VIDEO_MEMORY_CACHED), 1)
154 EXTRA_CFLAGS += -DgcdPAGED_MEMORY_CACHEABLE=1
156 EXTRA_CFLAGS += -DgcdPAGED_MEMORY_CACHEABLE=0
159 ifeq ($(NONPAGED_MEMORY_CACHEABLE), 1)
160 EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_CACHEABLE=1
162 EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_CACHEABLE=0
165 ifeq ($(NONPAGED_MEMORY_BUFFERABLE), 1)
166 EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_BUFFERABLE=1
168 EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_BUFFERABLE=0
171 ifeq ($(CACHE_FUNCTION_UNIMPLEMENTED), 1)
172 EXTRA_CFLAGS += -DgcdCACHE_FUNCTION_UNIMPLEMENTED=1
174 EXTRA_CFLAGS += -DgcdCACHE_FUNCTION_UNIMPLEMENTED=0
177 ifeq ($(SUPPORT_SWAP_RECTANGLE), 1)
178 EXTRA_CFLAGS += -DgcdSUPPORT_SWAP_RECTANGLE=1
180 EXTRA_CFLAGS += -DgcdSUPPORT_SWAP_RECTANGLE=0
183 ifeq ($(VIVANTE_ENABLE_VG), 1)
184 EXTRA_CFLAGS += -DgcdENABLE_VG=1
186 EXTRA_CFLAGS += -DgcdENABLE_VG=0
189 ifeq ($(CONFIG_SMP), y)
190 EXTRA_CFLAGS += -DgcdSMP=1
192 EXTRA_CFLAGS += -DgcdSMP=0
195 ifeq ($(VIVANTE_NO_3D),1)
196 EXTRA_CFLAGS += -DVIVANTE_NO_3D
199 ifeq ($(ENABLE_OUTER_CACHE_PATCH), 1)
200 EXTRA_CFLAGS += -DgcdENABLE_OUTER_CACHE_PATCH=1
202 EXTRA_CFLAGS += -DgcdENABLE_OUTER_CACHE_PATCH=0
205 ifeq ($(USE_BANK_ALIGNMENT), 1)
206 EXTRA_CFLAGS += -DgcdENABLE_BANK_ALIGNMENT=1
207 ifneq ($(BANK_BIT_START), 0)
208 ifneq ($(BANK_BIT_END), 0)
209 EXTRA_CFLAGS += -DgcdBANK_BIT_START=$(BANK_BIT_START)
210 EXTRA_CFLAGS += -DgcdBANK_BIT_END=$(BANK_BIT_END)
214 ifneq ($(BANK_CHANNEL_BIT), 0)
215 EXTRA_CFLAGS += -DgcdBANK_CHANNEL_BIT=$(BANK_CHANNEL_BIT)
219 ifneq ($(CONFIG_SYNC),)
220 EXTRA_CFLAGS += -DgcdANDROID_NATIVE_FENCE_SYNC=1
223 EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel/inc
224 EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel
225 EXTRA_CFLAGS += -I$(AQARCH)/hal/kernel
226 EXTRA_CFLAGS += -I$(AQROOT)/hal/os/linux/kernel
228 ifeq ($(VIVANTE_ENABLE_VG), 1)
229 EXTRA_CFLAGS += -I$(AQVGARCH)/hal/kernel
232 obj-$(CONFIG_MXC_GPU_VIV) += galcore.o
234 galcore-objs := $(OBJS)