| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- ##############################################################################
- #
- # Copyright (c) 2005 - 2021 by Vivante Corp. All rights reserved.
- #
- # The material in this file is confidential and contains trade secrets
- # of Vivante Corporation. This is proprietary information owned by
- # Vivante Corporation. No part of this work may be disclosed,
- # reproduced, copied, transmitted, or used in any way for any purpose,
- # without the express written permission of Vivante Corporation.
- #
- ##############################################################################
- #
- # Linux build file for kernel HAL driver.
- #
- AQROOT = $(srctree)/drivers/soc/arkmicro/galcore
- include $(AQROOT)/config
- VIVANTE_ENABLE_3D := 0
- VIVANTE_ENABLE_VG := 0
- VIVANTE_ENABLE_2D := 1
- DEBUG := 0
- NO_DMA_COHERENT := 0
- USE_PLATFORM_DRIVER := 1
- 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)
- MODULE_NAME ?= galcore
- CUSTOMER_ALLOCATOR_OBJS ?=
- ALLOCATOR_ARRAY_H_LOCATION ?= $(OS_KERNEL_DIR)/allocator/default/
- SOC_PLATFORM_LOCATION ?= $(OS_KERNEL_DIR)/platform/$(soc_vendor)
- # Set common platform driver source
- SOC_PLATFORM_OBJS ?= $(SOC_PLATFORM_LOCATION)/gc_hal_kernel_platform_$(soc_board).o
- # Include platform config if exists.
- -include $(AQROOT)/$(SOC_PLATFORM_LOCATION)/gc_hal_kernel_platform_$(soc_board).config
- ifeq ($(CONFIG_KASAN),)
- EXTRA_CFLAGS += -Werror -Wno-implicit-fallthrough
- endif
- 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_debug.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
- # Source files for soc platform board
- OBJS += $(SOC_PLATFORM_OBJS)
- 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_db.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 \
- $(HAL_KERNEL_DIR)/gc_hal_kernel_preemption.o
- OBJS += $(ARCH_KERNEL_DIR)/gc_hal_kernel_context.o \
- $(ARCH_KERNEL_DIR)/gc_hal_kernel_hardware.o \
- $(ARCH_KERNEL_DIR)/gc_hal_kernel_hardware_func.o \
- $(ARCH_KERNEL_DIR)/gc_hal_kernel_hardware_func_flop_reset.o \
- $(ARCH_KERNEL_DIR)/gc_hal_kernel_hardware_async_fe.o \
- $(ARCH_KERNEL_DIR)/gc_hal_kernel_hardware_mc_fe.o \
- $(ARCH_KERNEL_DIR)/gc_hal_kernel_hardware_waitlink_fe.o
- ifeq ($(VIVANTE_ENABLE_3D), 1)
- OBJS += $(ARCH_KERNEL_DIR)/gc_hal_kernel_recorder.o
- 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
- EXTRA_CFLAGS += -DgcdLINUX_SYNC_FILE=1
- OBJS += $(OS_KERNEL_DIR)/gc_hal_kernel_sync.o
- else
- ifneq ($(CONFIG_SYNC_FILE),)
- EXTRA_CFLAGS += -DgcdLINUX_SYNC_FILE=1
- 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) M=`pwd` modules
- clean:
- @rm -rf $(OBJS)
- @rm -rf modules.order Module.symvers .tmp_versions
- @find $(AQROOT) -name ".gc_*.cmd" | xargs rm -f
- @rm -f $(MODULE_NAME).ko $(MODULE_NAME).o $(MODULE_NAME).mod.[co] .galcore.*.cmd
- 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 ($(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), )
- EXTRA_CFLAGS += -DgcdENABLE_DRM=$(VIVANTE_ENABLE_DRM)
- 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/
- EXTRA_CFLAGS += -I$(AQROOT)/$(SOC_PLATFORM_LOCATION)
- 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_ARK_GALCORE) = $(MODULE_NAME).o
- $(MODULE_NAME)-objs = $(OBJS)
- endif
|