omap3 sgx modules: rip out existing buildsystem and replace it with something that...
authorKoen Kooi <koen@openembedded.org>
Sun, 1 Feb 2009 15:31:00 +0000 (16:31 +0100)
committerKoen Kooi <koen@openembedded.org>
Sun, 1 Feb 2009 15:31:00 +0000 (16:31 +0100)
packages/powervr-drivers/libgles-omap3/rc.pvr
packages/powervr-drivers/omap3-sgx-modules/0001-New-build-system-for-SGX.patch [new file with mode: 0644]
packages/powervr-drivers/omap3-sgx-modules_1.3.13.1397.bb

index f9877e4..3fa0aff 100755 (executable)
@@ -5,8 +5,8 @@ rmmod omaplfb
 rmmod pvrsrvkm
 
 insmod $(busybox find /lib/modules/$(uname -r) -name "pvrsrvkm.ko")
-modprobe -f bc_example
-modprobe -f omaplfb
+modprobe bc_example
+modprobe omaplfb
 
 pvr_maj=`grep "pvrsrvkm$" /proc/devices | cut -b1,2,3`
 
diff --git a/packages/powervr-drivers/omap3-sgx-modules/0001-New-build-system-for-SGX.patch b/packages/powervr-drivers/omap3-sgx-modules/0001-New-build-system-for-SGX.patch
new file mode 100644 (file)
index 0000000..9751bcd
--- /dev/null
@@ -0,0 +1,247 @@
+From 36065340e13e6888e7399a1e5b5b11045e8474c6 Mon Sep 17 00:00:00 2001
+From: Tomba <tomba@bat.org>
+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
+
index 1054686..eb577fc 100644 (file)
@@ -1,22 +1,24 @@
 DESCRIPTION = "Kernel drivers for the PowerVR SGX chipset found in the omap3 SoCs"
 LICENSE = "GPLv2"
 
-PR = "r4"
+PR = "r5"
 
 inherit module
 
 SRC_URI = "http://dominion.thruhere.net/koen/OE/omap3-sgx-modules-${PV}.tar.bz2 \
            file://0001-Compile-fixes-for-DSS2.patch;patch=1 \
+           file://0001-New-build-system-for-SGX.patch;patch=1 \
 "
 
-MAKE_TARGETS = "BUILD=debug"
+PVRBUILD = "release"
+
+MAKE_TARGETS = " BUILD=${PVRBUILD}"
 
 do_compile_prepend() {
-       cd ${S}/eurasiacon/build/linux/omap3430_linux/kbuild/
+       find ${S} -name "*.*o" | xargs rm
 }
 
 do_install() {
-       cd ${S}/eurasiacon/build/linux/omap3430_linux/kbuild/
        mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
-       cp ${WORKDIR}/${PN}-${PV}/eurasiacon/binary_omap3430_linux_debug/*.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
+       cp ${S}/pvrsrvkm.ko ${S}/services4/3rdparty/dc_omap3430_linux/omaplfb.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
 }