From 36065340e13e6888e7399a1e5b5b11045e8474c6 Mon Sep 17 00:00:00 2001 From: Tomba Date: Sun, 1 Feb 2009 15:39:15 +0200 Subject: [PATCH] New build system for SGX --- Kbuild | 53 ++++++++++ Makefile | 151 +++++++++++++++++++++++++++ services4/3rdparty/dc_omap3430_linux/Kbuild | 8 ++ 3 files changed, 212 insertions(+), 0 deletions(-) create mode 100644 Kbuild create mode 100644 Makefile create mode 100644 services4/3rdparty/dc_omap3430_linux/Kbuild diff --git a/Kbuild b/Kbuild new file mode 100644 index 0000000..19f9a24 --- /dev/null +++ b/Kbuild @@ -0,0 +1,53 @@ +obj-m := pvrsrvkm.o + +FILES := \ +services4/srvkm/common/queue.c \ +services4/srvkm/common/hash.c \ +services4/srvkm/common/perproc.c \ +services4/srvkm/common/mem.c \ +services4/srvkm/common/power.c \ +services4/srvkm/common/deviceclass.c \ +services4/srvkm/common/metrics.c \ +services4/srvkm/common/resman.c \ +services4/srvkm/common/buffer_manager.c \ +services4/srvkm/common/pvrsrv.c \ +services4/srvkm/common/handle.c \ +services4/srvkm/common/ra.c \ +services4/srvkm/common/devicemem.c \ +services4/srvkm/env/linux/pvr_debug.c \ +services4/srvkm/env/linux/mm.c \ +services4/srvkm/env/linux/mutex.c \ +services4/srvkm/env/linux/mmap.c \ +services4/srvkm/env/linux/module.c \ +services4/srvkm/env/linux/proc.c \ +services4/srvkm/env/linux/event.c \ +services4/srvkm/env/linux/osfunc.c \ +services4/srvkm/env/linux/pvr_bridge_k.c \ +services4/srvkm/env/linux/pdump.c \ +services4/srvkm/devices/sgx/sgxtransfer.c \ +services4/srvkm/devices/sgx/sgxinit.c \ +services4/srvkm/devices/sgx/sgxutils.c \ +services4/srvkm/devices/sgx/pb.c \ +services4/srvkm/devices/sgx/sgxkick.c \ +services4/srvkm/devices/sgx/mmu.c \ +services4/srvkm/devices/sgx/sgxreset.c \ +services4/srvkm/bridged/bridged_pvr_bridge.c \ +services4/system/omap3430/sysutils_linux.c \ +services4/system/omap3430/sysconfig.c + +EXTRA_CFLAGS += -I$(src)/include4 +EXTRA_CFLAGS += -I$(src)/services4/include +EXTRA_CFLAGS += -I$(src)/services4/srvkm/include +EXTRA_CFLAGS += -I$(src)/services4/srvkm/hwdefs +EXTRA_CFLAGS += -I$(src)/services4/srvkm/bridged +EXTRA_CFLAGS += -I$(src)/services4/srvkm/devices/sgx +EXTRA_CFLAGS += -I$(src)/services4/srvkm/env/linux +EXTRA_CFLAGS += -I$(src)/services4/system/include +EXTRA_CFLAGS += -I$(src)/services4/system/omap3430 + +EXTRA_CFLAGS += $(ALL_CFLAGS) + +pvrsrvkm-y := $(FILES:.c=.o) + +obj-y := services4/3rdparty/dc_omap3430_linux/ + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..74e9761 --- /dev/null +++ b/Makefile @@ -0,0 +1,151 @@ +export DISCIMAGE = /tmp/asdada +export KERNELDIR = /home/tomba/work/linux + +export BUILD = debug + +export KERNELDIR = /home/tomba/work/linux +export KBUILD_EXTRA_SYMBOLS = `pwd`/services4/srvkm/env/linux/kbuild/Module.symvers + +SGXCORE = 530 +CORE = -DSGX530 -DSUPPORT_SGX530 -DSGX_CORE_REV=103 + +SUPPORT_SGX = 1 +SUPPORT_HW_RECOVERY = 1 +SUPPORT_SGX_HWPERF = 1 +SYS_USING_INTERRUPTS = 1 + +PVR2D_ALT_2DHW = 1 + +LDM_PLATFORM ?= 1 + +# Only enable active power management if passive power management is +# enabled, as indicated by LDM_PLATFORM being set to 1. On OMAP, +# the system can suspend in the case where active power management is +# enabled in the SGX driver, but passive power management isn't. As +# passive power management isn't enabled, the driver won't see the +# system suspend/resume events, and so won't take appropriate action. +ifeq ($(LDM_PLATFORM),1) +SUPPORT_ACTIVE_POWER_MANAGEMENT ?= 1 +else +SUPPORT_ACTIVE_POWER_MANAGEMENT = 0 +endif + +export PVR_BUILD_DIR := $(shell pwd) + +DATE := $(shell date "+%a %B %d %Z %Y" ) + +CBUILD = -DPVR_BUILD_DIR="\"$(PVR_BUILD_DIR)\"" \ + -DPVR_BUILD_DATE="\"$(DATE)\"" \ + -DPVR_BUILD_TYPE="\"$(BUILD)\"" + +# Don't support HW recovery on debug builds +CBUILD.debug = -DDEBUG +CBUILD.timing = -DTIMING +CBUILD.release = -DRELEASE +CFLAGS.debug = -g -O0 -DDLL_METRIC=1 +CFLAGS.timing = $(OPTIM) -g -DDLL_METRIC=1 -DTIMING +CFLAGS.release = $(OPTIM) -g +CFLAGS = $(CFLAGS.$(BUILD)) + + +ifeq ("$(BUILD)", "debug") +DEBUG_LINUX_MEMORY_ALLOCATIONS ?= 1 +DEBUG_LINUX_MEM_AREAS ?= 1 +DEBUG_LINUX_MMAP_AREAS ?= 1 +DEBUG_LINUX_XML_PROC_FILES ?= 0 +DEBUG_LINUX_SLAB_ALLOCATIONS ?= 0 +DEBUG_BRIDGE_KM ?= 1 +DEBUG_TRACE_BRIDGE_KM ?= 0 +DEBUG_BRIDGE_KM_DISPATCH_TABLE ?= 0 +endif + +TRANSFER_QUEUE ?= 1 +SUPPORT_SGX_EVENT_OBJECT ?= 1 +SUPPORT_SECURE_HANDLES ?= 1 +SUPPORT_SRVINIT = 1 +SUPPORT_PERCONTEXT_PB = 1 + +SYS_CFLAGS += -DSERVICES4 -D_XOPEN_SOURCE=600 -DPVR2D_VALIDATE_INPUT_PARAMS + +# Thread support +USE_PTHREADS ?= 1 +USE_GCC__thread_KEYWORD ?= 0 +OPTIMISE_NON_NPTL_SINGLE_THREAD_TLS_LOOKUP ?= 0 +DISABLE_THREADS ?= 0 + +# Automatically define C compiler macros for features possible (or not) in use. + +SYS_CFLAGS.$(SUPPORT_SRVINIT) += -DSUPPORT_SRVINIT + +SYS_CFLAGS.$(SUPPORT_SGX) += -DSUPPORT_SGX +SYS_CFLAGS.$(SUPPORT_XWS) += -DSUPPORT_XWS +SYS_CFLAGS.$(PDUMP) += -DPDUMP +SYS_CFLAGS.$(SUPPORT_POWER_MANAGEMENT) += -DSUPPORT_POWER_MANAGEMENT +SYS_CFLAGS.$(SUPPORT_BUFFER_CLASS) += -DSUPPORT_BUFFER_CLASS + +SYS_CFLAGS.$(SUPPORT_PERCONTEXT_PB) += -DSUPPORT_PERCONTEXT_PB +SYS_CFLAGS.$(SUPPORT_DYNAMIC_PBRESIZE) += -DSUPPORT_DYNAMIC_PBRESIZE + +SYS_CFLAGS.$(USE_FBDEV) += -DUSE_FBDEV +SYS_CFLAGS.$(USE_FBDEV) += -DFBDEV_NAME="\"$(FBDEV_NAME)\"" +SYS_CFLAGS.$(SUPPORT_DYNAMIC_3DCLOCKGATING) += -DSUPPORT_DYNAMIC_3DCLOCKGATING +SYS_CFLAGS.$(REENTRANCY_PROTECTION) += -DREENTRANCY_PROTECTION +SYS_CFLAGS.$(SCHEDULER_CONTROL_SUPPORT) += -DSCHEDULER_CONTROL_SUPPORT +SYS_CFLAGS.$(USE_IMG_POWER_DOMAIN_FUNCTION) += -DUSE_IMG_POWER_DOMAIN_FUNCTION + +SYS_CFLAGS.$(USE_DMALLOC) += -DDMALLOC + +SYS_CFLAGS.$(DEBUG_LINUX_MEMORY_ALLOCATIONS) += -DDEBUG_LINUX_MEMORY_ALLOCATIONS +SYS_CFLAGS.$(DEBUG_LINUX_MEM_AREAS) += -DDEBUG_LINUX_MEM_AREAS +SYS_CFLAGS.$(DEBUG_LINUX_MMAP_AREAS) += -DDEBUG_LINUX_MMAP_AREAS +SYS_CFLAGS.$(DEBUG_LINUX_XML_PROC_FILES) += -DDEBUG_LINUX_XML_PROC_FILES +SYS_CFLAGS.$(DEBUG_LINUX_SLAB_ALLOCATIONS) += -DDEBUG_LINUX_SLAB_ALLOCATIONS +SYS_CFLAGS.$(DEBUG_BRIDGE_KM) += -DDEBUG_BRIDGE_KM +SYS_CFLAGS.$(DEBUG_TRACE_BRIDGE_KM) += -DDEBUG_TRACE_BRIDGE_KM +SYS_CFLAGS.$(DEBUG_BRIDGE_KM_DISPATCH_TABLE) += -DDEBUG_BRIDGE_KM_DISPATCH_TABLE + +SYS_CFLAGS.$(SUPPORT_LINUX_X86_WRITECOMBINE) += -DSUPPORT_LINUX_X86_WRITECOMBINE + +SYS_CFLAGS.$(SGX_PDS_EVENTS_DISABLED) += -DSGX_PDS_EVENTS_DISABLED +SYS_CFLAGS.$(USE_SUPPORT_NO_TA3D_OVERLAP) += -DUSE_SUPPORT_NO_TA3D_OVERLAP +SYS_CFLAGS.$(SUPPORT_SGX_TILING) += -DSUPPORT_SGX_TILING +SYS_CFLAGS.$(TRANSFER_QUEUE) += -DTRANSFER_QUEUE + +SYS_CFLAGS.$(SUPPORT_SGX_MMU_DUMMY_PAGE) += -DSUPPORT_SGX_MMU_DUMMY_PAGE + +SYS_CFLAGS.$(PVRSRV_USSE_EDM_STATUS_DEBUG) += -DPVRSRV_USSE_EDM_STATUS_DEBUG + +SYS_CFLAGS.$(SUPPORT_DRI_DRM) += -DSUPPORT_DRI_DRM + +SYS_CFLAGS.$(SYS_USING_INTERRUPTS) += -DSYS_USING_INTERRUPTS +SYS_CFLAGS.$(SUPPORT_HW_RECOVERY) += -DSUPPORT_HW_RECOVERY +SYS_CFLAGS.$(SUPPORT_ACTIVE_POWER_MANAGEMENT) += -DSUPPORT_ACTIVE_POWER_MANAGEMENT + +SYS_CFLAGS.$(SUPPORT_SECURE_HANDLES) += -DPVR_SECURE_HANDLES + +SYS_CFLAGS.$(USE_PTHREADS) += -DUSE_PTHREADS +SYS_CFLAGS.$(USE_GCC__thread_KEYWORD) += -DUSE_GCC__thread_KEYWORD +SYS_CFLAGS.$(OPTIMISE_NON_NPTL_SINGLE_THREAD_TLS_LOOKUP) += -DOPTIMISE_NON_NPTL_SINGLE_THREAD_TLS_LOOKUP +SYS_CFLAGS.$(DISABLE_THREADS) += -DDISABLE_THREADS +SYS_CFLAGS.$(SUPPORT_SGX_EVENT_OBJECT) += -DSUPPORT_SGX_EVENT_OBJECT +SYS_CFLAGS.$(LDM_PLATFORM) += -DLDM_PLATFORM +SYS_CFLAGS.$(LDM_PCI) += -DLDM_PCI +SYS_CFLAGS.$(PVR_MANUAL_POWER_CONTROL) += -DPVR_MANUAL_POWER_CONTROL + +SYS_CFLAGS.$(PVR2D_ALT_2DHW) += -DPVR2D_ALT_2DHW + +SYS_CFLAGS.$(SUPPORT_SGX_HWPERF) += -DSUPPORT_SGX_HWPERF + +export ALL_CFLAGS = -DLINUX \ + $(CBUILD) $(CBUILD.$(BUILD)) \ + $(SYS_CFLAGS) $(SYS_CFLAGS.1) \ + $(MODULE_CFLAGS) $(MODULE_CFLAGS.$(BUILD)) \ + $(CORE) \ + $(CFLAGS) + +all: + $(MAKE) -C $(KERNELDIR) M=`pwd` $* + +clean: + $(MAKE) -C $(KERNELDIR) M=`pwd` clean + diff --git a/services4/3rdparty/dc_omap3430_linux/Kbuild b/services4/3rdparty/dc_omap3430_linux/Kbuild new file mode 100644 index 0000000..c08b240 --- /dev/null +++ b/services4/3rdparty/dc_omap3430_linux/Kbuild @@ -0,0 +1,8 @@ +EXTRA_CFLAGS = -DLINUX \ + -I$(PVR_BUILD_DIR)/include4 \ + -I$(PVR_BUILD_DIR)/services4/include \ + -I$(PVR_BUILD_DIR)/services4/system/$(PVR_SYSTEM) \ + -I$(PVR_BUILD_DIR)/services4/system/include \ + +obj-m := omaplfb.o +omaplfb-y := omaplfb_displayclass.o omaplfb_linux.o -- 1.5.6.3