diff options
Diffstat (limited to 'recipes/dvsdk')
30 files changed, 2390 insertions, 0 deletions
diff --git a/recipes/dvsdk/dsplink.inc b/recipes/dvsdk/dsplink.inc new file mode 100644 index 0000000000..1ca01c399c --- /dev/null +++ b/recipes/dvsdk/dsplink.inc @@ -0,0 +1,112 @@ +DESCRIPTION = "DSP Link for TI ARM/DSP processors" + +DEPENDS = "virtual/kernel perl-native" + +inherit module + +do_configure () { + # Clean up stale binaries + find ${S} -name "*.ko" -exec rm {} \; || true + find ${S} -name "*.o" -exec rm {} \; || true + + # Run perl script to create appropriate makefiles (v1.60 and up) + ( + cd ${DSPLINK} + perl config/bin/dsplinkcfg.pl --platform=${DSPLINKPLATFORM} --nodsp=1 --dspcfg_0=${DSPCFG} --dspos_0=DSPBIOS5XX --gppos=${GPPOS} --comps=ponslrm + ) +} + +do_compile () { + unset DISPLAY + sed -i -e s:armv7a:armv7-a:g ${DSPLINK}/make/Linux/omap3530_2.6.mk + + # export various settings to override the defaults in the makefiles + export DSP_BASE_CGTOOLS=${TITOOLSDIR}/${TICGTOOLSDIR} + export DSP_BASE_BIOS=${TITOOLSDIR}/${TIBIOSDIR} + export DSP_BASE_RTDX=${TITOOLSDIR}/${TIBIOSDIR}/packages/ti/rtdx + export GPPTOOL_DIR=${CROSS_DIR} + export LINUXKERNEL_INSTALL_DIR=${STAGING_KERNEL_DIR} + export LINK_INSTALL_DIR=${DSPLINK} + export VARIANT=${DSPLINKSOC} + export PLATFORM=${DSPLINKPLATFORM} + export BASE_TOOLCHAIN=${CROSS_DIR} + export BASE_CGTOOLS=${BASE_TOOLCHAIN}/bin + # 'OSINC_PLATFORM' is used in both the dsp and gpp sides... + export OSINC_PLATFORM1=${CROSS_DIR}/lib/gcc/${TARGET_SYS}/$(${TARGET_PREFIX}gcc -dumpversion)/include + export OSINC_TARGET=${BASE_TOOLCHAIN}/target/usr/include + + # 'ARCHIVER' is being used in the dsp side of the build as well as gpp + export ARCHIVER_AR=${TARGET_PREFIX}ar + export BASE_SABIOS=${DSP_BASE_BIOS} + + #dsplinkk.ko bits + if [ ! -d ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE ] ; then + install -d ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE + fi + + cp ${WORKDIR}/Makefile-dsplink-gpp ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/Makefile + cd ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/ + + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + export KDIR=${STAGING_KERNEL_DIR} + + make -e driver + make -e library + make -e samples + + make -e -f ${WORKDIR}/Makefile-dsplink-dsp + cp -a * ${DSPLINK}/gpp/export/BIN/Linux/${DSPLINKPLATFORM}/RELEASE +} + +do_install () { + #driver - kernel module + install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp + cp ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/dsplinkk.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/ + + #library + install -d ${D}/${libdir} + install -m 0755 ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/dsplink.lib ${D}/${libdir} + + #sample apps + install -d ${D}/${datadir}/ti-dsplink + install ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/*gpp ${D}/${datadir}/ti-dsplink || true + for i in $(find ${DSPLINK}/dsp/BUILD/ -name "*.out") ; do + install ${i} ${D}/${datadir}/ti-dsplink + done +} + +# Codec Engine and friends need a complete tree, so stage it all +do_stage() { + install -d ${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/${PN} + cp -pPrf ${S}/* ${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/ +} + +PACKAGES =+ "ti-dsplink-module ti-dsplink-apps" +FILES_ti-dsplink-module = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/dsplinkk.ko" +FILES_ti-dsplink-apps = "${datadir}/ti-dsplink/* ${libdir}/dsplink.lib" + +pkg_postinst_ti-dsplink-module () { + if [ -n "$D" ]; then + exit 1 + fi + depmod -a + update-modules || true +} + +pkg_postrm_ti-dsplink-module () { + update-modules || true +} + +INHIBIT_PACKAGE_STRIP = "1" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +#legacy upgrade helpers +RPROVIDES_ti-dsplink-module += "dsplink-module" +RREPLACES_ti-dsplink-module += "dsplink-module" +RPROVIDES_ti-dsplink-apps += "dsplink-apps" +RREPLACES_ti_dsplink-apps += "dsplink-apps" + +#add run-time dependencies - note for kernel module we can only use RRECOMMENDS, since modules might be built into the kernel +RRECOMMENDS_ti-dsplink-apps += "ti-dsplink-module" + diff --git a/recipes/dvsdk/files/Makefile-dsplink-dsp b/recipes/dvsdk/files/Makefile-dsplink-dsp new file mode 100755 index 0000000000..0861f1ee21 --- /dev/null +++ b/recipes/dvsdk/files/Makefile-dsplink-dsp @@ -0,0 +1,59 @@ +# +# ======== makeunix ======== +# + +# Import Tools Path from Rules.make +#include Rules.make + +PROJECT_BASE_DIR = $(shell pwd) +LINUXKERNEL_INSTALL_DIR:=some-path/kernel +LINK_INSTALL_DIR := some-path/dsplink_1_51/dsplink + +# The prefix to be added before the GNU compiler tools (optionally including +# path), i.e. "arm_v5t_le-" or "/opt/bin/arm_v5t_le-". +GPPTOOL_DIR:=some-path/cross + +# ---- DSP tools ---- +DSP_BASE_CGTOOLS := some-path/cg6x_6_0_19 +DSP_BASE_BIOS := some-path/bios_5_32_03 +DSP_BASE_RTDX := some-path/bios_5_32_03/packages/ti/rtdx +OSINC_PLATFORM1 := something +ARCHIVER_AR := something + + +# ---- construct Link build make vars ---- +GPP_MAKE_OPTS := COMPILER=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-gcc \ + LINKER=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-gcc \ + LD=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-ld \ + ARCHIVER1=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-ld \ + ARCHIVER2=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-ld \ + CROSS_COMPILE=arm-angstrom-linux-gnueabi- \ + DSPLINK=$(LINK_INSTALL_DIR) \ + BASE_TOOLCHAIN=$(GPPTOOL_DIR) \ + BASE_BUILDOS=$(LINUXKERNEL_INSTALL_DIR) \ + ARCHIVER=$(ARCHIVER_AR) OSINC_PLATFORM=$(OSINC_PLATFORM1) \ + +DSP_MAKE_OPTS := DSPLINK=$(DSPLINK) \ + DPPROOT=$(DSPLINK)/dsp \ + BASE_SABIOS=$(DSP_BASE_BIOS) \ + BASE_CGTOOLS=$(DSP_BASE_CGTOOLS) \ + BASE_RTDX=$(DSP_BASE_RTDX) + + +# ======== all ======== +all: $(LINK_INSTALL_DIR)/packages/dsplink/gpp/export/BIN/Linux/Davinci/RELEASE/dsplinkk.ko + +$(LINK_INSTALL_DIR)/packages/dsplink/gpp/export/BIN/Linux/Davinci/RELEASE/dsplinkk.ko: + #@echo Building DSPLINK GPP driver, libs + #make -s -C $(LINK_INSTALL_DIR)/gpp/src $(GPP_MAKE_OPTS) + #make -s -C $(DSPLINK)/gpp/src/samples $(GPP_MAKE_OPTS) + @echo Building DSPLINK DSP libs and message sample for DaVinci... + make -C $(DSPLINK)/dsp/src $(DSP_MAKE_OPTS) + make -C $(DSPLINK)/dsp/src/samples $(DSP_MAKE_OPTS) + +# clean rules +clean: + @echo Cleaning DSPLINK GPP driver, libs + make -s -C $(LINK_INSTALL_DIR)/gpp/src $(GPP_MAKE_OPTS) clean + @rm -rf $(LINK_INSTALL_DIR)/gpp/export/BIN/* + @rm -rf $(LINK_INSTALL_DIR)/gpp/export/INCLUDE/* diff --git a/recipes/dvsdk/files/Makefile-dsplink-gpp b/recipes/dvsdk/files/Makefile-dsplink-gpp new file mode 100755 index 0000000000..d9f2f6209a --- /dev/null +++ b/recipes/dvsdk/files/Makefile-dsplink-gpp @@ -0,0 +1,120 @@ +# Composite Makefile +DIRSEP=/ + +TI_DSPLINK_RELATIVE_PATH :=../../../../ + +# include the CURRENTCFG.mk +include $(DSPLINK)$(DIRSEP)config$(DIRSEP)BUILD$(DIRSEP)CURRENTCFG.MK + +# Generate the list of sources +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)arch$(DIRSEP)SOURCES +ARCH_SOURCES := $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)arch$(DIRSEP),$(SOURCES)) +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)ldrv$(DIRSEP)SOURCES +LDRV_SOURCES := $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)ldrv$(DIRSEP),$(SOURCES)) +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)ldrv$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)SOURCES +LDRV_SOURCES += $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)ldrv$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP),$(SOURCES)) +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)gen$(DIRSEP)SOURCES +GEN_SOURCES := $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)gen$(DIRSEP),$(SOURCES)) +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP)SOURCES +PMGR_SOURCES := $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP),$(SOURCES)) +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)SOURCES +PMGR_SOURCES += $(addpreifx $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP),$(SOURCES)) +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(TI_DSPLINK_GPPOSVERSION)$(DIRSEP)SOURCES +PMGR_SOURCES += $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(TI_DSPLINK_GPPOSVERSION)$(DIRSEP),$(SOURCES)) +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)SOURCES +OSAL_SOURCES := $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)$(DIRSEP),$(SOURCES)) +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)SOURCES +OSAL_SOURCES += $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP),$(SOURCES)) +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(TI_DSPLINK_GPPOSVERSION)$(DIRSEP)SOURCES +OSAL_SOURCES += $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(TI_DSPLINK_GPPOSVERSION)$(DIRSEP),$(SOURCES)) + +DSPLINK_SOURCES := $(ARCH_SOURCES) $(LDRV_SOURCES) $(GEN_SOURCES) $(OSAL_SOURCES) $(PMGR_SOURCES) +DSPLINK_OBJS := $(foreach srcFile, $(DSPLINK_SOURCES),$(basename $(srcFile)).o) + +# EXTRA_CFLAGS +EXTRA_CFLAGS += $(addprefix -D, $(TI_DSPLINK_GPP_DEFINES)) +EXTRA_CFLAGS += $(addprefix -I, $(TI_DSPLINK_GPP_INC_PATH)) +EXTRA_CFLAGS += -DEXPORT_SYMTAB +EXTRA_CFLAGS += -DTRACE_KERNEL + +ifneq ($(KERNELRELEASE),) +obj-m := dsplinkk.o +dsplinkk-objs := $(DSPLINK_OBJS) +else +KDIR := /path/to/kernel/ +PWD := $(shell pwd) +driver: + $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules +endif + +clean: + @echo DSPLINK - cleaning driver, library and samples + find $(DSPLINK) -name "*.o" -exec rm {} \; + rm -fr dsplinkk.ko dsplinkk.mod.c Module.symvers *gpp *.a *.lib + +################################################################################################ +# USER SIDE +BUILD_CONFIG := ..$(DIRSEP)..$(DIRSEP)..$(DIRSEP)config$(DIRSEP)BUILD +# Generate the list of sources +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)api$(DIRSEP)SOURCES +API_SOURCES := $(addprefix $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)api$(DIRSEP),$(SOURCES)) +SOURCES := +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)api$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)SOURCES +API_SOURCES += $(addprefix $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)api$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP),$(SOURCES)) + +# Update the CFLAG +#CC = arm-none-linux-gnueabi-gcc +#AR = arm-none-linux-gnueabi-ar +#LD = arm-none-linux-gnueabi-ld +ARFLAGS = -rs +LDFLAGS = -r +EXTRA_CFLAGS += $(addprefix -D, $(TI_DSPLINK_GPP_DEFINES)) $(addprefix -I, $(TI_DSPLINK_GPP_INC_PATH)) + +define CONFIG_template +$(shell cp $(DSPLINK)$(DIRSEP)config$(DIRSEP)all$(DIRSEP)$(1) $(DSPLINK)$(DIRSEP)config$(DIRSEP)BUILD$(DIRSEP)) +endef + +define PROGRAM_template +$(basename $(1)).o: $(1) + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $(1) -o $(basename $(1)).o +endef +$(foreach prog,$(API_SOURCES),$(eval $(call PROGRAM_template,$(prog)))) +$(foreach prog,$(CONFIG),$(eval $(call CONFIG_template,$(prog)))) + +DSPLINK_API_OBJS := $(foreach srcFile, $(API_SOURCES),$(basename $(srcFile)).o) + +library: $(DSPLINK_API_OBJS) + @echo DSPLINK - building user library - dsplink.lib + $(LD) $(LDFLAGS) -o dsplink.lib $(DSPLINK_API_OBJS) + $(AR) $(ARFLAGS) dsplink.a $(DSPLINK_API_OBJS) + + +######################################### SAMPLES ################################### +SOURCES := +define SAMPLES_template +ifneq ($(1),message_multi) +$(1): $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(1).c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(1)_os.c + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -I$(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1) -I$(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS) -o $(1)gpp $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(1).c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(1)_os.c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)main.c dsplink.lib -lpthread +else +$(1): $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)message.c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)message_os.c + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -I$(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1) -I$(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS) -o $(1)gpp $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)message.c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)message_os.c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)main.c dsplink.lib -lpthread +endif +endef + +include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)DIRS +$(foreach prog,$(DIRS),$(eval $(call SAMPLES_template,$(prog)))) + +samples: $(foreach prog,$(DIRS),$(prog)) + +all: driver library samples diff --git a/recipes/dvsdk/files/cmem-class-device-27-and-sched-include-fix.patch b/recipes/dvsdk/files/cmem-class-device-27-and-sched-include-fix.patch new file mode 100644 index 0000000000..8eb3210bb1 --- /dev/null +++ b/recipes/dvsdk/files/cmem-class-device-27-and-sched-include-fix.patch @@ -0,0 +1,23 @@ +diff -uNr codec_engine_2_21/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c codec_engine_2_21_fix/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c +--- codec_engine_2_21/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c 2009-02-12 22:02:15.000000000 +0000 ++++ codec_engine_2_21_fix/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c 2009-02-12 22:08:49.000000000 +0000 +@@ -29,6 +29,7 @@ + #include <linux/mm.h> + #include <linux/seq_file.h> + #include <linux/vmalloc.h> ++#include <linux/sched.h> + #include <asm/cacheflush.h> + #include <asm/uaccess.h> + #include <asm/pgtable.h> +@@ -1710,7 +1711,11 @@ + #ifdef USE_CLASS_DEVICE + class_device_create(cmem_class, NULL, MKDEV(cmem_major, 0), NULL, "cmem"); + #else ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) ++ device_create(cmem_class, NULL, MKDEV(cmem_major, 0), NULL, "cmem"); ++#else + device_create(cmem_class, NULL, MKDEV(cmem_major, 0), "cmem"); ++#endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) + #endif // USE_CLASS_DEVICE + #endif // USE_CLASS_SIMPLE + #endif // USE_UDEV diff --git a/recipes/dvsdk/files/dmai-built-with-angstrom.patch b/recipes/dvsdk/files/dmai-built-with-angstrom.patch new file mode 100644 index 0000000000..fc49789718 --- /dev/null +++ b/recipes/dvsdk/files/dmai-built-with-angstrom.patch @@ -0,0 +1,48 @@ +Index: dmai_1_20_00_06/packages/config.bld +=================================================================== +--- dmai_1_20_00_06.orig/packages/config.bld 2009-02-11 19:38:51.000000000 -0600 ++++ dmai_1_20_00_06/packages/config.bld 2009-02-11 19:39:23.000000000 -0600 +@@ -42,7 +42,7 @@ + + /* location of the Codec Sourcery Arm9 tools */ + var GCArmv5T = xdc.useModule('gnu.targets.arm.GCArmv5T'); +-GCArmv5T.LONGNAME = 'bin/arm-none-linux-gnueabi-gcc'; ++GCArmv5T.LONGNAME = 'bin/arm-angstrom-linux-gnueabi-gcc'; + GCArmv5T.platform = "ti.platforms.evm3530"; + GCArmv5T.rootDir = java.lang.System.getenv("CSTOOL_DIR"); + +Index: dmai_1_20_00_06/packages/ti/sdo/dmai/Makefile +=================================================================== +--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/Makefile 2009-02-11 19:39:57.000000000 -0600 ++++ dmai_1_20_00_06/packages/ti/sdo/dmai/Makefile 2009-02-11 19:58:05.000000000 -0600 +@@ -33,7 +33,7 @@ + DMAI_INSTALL_DIR = ../../../.. + TARGET = dmai + +-include $(DMAI_INSTALL_DIR)/Rules.make ++#include $(DMAI_INSTALL_DIR)/Rules.make + + # Should the full command be echoed to the console during build? + VERBOSE=false +@@ -64,7 +64,7 @@ + MVL_CPP_FLAGS = $(GNU_CPP_FLAGS) -Dxdc_target_name__=MVArm9 + CS_CPP_FLAGS = $(GNU_CPP_FLAGS) -Dxdc_target_name__=codesourcery/GCArmv5T + +-GNU_C_FLAGS = $(C_FLAGS) -Wall -Werror ++GNU_C_FLAGS = $(C_FLAGS) -Wall + C64P_C_FLAGS = $(C_FLAGS) + + GNU_AR_FLAGS = $(AR_FLAGS) +Index: dmai_1_20_00_06/packages/ti/sdo/dmai/apps/Makefile.app +=================================================================== +--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/apps/Makefile.app 2009-02-11 19:58:44.000000000 -0600 ++++ dmai_1_20_00_06/packages/ti/sdo/dmai/apps/Makefile.app 2009-02-11 19:59:01.000000000 -0600 +@@ -34,7 +34,7 @@ + ifndef DMAI_INSTALL_DIR + DMAI_INSTALL_DIR = ../../../../../.. + endif +-include $(DMAI_INSTALL_DIR)/Rules.make ++#include $(DMAI_INSTALL_DIR)/Rules.make + + # Should the full command be echoed to the console during build? + VERBOSE=false diff --git a/recipes/dvsdk/files/dmai-do-not-panic-on-mixer-failure.patch b/recipes/dvsdk/files/dmai-do-not-panic-on-mixer-failure.patch new file mode 100644 index 0000000000..20e1aece72 --- /dev/null +++ b/recipes/dvsdk/files/dmai-do-not-panic-on-mixer-failure.patch @@ -0,0 +1,31 @@ +Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Sound_alsa.c +=================================================================== +--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/Sound_alsa.c 2009-02-11 19:19:23.000000000 -0600 ++++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Sound_alsa.c 2009-02-11 19:19:25.000000000 -0600 +@@ -139,7 +139,7 @@ + + snd_mixer_selem_id_free (sid); + snd_mixer_close (rcMixer); +- ++ + return Dmai_EOK; + } + +@@ -431,14 +431,13 @@ + Sound_alsa_delete(hSound); + return NULL; + } +- ++ + if (setMixerVolume (attrs) <0) { +- Sound_alsa_delete (hSound); +- return NULL; ++ Dmai_dbg2("Failed to set the mixer volume on %s (%s)\n", ++ AUDIO_DEVICE, snd_strerror(status)); + } + } + +- + return hSound; + } + diff --git a/recipes/dvsdk/files/dmai-support-32bit-align.patch b/recipes/dvsdk/files/dmai-support-32bit-align.patch new file mode 100644 index 0000000000..0ee817d9d9 --- /dev/null +++ b/recipes/dvsdk/files/dmai-support-32bit-align.patch @@ -0,0 +1,17 @@ +Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/omap3530/Resize.c +=================================================================== +--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/omap3530/Resize.c 2009-02-11 19:20:45.000000000 -0600 ++++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/omap3530/Resize.c 2009-02-11 19:21:09.000000000 -0600 +@@ -557,9 +557,9 @@ + srcOffset = srcDim.y * srcDim.lineLength + srcDim.x * 2; + dstOffset = dstDim.y * dstDim.lineLength + dstDim.x * 2; + +- /* Input and output buffers must be 4096 bytes aligned */ +- assert(((Buffer_getPhysicalPtr(hDstBuf) + srcOffset) & 0xFFF) == 0); +- assert(((Buffer_getPhysicalPtr(hSrcBuf) + dstOffset) & 0xFFF) == 0); ++ /* Pointers must be a multiple of 32 bytes */ ++ assert((Buffer_getPhysicalPtr(hDstBuf) & 0x1F) == 0); ++ assert((Buffer_getPhysicalPtr(hSrcBuf) & 0x1F) == 0); + + /* Queue the resizer buffers */ + for (i=0; i < 2; i++) { diff --git a/recipes/dvsdk/files/dmai-update-cpu-name.patch b/recipes/dvsdk/files/dmai-update-cpu-name.patch new file mode 100644 index 0000000000..052a8e3236 --- /dev/null +++ b/recipes/dvsdk/files/dmai-update-cpu-name.patch @@ -0,0 +1,16 @@ +Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Cpu.c +=================================================================== +--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/Cpu.c 2009-02-12 09:34:22.000000000 -0600 ++++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Cpu.c 2009-02-12 09:34:51.000000000 -0600 +@@ -103,7 +103,10 @@ + else if (strcmp(valBuf, "DM357 EVM") == 0) { + *device = Cpu_Device_DM6446; + } +- else if (strcmp(valBuf, "OMAP3EVM Board") == 0) { ++ else if ((strcmp(valBuf, "OMAP3EVM Board") == 0) || ++ (strcmp(valBuf, "OMAP3 EVM") == 0) || ++ (strcmp(valBuf, "OMAP3 Beagle Board") == 0) ++ ){ + *device = Cpu_Device_OMAP3530; + } + else { diff --git a/recipes/dvsdk/files/dmai-update-fb-display.patch b/recipes/dvsdk/files/dmai-update-fb-display.patch new file mode 100644 index 0000000000..91c1dd15aa --- /dev/null +++ b/recipes/dvsdk/files/dmai-update-fb-display.patch @@ -0,0 +1,77 @@ +Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display_fbdev.c +=================================================================== +--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/Display_fbdev.c 2009-02-11 19:59:57.000000000 -0600 ++++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display_fbdev.c 2009-02-11 20:02:46.000000000 -0600 +@@ -41,10 +41,7 @@ + #include <sys/ioctl.h> + #include <linux/fb.h> + +-#ifdef Dmai_Device_omap3530 +-/* OMAP specific kernel headers */ +-#include <video/omapfbdev.h> +-#else ++#ifndef Dmai_Device_omap3530 + /* Davinci specific kernel headers */ + #include <video/davincifb_ioctl.h> + #endif +@@ -184,11 +181,13 @@ + } + #endif + ++#if 0 + /* Set up the sysfs variables before opening the display device */ + if (_Display_sysfsSetup(attrs, channel) < 0) { + cleanup(hDisplay); + return NULL; + } ++#endif + + /* Open video display device */ + hDisplay->fd = open(attrs->displayDevice, O_RDWR); +@@ -423,6 +422,7 @@ + ******************************************************************************/ + Int Display_fbdev_get(Display_Handle hDisplay, Buffer_Handle *hBufPtr) + { ++#if defined (FBIO_WAITFORVSYNC) + BufTab_Handle hBufTab = hDisplay->hBufTab; + int dummy; + +@@ -436,7 +436,8 @@ + } + + *hBufPtr = BufTab_getBuf(hBufTab, hDisplay->workingIdx); +- ++ ++#endif + return Dmai_EOK; + } + +Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display.c +=================================================================== +--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/Display.c 2009-02-11 20:00:10.000000000 -0600 ++++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display.c 2009-02-11 20:02:07.000000000 -0600 +@@ -80,18 +80,18 @@ + + const Display_Attrs Display_Attrs_O3530_VID_DEFAULT = { + 3, +- Display_Std_V4L2, +- VideoStd_VGA, +- Display_Output_LCD, +- "/dev/video1", ++ Display_Std_FBDEV, ++ VideoStd_D1_NTSC, ++ Display_Output_DVI, ++ "/dev/fb2", + 0 + }; + + const Display_Attrs Display_Attrs_O3530_OSD_DEFAULT = { + 1, + Display_Std_FBDEV, +- VideoStd_VGA, +- Display_Output_LCD, ++ VideoStd_D1_NTSC, ++ Display_Output_DVI, + "/dev/fb0", + 0 + }; diff --git a/recipes/dvsdk/files/dmai-update-v4l2-display.patch b/recipes/dvsdk/files/dmai-update-v4l2-display.patch new file mode 100644 index 0000000000..8bb77d8473 --- /dev/null +++ b/recipes/dvsdk/files/dmai-update-v4l2-display.patch @@ -0,0 +1,127 @@ +Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display_v4l2.c +=================================================================== +--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/Display_v4l2.c 2009-02-11 19:22:51.000000000 -0600 ++++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display_v4l2.c 2009-02-11 19:27:02.000000000 -0600 +@@ -120,7 +120,9 @@ + struct v4l2_format fmt; + enum v4l2_buf_type type; + Display_Handle hDisplay; +- Int channel; ++#if defined(Dmai_Device_omap3530) && defined(V4L2_CID_ROTATION) ++ struct v4l2_control control; ++#endif + + assert(attrs); + +@@ -134,44 +136,6 @@ + + hDisplay->userAlloc = TRUE; + +-#ifdef Dmai_Device_omap3530 +- /* channel = 0 - digital video path +- * channel = 1 - analog video path +- */ +- switch (attrs->videoOutput) { +- case Display_Output_SVIDEO: +- case Display_Output_COMPOSITE: +- channel = 1; +- break; +- case Display_Output_DVI: +- case Display_Output_LCD: +- case Display_Output_SYSTEM: +- channel = 0; +- break; +- default: +- /* do nothing */ +- break; +- } +-#else +- if (strcmp(attrs->displayDevice, "/dev/video2") == 0) { +- channel = 0; +- } +- else if (strcmp(attrs->displayDevice, "/dev/video3") == 0) { +- channel = 1; +- } +- else { +- Dmai_err1("%s not a display device\n", attrs->displayDevice); +- cleanup(hDisplay); +- return NULL; +- } +-#endif +- +- /* Set up the sysfs variables before opening the display device */ +- if (_Display_sysfsSetup(attrs, channel) < 0) { +- cleanup(hDisplay); +- return NULL; +- } +- + /* Open video capture device */ + hDisplay->fd = open(attrs->displayDevice, O_RDWR, 0); + +@@ -182,9 +146,8 @@ + return NULL; + } + +-#ifdef Dmai_Device_omap3530 +-#define VIDIOC_S_OMAP2_ROTATION _IOW ('V', 3, int) +- ++ ++#if defined(Dmai_Device_omap3530) && defined(V4L2_CID_ROTATION) + if (attrs->rotation != 0 && attrs->rotation != 90 && + attrs->rotation != 180 && attrs->rotation != 270) { + +@@ -193,49 +156,16 @@ + return NULL; + } + +- if (ioctl(hDisplay->fd, VIDIOC_S_OMAP2_ROTATION, &attrs->rotation) < 0) { +- Dmai_err2("Failed VIDIOC_S_OMAP2_ROTATION on %s (%s)\n", ++ control.id = V4L2_CID_ROTATION; ++ control.value = attrs->rotation; ++ ++ if (ioctl(hDisplay->fd, VIDIOC_S_CTRL, &control) < 0) { ++ Dmai_err2("Failed VIDIOC_S_CTRL on %s (%s)\n", + attrs->displayDevice, strerror(errno)); + cleanup(hDisplay); + return NULL; + } + +- switch (attrs->videoStd) { +- case VideoStd_D1_NTSC: +- fmt.fmt.pix.width = VideoStd_D1_WIDTH; +- fmt.fmt.pix.height = VideoStd_D1_NTSC_HEIGHT; +- break; +- case VideoStd_D1_PAL: +- fmt.fmt.pix.width = VideoStd_D1_WIDTH; +- fmt.fmt.pix.height = VideoStd_D1_PAL_HEIGHT; +- break; +- case VideoStd_VGA: +- fmt.fmt.pix.width = VideoStd_VGA_WIDTH; +- fmt.fmt.pix.height = VideoStd_VGA_HEIGHT; +- break; +- case VideoStd_480P: +- fmt.fmt.pix.width = VideoStd_480P_WIDTH; +- fmt.fmt.pix.height = VideoStd_480P_HEIGHT; +- break; +- case VideoStd_720P_60: +- fmt.fmt.pix.width = VideoStd_480P_WIDTH; +- fmt.fmt.pix.height = VideoStd_480P_HEIGHT; +- break; +- default: +- Dmai_err1("Unknown video standard %d\n", attrs->videoStd); +- cleanup(hDisplay); +- return NULL; +- } +- +- fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_UYVY; +- fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT; +- +- if (ioctl(hDisplay->fd, VIDIOC_S_FMT, &fmt) == -1) { +- Dmai_err2("Failed VIDIOC_S_FMT on %s (%s)\n", attrs->displayDevice, +- strerror(errno)); +- cleanup(hDisplay); +- return NULL; +- } + #endif /* Dmai_Device_omap3530 */ + + /* Determine the video image dimensions */ diff --git a/recipes/dvsdk/files/dsplink-128M.patch b/recipes/dvsdk/files/dsplink-128M.patch new file mode 100644 index 0000000000..ff5902bf50 --- /dev/null +++ b/recipes/dvsdk/files/dsplink-128M.patch @@ -0,0 +1,104 @@ +diff -Nurd dsplink_1_50/dsplink/config/all/CFG_Davinci_DM6446.c dsplink_1_50.work/dsplink/config/all/CFG_Davinci_DM6446.c +--- dsplink_1_50/dsplink/config/all/CFG_Davinci_DM6446.c 2007-12-03 08:11:41.000000000 -0500 ++++ dsplink_1_50.work/dsplink/config/all/CFG_Davinci_DM6446.c 2008-07-29 16:52:28.000000000 -0400 +@@ -69,8 +69,8 @@ + FALSE, /* AUTOSTART : Autostart the DSP (Not supported) */ + "DEFAULT.OUT", /* EXECUTABLE : Executable for autostart */ + TRUE, /* DOPOWERCTRL : Link does the Power Ctrl of DSP. */ +- 0x8FF00020, /* RESUMEADDR : Resume address */ +- 0x8FF00000, /* RESETVECTOR : Reset Vector for the DSP */ ++ 0x87000020, /* RESUMEADDR : Resume address */ ++ 0x87000000, /* RESETVECTOR : Reset Vector for the DSP */ + 0x80, /* RESETCODESIZE : Size of code at DSP Reset Vector */ + 1, /* MADUSIZE : DSP Minimum Addressable Data Unit */ + (Uint32) -1, /* CPUFREQ : DSP Frequency (in KHz), -1 if default setting is to be used */ +@@ -93,8 +93,8 @@ + { + 0, /* ENTRY : Entry number */ + "DSPLINKMEM", /* NAME : Name of the memory region */ +- 0x8FE00000, /* ADDRPHYS : Physical address */ +- 0x8FE00000, /* ADDRDSPVIRT : DSP virtual address */ ++ 0x87000000, /* ADDRPHYS : Physical address */ ++ 0x87000000, /* ADDRDSPVIRT : DSP virtual address */ + (Uint32) -1, /* ADDRGPPVIRT : GPP virtual address (if known) */ + 0x |
